Opened 8 years ago

Closed 8 years ago

Last modified 6 years ago

#188 closed баг (fixed)

Падение при клике по элементу списка записей переговоров

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

Description

  1. Запускаем программу.
  2. Переходим в "Записи переговоров".
  3. Выставляем параметры поиска и нажимаем "Применить фильтр".
  4. В появившемся списке переговоров кликаем любую строку.

Результат - падение из-за исключения в операции с плавающей точкой.

Change History (7)

comment:1 by dimag, 8 years ago

Status: newaccepted

Не удалось воспроизвести

comment:2 by alx, 8 years ago

Найдено место падения.

Thread 1 "MC04Dispatcher" received signal SIGFPE, Arithmetic exception.
0x000000000041f2a8 in MainAppFrameWindow3::RefreshUsersRecordList (this=this@entry=0x7fffffffe0e0, 
    iid=iid@entry=14919, iType=<optimized out>) at MainAppFrameWindow3.cpp:2666
2666      int iVisibleItemsNumber = pUsersInRecordTable->height() / ConferenceRecordIcon.availableSizes()[0].height();
(gdb) bt
#0  0x000000000041f2a8 in MainAppFrameWindow3::RefreshUsersRecordList (this=this@entry=0x7fffffffe0e0, 
    iid=iid@entry=14919, iType=<optimized out>) at MainAppFrameWindow3.cpp:2666
#1  0x0000000000421b3a in MainAppFrameWindow3::RecordsCellClicked (this=0x7fffffffe0e0, row=6, 
    column=<optimized out>) at MainAppFrameWindow3.cpp:2451
#2  0x000000000048c951 in MainAppFrameWindow3::qt_static_metacall (_o=<optimized out>, _id=<optimized out>, 
    _a=<optimized out>, _c=<optimized out>) at moc_MainAppFrameWindow3.cpp:223
#3  0x00007ffff62a3010 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) ()
   from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#4  0x00007ffff6d65f0f in QTableWidget::cellClicked(int, int) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#5  0x00007ffff62a3010 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) ()
   from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#6  0x00007ffff6cf8225 in QAbstractItemView::clicked(QModelIndex const&) ()
   from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#7  0x00007ffff6cf843b in QAbstractItemView::mouseReleaseEvent(QMouseEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#8  0x00007ffff68128d0 in QWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#9  0x00007ffff6bdbcee in QFrame::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#10 0x00007ffff6d01663 in QAbstractItemView::viewportEvent(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#11 0x00007ffff628ea76 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#12 0x00007ffff67bbfbc in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#13 0x00007ffff67c30d6 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#14 0x00007ffff628e90d in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#15 0x00007ffff67c26dd in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#16 0x00007ffff68403f2 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#17 0x00007ffff683fc83 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#18 0x00007ffff6869542 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#19 0x00007ffff2b4e127 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#20 0x00007ffff2b4e380 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#21 0x00007ffff2b4e42c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#22 0x00007ffff62bf2ae in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#23 0x00007ffff6869616 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#24 0x00007ffff628d18f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#25 0x00007ffff628d4f5 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#26 0x00007ffff62934b9 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#27 0x000000000040fe0f in main (argc=<optimized out>, argv=<optimized out>) at MC04Dispatcher.cpp:148

comment:3 by alx, 8 years ago

Добавление перед строкой 2666 кода

fprintf(stderr, "--> ConferenceRecordIcon.availableSizes()[0].height() = %d\n", ConferenceRecordIcon.availableSizes()[0].height());

перед падением дает вывод:

--> ConferenceRecordIcon.availableSizes()[0].height() = 0

То есть причина падения - деление на 0.

Last edited 8 years ago by alx (previous) (diff)

comment:4 by dimag, 8 years ago

Resolution: fixed
Status: acceptedclosed

Перепишите всё содержимое каталога
UBUNTU-SERVER\xchange\IPДипетчерская\release\Data в директорию в которой находиться исполняемый файл программы.
Вы переписали не все иконки, соотвественно не все они загрузились, а при попытке получения их размера возвращается 0, на который делиться pUsersInRecordTable->height().
rev 227.

in reply to:  4 comment:5 by alx, 8 years ago

Resolution: fixed
Status: closedreopened

Replying to dimag:

Перепишите всё содержимое каталога
UBUNTU-SERVER\xchange\IPДипетчерская\release\Data в директорию в которой находиться исполняемый файл программы.

:) Есть только одно официальное место, где "живет" ваша программа - это репозиторий svn. Именно оттуда я беру и буду брать все файлы. Если файла ConferenceRecord.png нет в репозитории - значит его просто нет, и ни из каких "неофициальных" источников я его брать не должен и не буду. Если файл программе нужен - добавляйте его в репозиторий, и тогда закрывайте тикет. А пока файла в рапозитории нет, я переоткрываю тикет, так как без файла программа падает.

comment:6 by dimag, 8 years ago

Resolution: fixed
Status: reopenedclosed

новые иконки в r228

comment:7 by san, 6 years ago

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

Milestone renamed

Note: See TracTickets for help on using tickets.