User Tools

Site Tools


keckcaves:netvr_xmlcrash

Open Issues

Here we document and summarize open issues involving NetVR.

XML Crash

NetVR (revision 5) crashes when opening an XML file.

Reports

  • crashes when built against Vrui-1.0-050
  • crashes when built against Vrui-1.0-052
  • NetVR appears to work just fine in some cases
  • debug version of NetVR built against debug version of Vrui-1.0-052 works fine in some cases
  • modifying NetVR makefile build options for optimizations (-O0 or -O1) works in some cases
  • changing trunk/NetVR/Node.cpp line 193 to 'continue;' works in some cases

Details

Compiling a debug version of NetVR against the non-debug version of Vrui gives me the following from gdb:

 Program received signal EXC_BAD_ACCESS, Could not access memory.
 Reason: KERN_INVALID_ADDRESS at address: 0x342e3020
 0x0002ad2f in NetVR::Node::compile (this=0xb726710) at NetVR/Node.cpp:193
 193  weightFromDegree = new bool(*(*pos)->weightFromDegree);

With the following stack trace:

#1  0x000297e1 in NetVR::Network::compile (this=0x721d70) at NetVR/Network.cpp:75
   75  static_cast<Node*>(*pos)->compile();
#2  0x0003430c in NetworkApplication::fileOpenAction (this=0xbffff7c0, file=@0xbffff0cc) at caveapp.h:113
   113 phyNet->compile();
#3  0x00032ec9 in DirectoryDialog::acceptToggleCallback (this=0x72dd60, cbData=0xbffff144) at DirectoryDialog.h:116
   116 handler->fileOpenAction(*currentFile);
#4  0x000360eb in Misc::CallbackList::MethodCallback<DirectoryDialog>::call (this=0x72e820, callbackData=0xbffff144) at CallbackList.h:110
   110 (callbackObject->*callbackMethod)(callbackData);
#5  0x0013362f in Misc::CallbackList::call ()
#6  0x002645da in GLMotif::Button::select ()
#7  0x002642f8 in GLMotif::Button::pointerButtonUp ()
#8  0x0025dd66 in GLMotif::WidgetManager::pointerButtonUp ()
#9  0x006a1ee1 in Vrui::MouseNavigationTool::buttonCallback ()
#10 0x002d42a7 in Vrui::Tool::buttonCallbackWrapper ()
#11 0x0013362f in Misc::CallbackList::call ()
#12 0x002b4092 in Vrui::InputDevice::enableCallbacks ()
#13 0x002b561a in Vrui::InputGraphManager::update ()
#14 0x002e630e in Vrui::VruiState::update ()
#15 0x002f204c in Vrui::vruiInnerLoopSingleWindowBlocking ()
#16 0x002f7307 in Vrui::mainLoop ()
#17 0x002f8527 in Vrui::Application::run ()
#18 0x0003a44f in main (argc=1, argv=0xbffff878) at main.cpp:30
   30  app.run();

Some valgrind output from Ubuntu linux against Vrui-1.0-050…

Here is where the relevant stuff starts:

 start opening file...
 ==22895== ==22895== Invalid read of size 4
 ==22895==    at 0x4562D35: std::string::string(std::string const&) (in /usr/lib/libstdc++.so.6.0.9)
 ==22895==    by 0x805CB38: Netitor::Node::enterRootElement(XML::DocumentDismantler&, util::IDToPointer&) (Node.cpp:285)
 ==22895==    by 0x806605B: Netitor::Network::load(std::istream&) (Network.xml.cpp:77)
 ==22895==    by 0x807E537: NetworkApplication::fileOpenAction(std::string) (caveapp.h:110)
 ==22895==    by 0x8080502: DirectoryDialog::acceptToggleCallback(Misc::CallbackData*) (DirectoryDialog.h:116)
 ==22895==    by 0x807DC36: Misc::CallbackList::MethodCallback<DirectoryDialog>::call(Misc::CallbackData*) const (CallbackList.h:110)
 ==22895==    by 0x406A984: Misc::CallbackList::call(Misc::CallbackData*) const (in /home/blah/usr/share/Vrui-1.0-050/lib/libMisc.g++-3.so.1.0)
 ==22895==    by 0x41AFF6E: GLMotif::Button::select() (in /home/blah/usr/share/Vrui-1.0-050/lib/libGLMotif.g++-3.so.1.0)
 ==22895==    by 0x41AF93F: GLMotif::Button::pointerButtonUp(GLMotif::Event&) (in /home/blah/usr/share/Vrui-1.0-050/lib/libGLMotif.g++-3.so.1.0)
 ==22895==    by 0x41AA445: GLMotif::WidgetManager::pointerButtonUp(GLMotif::Event&) (in /home/blah/usr/share/Vrui-1.0-050/lib/libGLMotif.g++-3.so.1.0)
 ==22895==    by 0x4BB0F4E: Vrui::MouseNavigationTool::buttonCallback(int, int, Vrui::InputDevice::ButtonCallbackData*) (in /home/blah/usr/share/Vrui-1.0-050/lib/VRTools/libMouseNavigationTool.so)
 ==22895==    by 0x42202F2: Vrui::Tool::buttonCallbackWrapper(Misc::CallbackData*, void*) (in /home/blah/usr/share/Vrui-1.0-050/lib/libVrui.g++-3.so.1.0) 

From OS X….

7. Crash, CrashReporter output (only thread 0 included):

Process:         caveapp [5749]
Path:            bin/caveapp
Identifier:      caveapp
Version:         ??? (???)
Code Type:       X86 (Native)
Parent Process:  tcsh [4785]

Date/Time:       2008-07-18 19:02:29.990 -0700
OS Version:      Mac OS X 10.5.4 (9E17)
Report Version:  6

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x00000000342e3020
Crashed Thread:  0

Thread 0 Crashed:
0   caveapp                             0x0001a9ec NetVR::Node::compile() + 220
1   caveapp                             0x00019ced NetVR::Network::compile() + 61
2   caveapp                             0x000228f0 NetworkApplication::fileOpenAction(std::basic_string<char, std::char_traits<char>, std::allocator<char> >) + 320
3   caveapp                             0x00021581 DirectoryDialog::acceptToggleCallback(Misc::CallbackData*) + 65
4   libMisc.g++-3.1.dylib               0x0007262f Misc::CallbackList::call(Misc::CallbackData*) const + 63
5   libGLMotif.g++-3.1.dylib            0x001a130a GLMotif::Button::select() + 58
6   libGLMotif.g++-3.1.dylib            0x001a1028 GLMotif::Button::pointerButtonUp(GLMotif::Event&) + 56
7   libGLMotif.g++-3.1.dylib            0x0019ab16 GLMotif::WidgetManager::pointerButtonUp(GLMotif::Event&) + 54
8   libMouseNavigationTool.bundle       0x005a3ef1 Vrui::MouseNavigationTool::buttonCallback(int, int, Vrui::InputDevice::ButtonCallbackData*) + 897
9   libVrui.g++-3.1.dylib               0x001fdaf7 Vrui::Tool::buttonCallbackWrapper(Misc::CallbackData*, void*) + 215
10  libMisc.g++-3.1.dylib               0x0007262f Misc::CallbackList::call(Misc::CallbackData*) const + 63
11  libVrui.g++-3.1.dylib               0x001df6e2 Vrui::InputDevice::enableCallbacks() + 370
12  libVrui.g++-3.1.dylib               0x001e0c6a Vrui::InputGraphManager::update() + 58
13  libVrui.g++-3.1.dylib               0x0020fa6e Vrui::VruiState::update() + 222
14  libVrui.g++-3.1.dylib               0x0021b11c Vrui::vruiInnerLoopSingleWindowBlocking() + 268
15  libVrui.g++-3.1.dylib               0x00220575 Vrui::mainLoop() + 821
16  libVrui.g++-3.1.dylib               0x00221847 Vrui::Application::run() + 295
17  caveapp                             0x0002577a main + 74
18  caveapp                             0x00001fc6 start + 54
keckcaves/netvr_xmlcrash.txt · Last modified: 2008/10/15 11:32 by ellisocj