pygments / pygments.rb

💎 Ruby wrapper for Pygments syntax highlighter
MIT License
572 stars 141 forks source link

Race condition between watchdog/main thread leads to "Thread killed" on JRuby #215

Closed slonopotamus closed 3 years ago

slonopotamus commented 3 years ago

https://github.com/pygments/pygments.rb/runs/1665016431#step:5:52

<MentosError(<Timeout on a mentos highlight call>)> expected but was
<ThreadError(<killed thread>)
org/jruby/RubyThread.java:1278:in `wakeup'
/Users/runner/work/pygments.rb/pygments.rb/lib/pygments/popen.rb:247:in `block in with_watchdog'
org/jruby/ext/thread/Mutex.java:164:in `synchronize'
/Users/runner/work/pygments.rb/pygments.rb/lib/pygments/popen.rb:245:in `with_watchdog'
/Users/runner/work/pygments.rb/pygments.rb/lib/pygments/popen.rb:291:in `mentos'
/Users/runner/work/pygments.rb/pygments.rb/lib/pygments/popen.rb:218:in `highlight'
/Users/runner/work/pygments.rb/pygments.rb/test/test_pygments.rb:41:in `block in test_raises_exception_on_timeout'
/Users/runner/work/pygments.rb/pygments.rb/vendor/bundle/jruby/2.5.0/gems/test-unit-3.3.9/lib/test/unit/assertions.rb:1676:in `block in _assert_raise'
/Users/runner/work/pygments.rb/pygments.rb/vendor/bundle/jruby/2.5.0/gems/test-unit-3.3.9/lib/test/unit/assertions.rb:54:in `block in assert_block'
/Users/runner/work/pygments.rb/pygments.rb/vendor/bundle/jruby/2.5.0/gems/test-unit-3.3.9/lib/test/unit/assertions.rb:1628:in `_wrap_assertion'
/Users/runner/work/pygments.rb/pygments.rb/vendor/bundle/jruby/2.5.0/gems/test-unit-3.3.9/lib/test/unit/assertions.rb:53:in `assert_block'
/Users/runner/work/pygments.rb/pygments.rb/vendor/bundle/jruby/2.5.0/gems/test-unit-3.3.9/lib/test/unit/assertions.rb:1674:in `block in _assert_raise'
/Users/runner/work/pygments.rb/pygments.rb/vendor/bundle/jruby/2.5.0/gems/test-unit-3.3.9/lib/test/unit/assertions.rb:1633:in `_wrap_assertion'
/Users/runner/work/pygments.rb/pygments.rb/vendor/bundle/jruby/2.5.0/gems/test-unit-3.3.9/lib/test/unit/assertions.rb:1660:in `_assert_raise'
/Users/runner/work/pygments.rb/pygments.rb/vendor/bundle/jruby/2.5.0/gems/test-unit-3.3.9/lib/test/unit/assertions.rb:286:in `assert_raise'
/Users/runner/work/pygments.rb/pygments.rb/test/test_pygments.rb:39:in `test_raises_exception_on_timeout'
/Users/runner/work/pygments.rb/pygments.rb/vendor/bundle/jruby/2.5.0/gems/test-unit-3.3.9/lib/test/unit/testcase.rb:832:in `run_test'
/Users/runner/work/pygments.rb/pygments.rb/vendor/bundle/jruby/2.5.0/gems/test-unit-3.3.9/lib/test/unit/testcase.rb:530:in `block in run'
/Users/runner/work/pygments.rb/pygments.rb/vendor/bundle/jruby/2.5.0/gems/test-unit-3.3.9/lib/test/unit/fixture.rb:270:in `block in create_fixtures_runner'
/Users/runner/work/pygments.rb/pygments.rb/vendor/bundle/jruby/2.5.0/gems/test-unit-3.3.9/lib/test/unit/fixture.rb:270:in `block in create_fixtures_runner'
/Users/runner/work/pygments.rb/pygments.rb/vendor/bundle/jruby/2.5.0/gems/test-unit-3.3.9/lib/test/unit/fixture.rb:251:in `run_fixture'
/Users/runner/work/pygments.rb/pygments.rb/vendor/bundle/jruby/2.5.0/gems/test-unit-3.3.9/lib/test/unit/fixture.rb:286:in `run_setup'
/Users/runner/work/pygments.rb/pygments.rb/vendor/bundle/jruby/2.5.0/gems/test-unit-3.3.9/lib/test/unit/testcase.rb:528:in `block in run'
org/jruby/RubyKernel.java:1189:in `catch'
org/jruby/RubyKernel.java:1184:in `catch'
/Users/runner/work/pygments.rb/pygments.rb/vendor/bundle/jruby/2.5.0/gems/test-unit-3.3.9/lib/test/unit/testcase.rb:527:in `run'
/Users/runner/work/pygments.rb/pygments.rb/vendor/bundle/jruby/2.5.0/gems/test-unit-3.3.9/lib/test/unit/testsuite.rb:124:in `run_test'
/Users/runner/work/pygments.rb/pygments.rb/vendor/bundle/jruby/2.5.0/gems/test-unit-3.3.9/lib/test/unit/testsuite.rb:53:in `run'
/Users/runner/work/pygments.rb/pygments.rb/vendor/bundle/jruby/2.5.0/gems/test-unit-3.3.9/lib/test/unit/testsuite.rb:124:in `run_test'
/Users/runner/work/pygments.rb/pygments.rb/vendor/bundle/jruby/2.5.0/gems/test-unit-3.3.9/lib/test/unit/testsuite.rb:53:in `run'
/Users/runner/work/pygments.rb/pygments.rb/vendor/bundle/jruby/2.5.0/gems/test-unit-3.3.9/lib/test/unit/ui/testrunnermediator.rb:67:in `run_suite'
/Users/runner/work/pygments.rb/pygments.rb/vendor/bundle/jruby/2.5.0/gems/test-unit-3.3.9/lib/test/unit/ui/testrunnermediator.rb:45:in `block in run'
/Users/runner/work/pygments.rb/pygments.rb/vendor/bundle/jruby/2.5.0/gems/test-unit-3.3.9/lib/test/unit/ui/testrunnermediator.rb:102:in `with_listener'
/Users/runner/work/pygments.rb/pygments.rb/vendor/bundle/jruby/2.5.0/gems/test-unit-3.3.9/lib/test/unit/ui/testrunnermediator.rb:41:in `block in run'
org/jruby/RubyKernel.java:1189:in `catch'
org/jruby/RubyKernel.java:1184:in `catch'
/Users/runner/work/pygments.rb/pygments.rb/vendor/bundle/jruby/2.5.0/gems/test-unit-3.3.9/lib/test/unit/ui/testrunnermediator.rb:39:in `run'
/Users/runner/work/pygments.rb/pygments.rb/vendor/bundle/jruby/2.5.0/gems/test-unit-3.3.9/lib/test/unit/ui/testrunner.rb:40:in `start_mediator'
/Users/runner/work/pygments.rb/pygments.rb/vendor/bundle/jruby/2.5.0/gems/test-unit-3.3.9/lib/test/unit/ui/testrunner.rb:25:in `start'
/Users/runner/work/pygments.rb/pygments.rb/vendor/bundle/jruby/2.5.0/gems/test-unit-3.3.9/lib/test/unit/ui/testrunnerutilities.rb:24:in `run'
/Users/runner/work/pygments.rb/pygments.rb/vendor/bundle/jruby/2.5.0/gems/test-unit-3.3.9/lib/test/unit/autorunner.rb:446:in `block in run'
/Users/runner/work/pygments.rb/pygments.rb/vendor/bundle/jruby/2.5.0/gems/test-unit-3.3.9/lib/test/unit/autorunner.rb:502:in `change_work_directory'
/Users/runner/work/pygments.rb/pygments.rb/vendor/bundle/jruby/2.5.0/gems/test-unit-3.3.9/lib/test/unit/autorunner.rb:445:in `run'
/Users/runner/work/pygments.rb/pygments.rb/vendor/bundle/jruby/2.5.0/gems/test-unit-3.3.9/lib/test/unit/autorunner.rb:66:in `run'
/Users/runner/work/pygments.rb/pygments.rb/vendor/bundle/jruby/2.5.0/gems/test-unit-3.3.9/lib/test/unit.rb:516:in `block in <main>'
>