Build Information:
Version 2.1.0 (v2.1.0rc0-1370-g94f499b from master)
Copyright 1998-2016 Gerald Combs <gerald@wireshark.org> and contributors.
License GPLv2+: GNU GPL version 2 or later
<http://www.gnu.org/licenses/old-licenses/gpl-2.0.html>
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Compiled (64-bit) with Qt 5.5.0, with libpcap, without POSIX capabilities, with
libz 1.2.5, with GLib 2.36.0, with SMI 0.4.8, with c-ares 1.10.0, with Lua 5.2,
with GnuTLS 2.12.19, with Gcrypt 1.5.0, with MIT Kerberos, with GeoIP, with
QtMultimedia, without AirPcap.
Running on Mac OS X 10.10.5, build 14F1509 (Darwin 14.5.0), with locale C, with
libpcap version 1.5.3 - Apple version 47, with libz 1.2.5, with GnuTLS 2.12.19,
with Gcrypt 1.5.0.
Intel(R) Core(TM) i7-4980HQ CPU @ 2.80GHz (with SSE4.2)
Built using clang 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81).
--
If I:
start Wireshark from the command line;
open a capture file from the main window's list;
open up the Edit -> Configuration Profiles... dialog;
create a new profile;
click "OK";
the GUI hangs.
The key part of the stack trace is:
+ 2739 main (in wireshark) + 5935 [0x10bbe3bef]
+ 2739 QCoreApplication::exec() (in QtCore) + 346 [0x11196a78a]
+ 2739 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (in
QtCore) + 381 [0x1119678cd]
+ 2739
QCocoaEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(in libqcocoa.dylib) + 2189 [0x11577c7fd]
+ 2739 -[NSApplication run] (in AppKit) + 594 [0x7fff912f3af3]
+ 2739 -[NSApplication
nextEventMatchingMask:untilDate:inMode:dequeue:] (in AppKit) + 346
[0x7fff912fde58]
+ 2739 _DPSNextEvent (in AppKit) + 978 [0x7fff912fe8ab]
+ 2739 _BlockUntilNextEventMatchingListInModeWithFilter
(in HIToolbox) + 71 [0x7fff8d1b012b]
+ 2739 ReceiveNextEventCommon (in HIToolbox) + 179
[0x7fff8d1b01ee]
+ 2739 RunCurrentEventLoopInMode (in HIToolbox) + 235
[0x7fff8d1b056f]
+ 2739 CFRunLoopRunSpecific (in CoreFoundation) +
296 [0x7fff89cd6bd8]
+ 2739 __CFRunLoopRun (in CoreFoundation) + 927
[0x7fff89cd71bf]
+ 2739 __CFRunLoopDoSources0 (in CoreFoundation)
+ 269 [0x7fff89cd7b8d]
+ 2739
__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ (in CoreFoundation)
+ 17 [0x7fff89ce5a01]
+ 2739
QCocoaEventDispatcherPrivate::postedEventsSourceCallback(void*) (in
libqcocoa.dylib) + 33 [0x11577d911]
+ 2739
QCocoaEventDispatcherPrivate::processPostedEvents() (in libqcocoa.dylib) + 190
[0x11577d08e]
+ 2739
QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (in
QtCore) + 971 [0x11196ae8b]
+ 2739 QApplication::notify(QObject*,
QEvent*) (in QtWidgets) + 8318 [0x112399ade]
+ 2739
QApplicationPrivate::notify_helper(QObject*, QEvent*) (in QtWidgets) + 251
[0x1123966fb]
+ 2739 QObject::event(QEvent*) (in
QtCore) + 755 [0x111993753]
+ 2739
QMetaObject::activate(QObject*, int, int, void**) (in QtCore) + 2994
[0x11199ab82]
+ 2739
QAction::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (in
QtWidgets) + 565 [0x11238dcf5]
+ 2739
QAction::activate(QAction::ActionEvent) (in QtWidgets) + 271 [0x11238d7ef]
+ 2739
QMetaObject::activate(QObject*, int, int, void**) (in QtCore) + 2777
[0x11199aaa9]
+ 2739
MainWindow::qt_metacall(QMetaObject::Call, int, void**) (in wireshark) + 86
[0x10bf3b246]
+ 2739
MainWindow::on_actionEditConfigurationProfiles_triggered() (in wireshark) + 39
[0x10bd6e3a7]
+ 2739
QDialog::exec() (in QtWidgets) + 514 [0x112582342]
+ 2739
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (in QtCore) + 381
[0x1119678cd]
+ 2739
QCocoaEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(in libqcocoa.dylib) + 2093 [0x11577c79d]
+ 2739
-[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] (in AppKit) +
346 [0x7fff912fde58]
+ 2739
_DPSNextEvent (in AppKit) + 978 [0x7fff912fe8ab]
+ 2739
_BlockUntilNextEventMatchingListInModeWithFilter (in HIToolbox) + 71
[0x7fff8d1b012b]
+ 2739
ReceiveNextEventCommon (in HIToolbox) + 431 [0x7fff8d1b02ea]
+ 2739
RunCurrentEventLoopInMode (in HIToolbox) + 235 [0x7fff8d1b056f]
+
2739 CFRunLoopRunSpecific (in CoreFoundation) + 296 [0x7fff89cd6bd8]
+
2731 __CFRunLoopRun (in CoreFoundation) + 1371 [0x7fff89cd737b]
+ !
2730 __CFRunLoopServiceMachPort (in CoreFoundation) + 212 [0x7fff89cd7eb4]
+ !
: 2730 mach_msg (in libsystem_kernel.dylib) + 55 [0x7fff8d58464f]
+ !
: 2730 mach_msg_trap (in libsystem_kernel.dylib) + 10 [0x7fff8d5854de]
so the Configuration Profiles dialog appears to be running and waiting for an
input event; however, that dialog *should* have been dismissed when I clicked
"OK", and it *did* disappear from the screen.
If I #if 0 out the wsApp->setConfigurationProfile() calls in
ProfileDialog::on_buttonBox_accepted(), I don't see the hang.
I have the suspicion that calling wsApp->setConfigurationProfile() - which
presumably causes a redissection of all packets, to pick up any preference
changes from the new profile - might somehow be doing UI things that cause the
"hey, I clicked OK, the dialog is finished, you can return from its exec
method" indication to get lost somehow.
This might, or might not, be the same thing as bug 11977. That bug doesn't
give the exact sequence of operations done up to the point of the hang, so I
don't know whether it's hanging after switching profiles from that dialog, and
it's on Windows, which is a *LOT* less helpful than OS X in getting stack
traces from running (or crashing) processes.