Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Encode process sometimes hangs #110

Open
fluffy-critter opened this issue Mar 7, 2024 · 0 comments
Open

Encode process sometimes hangs #110

fluffy-critter opened this issue Mar 7, 2024 · 0 comments
Labels
bug Something isn't working

Comments

@fluffy-critter
Copy link
Owner

Describe the bug

Sometimes the builder hangs indefinitely.

Reproduction steps

Intermittent issue.

If running from the CLI, ^C results in:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/Users/fluffy/projects/bandcrash/bandcrash/cli.py", line 164, in main
    for task in concurrent.futures.as_completed(all_tasks):
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/concurrent/futures/_base.py", line 243, in as_completed
    waiter.event.wait(wait_timeout)
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/threading.py", line 629, in wait
    signaled = self._cond.wait(timeout)
               ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/threading.py", line 327, in wait
    waiter.acquire()
KeyboardInterrupt
Exception ignored in: <module 'threading' from '/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/threading.py'>
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/threading.py", line 1560, in _shutdown
    atexit_call()
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/concurrent/futures/thread.py", line 31, in _python_exit
    t.join()
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/threading.py", line 1119, in join
    self._wait_for_tstate_lock()
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/threading.py", line 1139, in _wait_for_tstate_lock
    if lock.acquire(block, timeout):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

However this doesn't really tell me which process is failing to complete. The console log leading up to the hang during ./make test is:

Finished writing test_output/album/mp3/13 Test Track.mp3
Zipfile: Waiting for test_output/album/mp3 (1 tasks)
Zipfile: Waiting for test_output/album/ogg (1 tasks)
Cleaning up directory test_output/album/mp3
Allowed in test_output/album/mp3: {'03 .mp3', '02 This has no preview blah blah blah.mp3', '09 .mp3', '12 3. Solave.mp3', '04 Sluggy Puppernutters - A different artist.mp3', '06 asdfasdf.mp3', '11 2. Rinfrescante.mp3', '10 1. Adagio.mp3', '13 Test Track.mp3', '05 Test Track.mp3', '07 This track is hidden.mp3', '08 Test Track with profanity.mp3', '01 This has a title.mp3'}
Removing extraneous file test_output/album/mp3/extraneous-file.txt
Removing extraneous file test_output/album/mp3/dir_should_be_removed
Building test_output/album/Test artist - Test album - mp3.zip from directory test_output/album/mp3
Wrote image bclogo.400.png
added preview protections {'width': 200, 'height': 200, '1x': 'bclogo.200.png', '2x': 'bclogo.400.png'}
Writing index.html
text=<class 'list'>  ['This album was made with Bandcrash.', '', '![](../../art/bclogo.png)']
image alt= url=../../art/bclogo.png title=None
got url ../../art/bclogo.png
added file image-bclogo.png
Writing player.js
Writing player.css
Preview: Finished generating web preview at test_output/album/preview; protections={'2f0a4661f82487ec5024bcef6c055e95.mp3', 'user.css', 'player.css', 'album_cover.200.png', 'album_cover.400.png', 'player.js', 'image-bclogo.png', 'bclogo.400.png', 'index.html', 'bclogo.200.png'}
Cleaning up directory test_output/album/preview
Allowed in test_output/album/preview: {'2f0a4661f82487ec5024bcef6c055e95.mp3', 'user.css', 'player.css', 'album_cover.200.png', 'album_cover.400.png', 'player.js', 'image-bclogo.png', 'bclogo.400.png', 'index.html', 'bclogo.200.png'}
Building test_output/album/Test artist - Test album - preview.zip from directory test_output/album/preview

which doesn't really clear anything up.

Debugging this will probably require adding more logging, and a KeyboardInterrupt handler on the CLI which prints the pending/incomplete tasks before aborting. It's probably something dumb.

Additional context

Mostly happens during development

@fluffy-critter fluffy-critter added the bug Something isn't working label Mar 7, 2024
@fluffy-critter fluffy-critter changed the title Final build sometimes hangs Encode process sometimes hangs Mar 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant