#361 closed баг (fixed)
Падение по ошибке сегментирования в процессе вызова в конференцию
| Reported by: | alx | Owned by: | dimag |
|---|---|---|---|
| Priority: | major | Milestone: | 2 очередь |
| Component: | ПО MC04-Dispatcher. Пульт диспетчера/техника | Keywords: | algorithm |
| Cc: | san |
Description
В r373 проделал следующее:
- Запустил программу.
- Вошел в сеть как техник.
- Последовательно вызвал в конференцию пользователей 204, 205 и 206.
По истечении таймаута вызова "плащка" первого вызванного пользователя стала красной, после чего программа упала.
Логи прилагаю.
Вот часть вывода в консоль и стек в момент падения:
HEARTBEAT -
BACKGROUND_JOB - -aefe0066-cf69-415f-aacb-3498bcc4f9b2
BACKGROUND_JOB - -a371f47c-7a71-4fe1-aea8-4b02bebb04c9
BACKGROUND_JOB - -93c25a43-b30b-4949-808b-cac3411f2ba1
CHANNEL_CALLSTATE - CS_HANGUP-HANGUP-outbound-HANGUP
CHANNEL_CALLSTATE - CS_ROUTING|RINGING|
CHANNEL_CALLSTATE - CS_HANGUP-HANGUP-inbound-HANGUP
CHANNEL_CALLSTATE - CS_HANGUP-HANGUP-outbound-HANGUP
PRESENCE_IN - outbound-204@192.168.0.63-CS_HANGUP-808237ad-a901-4162-ad05-a85e2fd314ac-NO_ANSWER
Events Processed - 6
MainAppFrameWindow3::RefreshUserListState()
MainAppFrameWindow3::RefreshConferencesListState(const QString &sConference)
MainAppFrameWindow3::RefreshParicipantsState(const QString &sConference)
BACKGROUND_JOB - -6f552497-9d17-4c08-ba93-39968560693a
Thread 6 "QThread" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffeaf52700 (LWP 2166)]
__memcpy_sse2_unaligned () at ../sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S:35
35 ../sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S: Нет такого файла или каталога.
(gdb) bt
#0 __memcpy_sse2_unaligned () at ../sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S:35
#1 0x00007ffff54943c2 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#2 0x000000000046f38d in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign (
__str=<error reading variable: Cannot create a lazy string with address 0x0, and a non-zero length.>,
this=<optimized out>) at /usr/include/c++/5/bits/basic_string.h:1095
#3 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator= (
__str=<error reading variable: Cannot create a lazy string with address 0x0, and a non-zero length.>,
this=<optimized out>) at /usr/include/c++/5/bits/basic_string.h:551
#4 Events::EventsTimerTick (this=0x71e900 <EventsObject>) at MainAppFrameWindow3.cpp:11128
#5 0x00000000004e2cf5 in Events::qt_static_metacall (_o=<optimized out>, _id=<optimized out>, _a=<optimized out>,
_c=<optimized out>) at moc_MainAppFrameWindow3.cpp:1323
#6 0x00007ffff5ab3010 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) ()
from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#7 0x00007ffff5ab8c83 in QObject::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#8 0x00007ffff6320fdc in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#9 0x00007ffff6327f16 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#10 0x00007ffff5a9e90d in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#11 0x00007ffff5ad1780 in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#12 0x00007ffff5ace929 in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#13 0x00007ffff1f371a7 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#14 0x00007ffff1f37400 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#15 0x00007ffff1f374ac in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#16 0x00007ffff5acf2ae in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#17 0x00007ffff5a9d18f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#18 0x00007ffff5a9d4f5 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#19 0x00007ffff598c549 in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#20 0x00007ffff598ee3c in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#21 0x00007ffff56fe6fa in start_thread (arg=0x7fffeaf52700) at pthread_create.c:333
#22 0x00007ffff4b93b5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
Attachments (2)
Change History (4)
by , 9 years ago
| Attachment: | debug2016-08-30.log added |
|---|
by , 9 years ago
comment:1 by , 9 years ago
| Keywords: | algorithm added |
|---|---|
| Resolution: | → fixed |
| Status: | new → closed |
Note:
See TracTickets
for help on using tickets.

r377
Я сделал ошибку которую старался не делать.
Я использовал одно и тоже имя для переменной цикла, для внешнего цикла и для внутреннего, одна и та же переменная цикла использовалась для доступа к элементам данных разного размера, в итоге произошёл выход за приделы массива.