-
Notifications
You must be signed in to change notification settings - Fork 26
Closed
Description
Issue overview
Current Behavior
I can get OpenStudioApp to crash on an empty model when going to a ModelSubTabController and clicking "Add" button before selecting a subcategory
Expected Behavior
Should not crash!
Steps to Reproduce
- Launch OSApp (empty model)
- Go to a tab that has subcategories, DO NOT SELECT a subcategory in the left pane
a. Go to Constructions Tab > Materials
b. Go to Schedules > Other - Click "Add" button
- Enjoy your crash
Possible Solution
- Don't add anything
- Add the first iddObjectType in the subcategories
- or better yet, disable the "Add" button until a subcategory is selected
Details
(lldb) pro lau
Process 601231 launched: '/media/DataExt4/Software/Others/OSApp-build/Products/OpenStudioApp' (x86_64)
[...]
m_currLang=[en]
[createModelTempDir] <-1> Created directory '/tmp/osmodel-fc6b-e86c-5603-8f23-1736930997-0'
[openstudio.OSDocument] <-2> OSDocument::fixWeatherFileInTemp: 1
[openstudio.OSDocument] <-2> No weather file
[openstudio.LocalLibraryController] <-2> Creating LocalLibraryController with base app 0x7fffffffbde0
[utilities.bcl.BCLXML] <2> '/media/DataExt4/Software/Others/OpenStudioApplication/src/openstudio_app/Resources/openstudio_results/measure.xml' does not exist
[utilities.bcl.BCLMeasure] <2> '/media/DataExt4/Software/Others/OpenStudioApplication/src/openstudio_app/Resources/openstudio_results' is not a measure
[OpenStudioApplicationPathHelpers] <-2> getOpenStudioApplicationPath, info.dli_fname = '/media/DataExt4/Software/Others/OSApp-build/Products/OpenStudioApp'
[PathHelpers] <-2> completeAndNormalize: result = /media/DataExt4/Software/Others/OSApp-build/Products/OpenStudioApp-1.9.0-rc1
[ApplicationPathHelpers] <-2> getOpenStudioApplicationPath, found '/media/DataExt4/Software/Others/OSApp-build/Products/OpenStudioApp-1.9.0-rc1'
[BOOST_ASSERT] <2> Assertion modelObjectTypeItem failed on line 57 of virtual openstudio::IddObjectType openstudio::ModelObjectTypeListView::currentIddObjectType() const in file /media/DataExt4/Software/Others/OpenStudioApplication/src/openstudio_lib/ModelObjectTypeListView.cpp.
[BOOST_ASSERT] <2> Assertion modelObjectTypeItem failed on line 57 of virtual openstudio::IddObjectType openstudio::ModelObjectTypeListView::currentIddObjectType() const in file /media/DataExt4/Software/Others/OpenStudioApplication/src/openstudio_lib/ModelObjectTypeListView.cpp.
OpenStudioApp: /home/julien/Software/Others/OS-build/_CPack_Packages/Linux/TGZ/OpenStudio-3.9.0+0601494847-Ubuntu-24.04-x86_64/usr/local/openstudio-3.9.0/include/openstudio/utilities/core/Assert.hpp:37: void boost::assertion_failed(const char*, const char*, const char*, long int): Assertion `false' failed.
Process 601231 stopped
* thread #1, name = 'OpenStudioApp', stop reason = signal SIGABRT
frame #0: 0x00007fffe2c9eb1c libc.so.6`__GI___pthread_kill [inlined] __pthread_kill_implementation(no_tid=0, signo=6, threadid=<unavailable>) at pthread_kill.c:44:76
(lldb) bt
* thread #1, name = 'OpenStudioApp', stop reason = signal SIGABRT
* frame #0: 0x00007fffe2c9eb1c libc.so.6`__GI___pthread_kill [inlined] __pthread_kill_implementation(no_tid=0, signo=6, threadid=<unavailable>) at pthread_kill.c:44:76
frame #1: 0x00007fffe2c9ead8 libc.so.6`__GI___pthread_kill [inlined] __pthread_kill_internal(signo=6, threadid=<unavailable>) at pthread_kill.c:78:10
frame #2: 0x00007fffe2c9ead8 libc.so.6`__GI___pthread_kill(threadid=<unavailable>, signo=6) at pthread_kill.c:89:10
frame #3: 0x00007fffe2c4526e libc.so.6`__GI_raise(sig=6) at raise.c:26:13
frame #4: 0x00007fffe2c288ff libc.so.6`__GI_abort at abort.c:79:7
frame #5: 0x00007fffe2c2881b libc.so.6`__assert_fail_base.cold at assert.c:94:3
frame #6: 0x00007fffe2c3b507 libc.so.6`__assert_fail(assertion="false", file="/home/julien/Software/Others/OS-build/_CPack_Packages/Linux/TGZ/OpenStudio-3.9.0+0601494847-Ubuntu-24.04-x86_64/usr/local/openstudio-3.9.0/include/openstudio/utilities/core/Assert.hpp", line=37, function="void boost::assertion_failed(const char*, const char*, const char*, long int)") at assert.c:103:3
frame #7: 0x00005555559eed6f OpenStudioApp`boost::assertion_failed(expr="modelObjectTypeItem", function="virtual openstudio::IddObjectType openstudio::ModelObjectTypeListView::currentIddObjectType() const", file="/media/DataExt4/Software/Others/OpenStudioApplication/src/openstudio_lib/ModelObjectTypeListView.cpp", line=57) at Assert.hpp:37:3
frame #8: 0x0000555555cf8486 OpenStudioApp`openstudio::ModelObjectTypeListView::currentIddObjectType(this=0x00005555595ec0a0) const at ModelObjectTypeListView.cpp:57:3
frame #9: 0x0000555555cfa403 OpenStudioApp`openstudio::ModelSubTabController::currentIddObjectType(this=0x00005555587d0440) const at ModelSubTabController.cpp:154:59
frame #10: 0x0000555555cf9d56 OpenStudioApp`openstudio::ModelSubTabController::onAddItem(this=0x00005555587d0440) at ModelSubTabController.cpp:86:75
frame #11: 0x0000555555b19955 OpenStudioApp`openstudio::SubTabController::doAdd(this=0x00005555587d0440) at SubTabController.cpp:96:12
frame #12: 0x0000555555b1a564 OpenStudioApp`QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (openstudio::SubTabController::*)()>::call(f=(OpenStudioApp`openstudio::SubTabController::doAdd() at SubTabController.cpp:95:32), o=0x00005555587d0440, arg=0x00007fffffffaa40) at qobjectdefs_impl.h:135:20
frame #13: 0x0000555555b1a3bd OpenStudioApp`void QtPrivate::FunctionPointer<void (openstudio::SubTabController::*)()>::call<QtPrivate::List<>, void>(f=(OpenStudioApp`openstudio::SubTabController::doAdd() at SubTabController.cpp:95:32), o=0x00005555587d0440, arg=0x00007fffffffaa40) at qobjectdefs_impl.h:172:95
frame #14: 0x0000555555b1a1e5 OpenStudioApp`QtPrivate::QSlotObject<void (openstudio::SubTabController::*)(), QtPrivate::List<>, void>::impl(which=1, this_=0x00005555596e3940, r=0x00005555587d0440, a=0x00007fffffffaa40, ret=0x0000000000000000) at qobjectdefs_impl.h:384:49
frame #15: 0x00007fffe359b772 libQt6Core.so.6`void doActivate<false>(QObject*, int, void**) [inlined] QtPrivate::QSlotObjectBase::call(a=0x00007fffffffaa40, r=0x00005555587d0440, this=<unavailable>) at qobjectdefs_impl.h:363:57
frame #16: 0x00007fffe359b75c libQt6Core.so.6`void doActivate<false>(sender=0x0000555558bb30a0, signal_index=13, argv=0x00007fffffffaa40) at qobject.cpp:3992:30
frame #17: 0x0000555555c1f76f OpenStudioApp`openstudio::SubTabView::addClicked(this=0x0000555558bb30a0) at moc_SubTabView.cpp:413:26
frame #18: 0x0000555555b1c34b OpenStudioApp`QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (openstudio::SubTabView::*)()>::call(f=(OpenStudioApp`openstudio::SubTabView::addClicked() at moc_SubTabView.cpp:412:1), o=0x0000555558bb30a0, arg=0x00007fffffffabe0) at qobjectdefs_impl.h:135:20
frame #19: 0x0000555555b1c0dc OpenStudioApp`void QtPrivate::FunctionPointer<void (openstudio::SubTabView::*)()>::call<QtPrivate::List<>, void>(f=(OpenStudioApp`openstudio::SubTabView::addClicked() at moc_SubTabView.cpp:412:1), o=0x0000555558bb30a0, arg=0x00007fffffffabe0) at qobjectdefs_impl.h:172:95
frame #20: 0x0000555555b1bebb OpenStudioApp`QtPrivate::QSlotObject<void (openstudio::SubTabView::*)(), QtPrivate::List<>, void>::impl(which=1, this_=0x0000555558acd6f0, r=0x0000555558bb30a0, a=0x00007fffffffabe0, ret=0x0000000000000000) at qobjectdefs_impl.h:384:49
frame #21: 0x00007fffe359b772 libQt6Core.so.6`void doActivate<false>(QObject*, int, void**) [inlined] QtPrivate::QSlotObjectBase::call(a=0x00007fffffffabe0, r=0x0000555558bb30a0, this=<unavailable>) at qobjectdefs_impl.h:363:57
frame #22: 0x00007fffe359b75c libQt6Core.so.6`void doActivate<false>(sender=0x0000555558784bd0, signal_index=8, argv=0x00007fffffffabe0) at qobject.cpp:3992:30
frame #23: 0x0000555555c111ff OpenStudioApp`openstudio::OSItemSelectorButtons::addClicked(this=0x0000555558784bd0) at moc_OSItemSelectorButtons.cpp:255:26
frame #24: 0x0000555555d0717d OpenStudioApp`QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (openstudio::OSItemSelectorButtons::*)()>::call(f=(OpenStudioApp`openstudio::OSItemSelectorButtons::addClicked() at moc_OSItemSelectorButtons.cpp:254:1), o=0x0000555558784bd0, arg=0x00007fffffffae00) at qobjectdefs_impl.h:135:20
frame #25: 0x0000555555d0702b OpenStudioApp`void QtPrivate::FunctionPointer<void (openstudio::OSItemSelectorButtons::*)()>::call<QtPrivate::List<>, void>(f=(OpenStudioApp`openstudio::OSItemSelectorButtons::addClicked() at moc_OSItemSelectorButtons.cpp:254:1), o=0x0000555558784bd0, arg=0x00007fffffffae00) at qobjectdefs_impl.h:172:95
frame #26: 0x0000555555d06f49 OpenStudioApp`QtPrivate::QSlotObject<void (openstudio::OSItemSelectorButtons::*)(), QtPrivate::List<>, void>::impl(which=1, this_=0x0000555558b5e480, r=0x0000555558784bd0, a=0x00007fffffffae00, ret=0x0000000000000000) at qobjectdefs_impl.h:384:49
frame #27: 0x00007fffe359b772 libQt6Core.so.6`void doActivate<false>(QObject*, int, void**) [inlined] QtPrivate::QSlotObjectBase::call(a=0x00007fffffffae00, r=0x0000555558784bd0, this=<unavailable>) at qobjectdefs_impl.h:363:57
frame #28: 0x00007fffe359b75c libQt6Core.so.6`void doActivate<false>(sender=0x0000555558f05a40, signal_index=9, argv=0x00007fffffffae00) at qobject.cpp:3992:30
frame #29: 0x00007fffe3593dd0 libQt6Core.so.6`QMetaObject::activate(sender=<unavailable>, m=<unavailable>, local_signal_index=<unavailable>, argv=<unavailable>) at qobject.cpp:4052:26 [artificial]
frame #30: 0x00007fffe489c7b2 libQt6Widgets.so.6`QAbstractButton::clicked(this=0x0000555558f05a40, _t1=<unavailable>) at moc_qabstractbutton.cpp:408:26
frame #31: 0x00007fffe489c9fa libQt6Widgets.so.6`QAbstractButtonPrivate::emitClicked(this=0x00005555587d8ec0) at qabstractbutton.cpp:379:20
frame #32: 0x00007fffe489e4d0 libQt6Widgets.so.6`QAbstractButtonPrivate::click(this=0x00005555587d8ec0) at qabstractbutton.cpp:372:20
frame #33: 0x00007fffe489e74e libQt6Widgets.so.6`QAbstractButton::mouseReleaseEvent(this=0x0000555558f05a40, e=0x00007fffffffb430) at qabstractbutton.cpp:974:17
frame #34: 0x00007fffe47d3418 libQt6Widgets.so.6`QWidget::event(this=0x0000555558f05a40, event=0x00007fffffffb430) at qwidget.cpp:9317:20
frame #35: 0x00007fffe477eff2 libQt6Widgets.so.6`QApplicationPrivate::notify_helper(this=<unavailable>, receiver=0x0000555558f05a40, e=0x00007fffffffb430) at qapplication.cpp:3287:31
frame #36: 0x00007fffe4787b08 libQt6Widgets.so.6`QApplication::notify(this=<unavailable>, receiver=0x00007fffffffb0d0, e=0x00007fffffffb430) at qapplication.cpp:2774:43
Environment
Some additional details about your environment for this issue (if relevant):
- Platform (Operating system, version): All (I can repro on Mac, Windows and Ubuntu)
- Version of OpenStudioApplication (if using an intermediate build, include SHA): 1.8.0, 1.9.0-rc1 (possibly < 1.8.0)
Context
Found randomly yesterday, and reproduced in testing 1.9.0-rc1 (#784)
Reactions are currently unavailable
