Menu

#96 Crash when almost finished generating toolpaths: Broken pipe

git_-_master
open
nobody
None
5
2017-01-31
2017-01-27
unfa
No

When I presse "Generate all" PyCAM seems to do all the work (going throught the differetn passes with no problems), then when it reaches the end of the batch queue it crashes with this output:

$~~~
pycam
Psyco is not available (performance will probably suffer slightly)
Enabled 4 parallel local processes
Failed to locate the fonts directory 'fonts' below '['/usr/lib/pymodules/share', '/usr/local/share/pycam', '/usr/share/pycam']'. Falling back to '/usr/share/librecad/fonts, /usr/share/qcad/fonts'.
Font directory: /usr/share/librecad/fonts
Imported STL model: 839 vertices, 0 edges, 1444 triangles
intel_do_flush_locked failed: No such file or directory
citron@citron-grafik ~ $ Process PoolWorker-11:
Traceback (most recent call last):
File "/usr/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/usr/lib/python2.7/multiprocessing/process.py", line 114, in run
self._target(self._args, self._kwargs)
File "/usr/lib/python2.7/multiprocessing/pool.py", line 122, in worker
put((job, i, (False, wrapped)))
File "/usr/lib/python2.7/multiprocessing/queues.py", line 392, in put
return send(obj)
IOError: [Errno 32] Broken pipe
Process PoolWorker-10:
Traceback (most recent call last):
File "/usr/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/usr/lib/python2.7/multiprocessing/process.py", line 114, in run
self._target(*self._args,
self._kwargs)
File "/usr/lib/python2.7/multiprocessing/pool.py", line 122, in worker
put((job, i, (False, wrapped)))
File "/usr/lib/python2.7/multiprocessing/queues.py", line 392, in put
return send(obj)
IOError: [Errno 32] Broken pipe
Process PoolWorker-12:
Traceback (most recent call last):
File "/usr/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/usr/lib/python2.7/multiprocessing/process.py", line 114, in run
self._target(
self._args, **self._kwargs)
File "/usr/lib/python2.7/multiprocessing/pool.py", line 122, in worker
put((job, i, (False, wrapped)))
File "/usr/lib/python2.7/multiprocessing/queues.py", line 392, in put
return send(obj)
IOError: [Errno 32] Broken pipe
~~~

I'm running Linux Mint 18 KDE5 64-bit, I had to manually install python-support .deb package downloded from Debian website.

Discussion

  • Lars

    Lars - 2017-01-27

    Sadly pycam is not actively developed anymore.
    Thus I would simply suggest to work around the symptoms: please try to disable parallel / distributed processing.
    (the above traceback indicates that there is an issue with the gathering of distributed job results)

     
  • unfa

    unfa - 2017-01-30

    I tried turning off parallel processing, but PyCam still crashes. Looks like it ignores the setting and uses 4 processes either way, however it crashes in a different way:

    $ pycam
    Psyco is not available (performance will probably suffer slightly)
    Enabled 4 parallel local processes
    Failed to locate the fonts directory 'fonts' below '['/usr/lib/pymodules/share', '/usr/local/share/pycam', '/usr/share/pycam']'. Falling back to '/usr/share/librecad/fonts, /usr/share/qcad/fonts'.
    Font directory: /usr/share/librecad/fonts
    Imported STL model: 839 vertices, 0 edges, 1444 triangles
    Multiprocessing disabled
    Enabled 4 parallel local processes
    Toolpath generation time: 11.632707
    intel_do_flush_locked failed: No such file or directory

    I tried uisng ony 1 process, but that's not a solution either:

    $ pycam
    Psyco is not available (performance will probably suffer slightly)
    Enabled 4 parallel local processes
    Failed to locate the fonts directory 'fonts' below '['/usr/lib/pymodules/share', '/usr/local/share/pycam', '/usr/share/pycam']'. Falling back to '/usr/share/librecad/fonts, /usr/share/qcad/fonts'.
    Font directory: /usr/share/librecad/fonts
    Imported STL model: 839 vertices, 0 edges, 1444 triangles
    Enabled 3 parallel local processes
    Enabled 2 parallel local processes
    Enabled 1 parallel local processes
    Enabled 0 parallel local processes
    Enabled 1 parallel local processes
    intel_do_flush_locked failed: No such file or directory
    citron@citron-grafik ~ $ Process PoolWorker-3:
    Traceback (most recent call last):
    File "/usr/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap
    self.run()
    File "/usr/lib/python2.7/multiprocessing/process.py", line 114, in run
    self._target(self._args, *self._kwargs)
    File "/usr/lib/python2.7/multiprocessing/pool.py", line 122, in worker
    put((job, i, (False, wrapped)))
    File "/usr/lib/python2.7/multiprocessing/queues.py", line 392, in put
    return send(obj)
    IOError: [Errno 32] Broken pipe

     
    • Lars

      Lars - 2017-01-30

      Interesting.
      The output of both variations seems to be different - thus maybe it is indeed progressing further (and stopped by another problem).

      Regarding the error output above ("intel_do_flush_locked failed: No such file or directory"): this seems to be related to graphics drivers? Maybe pycam wants to access OpenGL in a way that fails to work on your system?

      I would suggest to try these approaches:
      1. the workaround described in the linked bug report
      2. disable the "show toolpath" setting (maybe the problem gets triggered only during the visualization of toolpaths)

       

      Last edit: Lars 2017-01-30
  • unfa

    unfa - 2017-01-31

    I disabled the "show toolpath" option and also closed the 3D preview window.

    PyCAM managed to complete generatign a toolpath without crashing.

    I pressed "Generate all" for the default test model and it seems like it'll take about 2 hours to complete. Is that a lot?

     
    • Lars

      Lars - 2017-01-31

      Sadly, performance is not pycam's primary virtue.

       
  • unfa

    unfa - 2017-01-31

    Ok. I have terminated the job after about 4 hours. It showed progress, but looks like it wouldn't be practically usefull. I guess it shouldn't be be so slow, so probably somethings still not good.

    I'm learing the FreeCAD's Path workbench, and looks like it should be able to get the job done, probably with some Python scripting it could be even semi-automatic for similar projects, so I'll focus my effort on learning that.

    FreecAD seems to generate the paths very quickly, even though I was able do to some thing extremely simple for now. It's probably going to require much more manual work than PyCAM would though, But I guess I have to learn it eithr way to get goood results.

    I suggested on the FreeCAD forums that maybe something can be learned form the PyCAM's approach and ideas, maybe even some of it's code used.

    Thank you for help!

     

    Last edit: unfa 2017-01-31

Log in to post a comment.