Opened 6 years ago
Closed 5 years ago
#2536 closed defect (fixed)
Tug mouse mode bad allocation error
| Reported by: | 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 , 6 years ago
| Component: | Unassigned → Structure Editing |
|---|---|
| Owner: | set to |
| Platform: | → all |
| Project: | → ChimeraX |
| Status: | new → assigned |
| Summary: | ChimeraX bug report submission → Problem removing drawing / tug blows up |
comment:2 by , 6 years ago
comment:3 by , 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
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 , 6 years ago
I created a standalone test case and new OpenMM issue for this runaway memory use crash.
comment:5 by , 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 , 6 years ago
| Summary: | Problem removing drawing / tug blows up → Tug mouse mode bad allocation error |
|---|
comment:7 by , 5 years ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |
ChimeraX now uses the updated OpenMM 7.4.1
There was an earlier unrelated traceback cause by the volume created by the mlp command not being cleaned up properly. I've fixed that.