Opened 6 years ago

Closed 5 years ago

#2536 closed defect (fixed)

Tug mouse mode bad allocation error

Reported by: goddard@… Owned by: Tom Goddard
Priority: normal Milestone:
Component: Structure Editing Version:
Keywords: Cc:
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        Windows-10-10.0.17763
ChimeraX Version: 0.91 (2019-10-19)
Description
Tugging on a casein beta protein model in VR worked for a minute then got this error.

Log:
UCSF ChimeraX version: 0.91 (2019-10-19)  
© 2016-2019 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  

> open C:\Users\goddard\Desktop\vrdemos\milk-oct2019\casein-beta3.pdb

Summary of feedback from opening C:\Users\goddard\Desktop\vrdemos\milk-
oct2019\casein-beta3.pdb  
---  
warning | Ignored bad PDB record found on line 3593  
END  
  
Chain information for casein-beta3.pdb #1  
---  
Chain | Description  
A | No description available  
  

> hide cartoons

> show atoms

> style ball

Changed 3584 atom styles  

> vr on

started SteamVR rendering  

> hide

> show @N,CA,C

> style sphere

Changed 3584 atom styles  

> style sphere

Changed 3584 atom styles  

> show atoms

> lighting soft

> show surfaces

> style ball

Changed 3584 atom styles  

> lighting simple

> mlp

Map values for surface "casein-beta3.pdb_A SES surface": minimum -28.6, mean
-0.796, maximum 23.9  

Could not parse stylesheet of object MultiColorButton(0x2f3f5c592f0)  

Exception ignored in: <function Drawing.__del__ at 0x000002F3BDA0E168>  
Traceback (most recent call last):  
File "C:\Program Files\ChimeraX-Oct-21-2019\bin\lib\site-
packages\chimerax\core\graphics\drawing.py", line 1113, in __del__  
self.delete()  
File "C:\Program Files\ChimeraX-Oct-21-2019\bin\lib\site-
packages\chimerax\map\volume.py", line 1700, in delete  
Model.delete(self)  
File "C:\Program Files\ChimeraX-Oct-21-2019\bin\lib\site-
packages\chimerax\core\models.py", line 90, in delete  
Drawing.delete(self)  
File "C:\Program Files\ChimeraX-Oct-21-2019\bin\lib\site-
packages\chimerax\core\graphics\drawing.py", line 1129, in delete  
self.remove_all_drawings()  
File "C:\Program Files\ChimeraX-Oct-21-2019\bin\lib\site-
packages\chimerax\core\graphics\drawing.py", line 318, in remove_all_drawings  
self.remove_drawings(cd, delete)  
File "C:\Program Files\ChimeraX-Oct-21-2019\bin\lib\site-
packages\chimerax\core\graphics\drawing.py", line 311, in remove_drawings  
d.delete()  
File "C:\Program Files\ChimeraX-Oct-21-2019\bin\lib\site-
packages\chimerax\map\volume.py", line 1867, in delete  
self.volume._surfaces.remove(self)  
ValueError: list.remove(x): x not in list  

> hide surfaces

> ui mousemode rightMode tug

VR mode tug  

> close #1

> open C:\Users\goddard\Desktop\vrdemos\milk-oct2019\casein-beta3.pdb

Summary of feedback from opening C:\Users\goddard\Desktop\vrdemos\milk-
oct2019\casein-beta3.pdb  
---  
warning | Ignored bad PDB record found on line 3593  
END  
  
Chain information for casein-beta3.pdb #1  
---  
Chain | Description  
A | No description available  
  

> hide surfaces

> show atoms

> hide cartoons

> style ball

Changed 3584 atom styles  
Traceback (most recent call last):  
File "C:\Program Files\ChimeraX-Oct-21-2019\bin\lib\site-
packages\chimerax\tug\tugatoms.py", line 324, in _simulate  
max_force = self._max_force()  
File "C:\Program Files\ChimeraX-Oct-21-2019\bin\lib\site-
packages\chimerax\tug\tugatoms.py", line 289, in _max_force  
self._sim_forces = c.getState(getForces = True).getForces(asNumpy =
True)/(kilojoule_per_mole/nanometer)  
File "C:\Program Files\ChimeraX-Oct-21-2019\bin\lib\site-
packages\simtk\openmm\openmm.py", line 6200, in getState  
state = _openmm.Context_getState(self, types, enforcePeriodicBox, groups_mask)  
Exception: bad allocation  
  
During handling of the above exception, another exception occurred:  
  
Traceback (most recent call last):  
File "C:\Program Files\ChimeraX-Oct-21-2019\bin\lib\site-
packages\chimerax\core\triggerset.py", line 130, in invoke  
return self._func(self._name, data)  
File "C:\Program Files\ChimeraX-Oct-21-2019\bin\lib\site-
packages\chimerax\vive\vr.py", line 593, in next_frame  
self.process_controller_events()  
File "C:\Program Files\ChimeraX-Oct-21-2019\bin\lib\site-
packages\chimerax\vive\vr.py", line 622, in process_controller_events  
self.process_controller_motion()  
File "C:\Program Files\ChimeraX-Oct-21-2019\bin\lib\site-
packages\chimerax\vive\vr.py", line 637, in process_controller_motion  
hc.process_motion(self)  
File "C:\Program Files\ChimeraX-Oct-21-2019\bin\lib\site-
packages\chimerax\vive\vr.py", line 2150, in process_motion  
m.drag(camera, self, previous_pose, pose)  
File "C:\Program Files\ChimeraX-Oct-21-2019\bin\lib\site-
packages\chimerax\vive\vr.py", line 2705, in drag  
if m.vr_motion(p, move, delta_z) != 'accumulate drag':  
File "C:\Program Files\ChimeraX-Oct-21-2019\bin\lib\site-
packages\chimerax\tug\tugatoms.py", line 162, in vr_motion  
self._continue_tugging()  
File "C:\Program Files\ChimeraX-Oct-21-2019\bin\lib\site-
packages\chimerax\tug\tugatoms.py", line 129, in _continue_tugging  
self._tug()  
File "C:\Program Files\ChimeraX-Oct-21-2019\bin\lib\site-
packages\chimerax\tug\tugatoms.py", line 120, in _tug  
self._tugger.tug_displacement(offset)  
File "C:\Program Files\ChimeraX-Oct-21-2019\bin\lib\site-
packages\chimerax\tug\tugatoms.py", line 303, in tug_displacement  
self._simulate()  
File "C:\Program Files\ChimeraX-Oct-21-2019\bin\lib\site-
packages\chimerax\tug\tugatoms.py", line 329, in _simulate  
max_force=self._max_force()  
File "C:\Program Files\ChimeraX-Oct-21-2019\bin\lib\site-
packages\chimerax\tug\tugatoms.py", line 289, in _max_force  
self._sim_forces = c.getState(getForces = True).getForces(asNumpy =
True)/(kilojoule_per_mole/nanometer)  
File "C:\Program Files\ChimeraX-Oct-21-2019\bin\lib\site-
packages\simtk\openmm\openmm.py", line 6200, in getState  
state = _openmm.Context_getState(self, types, enforcePeriodicBox, groups_mask)  
Exception: bad allocation  
  
Error processing trigger "new frame":  
Exception: bad allocation  
  
File "C:\Program Files\ChimeraX-Oct-21-2019\bin\lib\site-
packages\simtk\openmm\openmm.py", line 6200, in getState  
state = _openmm.Context_getState(self, types, enforcePeriodicBox, groups_mask)  
  
See log for complete Python traceback.  
  
Traceback (most recent call last):  
File "C:\Program Files\ChimeraX-Oct-21-2019\bin\lib\site-
packages\chimerax\tug\tugatoms.py", line 322, in _simulate  
simulation.step(sim_steps)  
File "C:\Program Files\ChimeraX-Oct-21-2019\bin\lib\site-
packages\simtk\openmm\app\simulation.py", line 132, in step  
self._simulate(endStep=self.currentStep+steps)  
File "C:\Program Files\ChimeraX-Oct-21-2019\bin\lib\site-
packages\simtk\openmm\app\simulation.py", line 197, in _simulate  
self.integrator.step(10) # Only take 10 steps at a time, to give Python more
chances to respond to a control-c.  
File "C:\Program Files\ChimeraX-Oct-21-2019\bin\lib\site-
packages\simtk\openmm\openmm.py", line 19626, in step  
return _openmm.VariableLangevinIntegrator_step(self, steps)  
Exception: bad allocation  
  
During handling of the above exception, another exception occurred:  
  
Traceback (most recent call last):  
File "C:\Program Files\ChimeraX-Oct-21-2019\bin\lib\site-
packages\chimerax\core\triggerset.py", line 130, in invoke  
return self._func(self._name, data)  
File "C:\Program Files\ChimeraX-Oct-21-2019\bin\lib\site-
packages\chimerax\tug\tugatoms.py", line 129, in _continue_tugging  
self._tug()  
File "C:\Program Files\ChimeraX-Oct-21-2019\bin\lib\site-
packages\chimerax\tug\tugatoms.py", line 120, in _tug  
self._tugger.tug_displacement(offset)  
File "C:\Program Files\ChimeraX-Oct-21-2019\bin\lib\site-
packages\chimerax\tug\tugatoms.py", line 303, in tug_displacement  
self._simulate()  
File "C:\Program Files\ChimeraX-Oct-21-2019\bin\lib\site-
packages\chimerax\tug\tugatoms.py", line 329, in _simulate  
max_force=self._max_force()  
File "C:\Program Files\ChimeraX-Oct-21-2019\bin\lib\site-
packages\chimerax\tug\tugatoms.py", line 289, in _max_force  
self._sim_forces = c.getState(getForces = True).getForces(asNumpy =
True)/(kilojoule_per_mole/nanometer)  
File "C:\Program Files\ChimeraX-Oct-21-2019\bin\lib\site-
packages\simtk\openmm\openmm.py", line 6200, in getState  
state = _openmm.Context_getState(self, types, enforcePeriodicBox, groups_mask)  
Exception: bad allocation  
  
Error processing trigger "new frame":  
Exception: bad allocation  
  
File "C:\Program Files\ChimeraX-Oct-21-2019\bin\lib\site-
packages\simtk\openmm\openmm.py", line 6200, in getState  
state = _openmm.Context_getState(self, types, enforcePeriodicBox, groups_mask)  
  
See log for complete Python traceback.  
  




OpenGL version: 3.3.0 NVIDIA 430.39
OpenGL renderer: Quadro P6000/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation

Change History (7)

comment:1 by Eric Pettersen, 6 years ago

Component: UnassignedStructure Editing
Owner: set to Tom Goddard
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionProblem removing drawing / tug blows up

comment:2 by Tom Goddard, 6 years ago

There was an earlier unrelated traceback cause by the volume created by the mlp command not being cleaned up properly. I've fixed that.

comment:3 by Tom Goddard, 6 years ago

I can reproduce the freeze followed my memory use increasing 1 Gbyte per second until crash by tugging this same structure on macOS Catalina, OpenMM 7.3.0 for maybe 30 seconds.

Similar problems are discussed years ago in OpenMM and I added a comment to this thread

https://github.com/openmm/openmm/issues/1159

Peter Eastman replied that he takes the segfaults seriously and would appreciate a test case. Possibly could make a standalone Python test, that applies a constant hard force on one atom. It could take a whole day to isolate the python code.

comment:4 by Tom Goddard, 6 years ago

I created a standalone test case and new OpenMM issue for this runaway memory use crash.

https://github.com/openmm/openmm/issues/2459

comment:5 by Tom Goddard, 6 years ago

The openmm ticket was closed and fixed and Peter Eastman says the test code I provided now throws an exception pretty quickly. When the next OpenMM release comes out test it and close this ticket.

comment:6 by Tom Goddard, 6 years ago

Summary: Problem removing drawing / tug blows upTug mouse mode bad allocation error

comment:7 by Tom Goddard, 5 years ago

Resolution: fixed
Status: assignedclosed

ChimeraX now uses the updated OpenMM 7.4.1

Note: See TracTickets for help on using tickets.