Opened 8 years ago

Closed 8 years ago

Last modified 7 years ago

#361 closed баг (fixed)

Падение по ошибке сегментирования в процессе вызова в конференцию

Reported by: alx Owned by: dimag
Priority: major Milestone: 2 очередь
Component: ПО MC04-Dispatcher. Пульт диспетчера/техника Keywords: algorithm
Cc: san

Description

В r373 проделал следующее:

  1. Запустил программу.
  2. Вошел в сеть как техник.
  3. Последовательно вызвал в конференцию пользователей 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)

debug2016-08-30.log (125.7 KB ) - added by alx 8 years ago.
main.log (17.1 KB ) - added by alx 8 years ago.

Download all attachments as: .zip

Change History (4)

by alx, 8 years ago

Attachment: debug2016-08-30.log added

by alx, 8 years ago

Attachment: main.log added

comment:1 by dimag, 8 years ago

Keywords: algorithm added
Resolution: fixed
Status: newclosed

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

comment:2 by san, 7 years ago

Milestone: Текущее2 очередь

Milestone renamed

Note: See TracTickets for help on using tickets.