ericaltendorf / plotman

Chia plotting manager
Apache License 2.0
911 stars 280 forks source link

the running program has been stopped or no response #230

Open jjhesk opened 3 years ago

jjhesk commented 3 years ago

We have experience that over 10 hours of processing and the plotman has stopped.

Traceback (most recent call last):
  File "/home/ipant/chia-blockchain/venv/bin/plotman", line 8, in <module>
    sys.exit(main())
  File "/home/ipant/chia-blockchain/venv/lib/python3.8/site-packages/plotman/plotman.py", line 160, in main
    jobs = Job.get_running_jobs(cfg.directories.log)
  File "/home/ipant/chia-blockchain/venv/lib/python3.8/site-packages/plotman/job.py", line 94, in get_running_jobs
    job = Job(proc, logroot)
  File "/home/ipant/chia-blockchain/venv/lib/python3.8/site-packages/plotman/job.py", line 144, in __init__
    for f in self.proc.open_files():
  File "/home/ipant/chia-blockchain/venv/lib/python3.8/site-packages/psutil/__init__.py", line 1138, in open_files
    return self._proc.open_files()
  File "/home/ipant/chia-blockchain/venv/lib/python3.8/site-packages/psutil/_pslinux.py", line 1576, in wrapper
    return fun(self, *args, **kwargs)
  File "/home/ipant/chia-blockchain/venv/lib/python3.8/site-packages/psutil/_pslinux.py", line 2109, in open_files
    if path.startswith('/') and isfile_strict(path):
  File "/home/ipant/chia-blockchain/venv/lib/python3.8/site-packages/psutil/_common.py", line 480, in isfile_strict
    st = os.stat(path)
KeyboardInterrupt
jjhesk commented 3 years ago

the problem is on the ssd.

    def get_temp_files(self):
        # Prevent duplicate file paths by using set.
        temp_files = set([])
        for f in self.proc.open_files():
            if self.tmpdir in f.path or self.tmp2dir in f.path or self.dstdir in f.path:
                temp_files.add(f.path)
        return temp_files

it is failed to read the files from there

altendky commented 3 years ago

Failing to read files causes a KeyboardInterrupt? That seems odd. Also, get_temp_files isn't in the provided stack trace. KeyboardInterrupt generally comes from ctrl+c or sending a SIGINT.