attempt to download invalid recipe nubmber crashes client

Case number:845829-2008246
Opened by:LociOiling
Opened on:Saturday, November 2, 2019 - 01:20
Last modified:Monday, November 4, 2019 - 15:40

On Windows (20190620-2e2a2f9739-win_x86), from a client not connected to chat, using "browse/download shared recipes" from the cookbook can cause a crash if an invalid recipe number is specified, and the enter key is used. An unhandled exception appears in log.txt, as shown in the two examples below.

Using the enter key to terminate the "Download Manually" dialog seems to be the key. Enter a currently invalid recipe number like "130188", then use the enter key instead of the "Download" button. An error dialog, "Error: cannot find specified recipe", appears, then the crash follows even if you do nothing.

In constrast, the "Download" button does not seem to produce a crash even after repeated attempts. This perhaps indicates some gap in the event handlers for the "Download Manually" dialog.

First example

  1: interactive::util::access_ptr::indirection_shim::indirection_shim +183 bytes (no line)
  2: interactive::util::detail::checked_fxn_wrapper::operator() +60 bytes (no line)
  3: boost::detail::function::void_function_obj_invoker0,boost::_bi::list2 >,boost::_bi::value > >,void>::invoke +32 bytes (no line)
  4: boost::function0::operator() +120 bytes (no line)
  5: interactive::gui::EventHandler::on_lose_highlight +87 bytes (no line)
  6: interactive::gui::TopLevel::set_highlight_handler +275 bytes (no line)
  7: interactive::gui::TopLevel::update +1502 bytes (no line)
  8: interactive::gui::GUISystem::update +24 bytes (no line)
  9: interactive::guiwrapper::GUIWrapper::tick_frame +155 bytes (no line)
 10: interactive::guiwrapper::win32::Win32Wrapper::start +523 bytes (no line)
 11: interactive::application::interactive_main +2622 bytes (no line)
 12: game::application::game_main +1321 bytes (no line)
 13: library_main +21 bytes (no line)
 14: no symbol (no line)
 15: no symbol (no line)
 16: no symbol (no line)
 17: BaseThreadInitThunk +25 bytes (no line)
 18: RtlGetAppContainerNamedObjectPath +228 bytes (no line)
 19: RtlGetAppContainerNamedObjectPath +180 bytes (no line)

Second example

  1: interactive::util::access_ptr::indirection_shim::indirection_shim +183 bytes (no line)
  2: interactive::util::detail::checked_fxn_wrapper::operator() +60 bytes (no line)
  3: boost::detail::function::void_function_obj_invoker2,boost::_bi::list3 >,boost::arg<1>,boost::arg<2> > >,void,interactive::gui::Point2D const &,int>::invoke +35 bytes (no line)
  4: boost::function2::operator() +126 bytes (no line)
  5: interactive::gui::EventHandler::on_mouse_move +87 bytes (no line)
  6: interactive::gui::TopLevel::on_mouse_move +224 bytes (no line)
  7: interactive::guiwrapper::GUIWrapper::generic_mouse_motion_func +156 bytes (no line)
  8: interactive::util::detail::checked_fxn_wrapper::operator() +83 bytes (no line)
  9: boost::detail::function::void_function_obj_invoker0,boost::_bi::list3 >,boost::_bi::value,boost::_bi::value > >,void>::invoke +36 bytes (no line)
 10: boost::function0::operator() +120 bytes (no line)
 11: interactive::guiwrapper::GUIWrapper::enqueue_event +76 bytes (no line)
 12: interactive::guiwrapper::win32::Win32Wrapper::win_mouse_motion_func +98 bytes (no line)
 13: interactive::guiwrapper::win32::Win32Wrapper::WndProc +773 bytes (no line)
 14: AddClipboardFormatListener +75 bytes (no line)
 15: CallWindowProcW +2860 bytes (no line)
 16: CallWindowProcW +127 bytes (no line)
 17: glDebugEntry +3614 bytes (no line)
 18: AddClipboardFormatListener +75 bytes (no line)
 19: CallWindowProcW +2860 bytes (no line)
 20: DispatchMessageW +590 bytes (no line)
 21: DispatchMessageA +16 bytes (no line)
 22: interactive::guiwrapper::win32::Win32Wrapper::start +389 bytes (no line)
 23: interactive::application::interactive_main +2622 bytes (no line)
 24: game::application::game_main +1321 bytes (no line)
 25: library_main +21 bytes (no line)
 26: no symbol (no line)
 27: no symbol (no line)
 28: no symbol (no line)
 29: BaseThreadInitThunk +25 bytes (no line)
 30: RtlGetAppContainerNamedObjectPath +228 bytes (no line)
 31: RtlGetAppContainerNamedObjectPath +180 bytes (no line)
(Sat, 11/02/2019 - 01:20  |  2 comments)

Joined: 12/27/2012
Groups: Beta Folders

Typoed the subject line, but no way to fix it.

Also the formatting is poor due to the length of the exception messages.

Just to clarify, invalid recipe number + enter key = crash.

Invalid recipe number + download = error message, no crash.

Joined: 12/27/2012
Groups: Beta Folders

Attempting to download a recipe that has already been
downloaded causes a very similar crash.

The crash happens when downloading by recipe number,
not when using "add to cookbook" from the recipe's
web page.


Developed by: UW Center for Game Science, UW Institute for Protein Design, Northeastern University, Vanderbilt University Meiler Lab, UC Davis
Supported by: DARPA, NSF, NIH, HHMI, Amazon, Microsoft, Adobe, RosettaCommons