Closed
Description
A running list of tests that occasionally fail and need to be fixed:
- Concurrent::Exchanger exchange without timeout can be reused
- Concurrent::ScheduledTask instance #execute does nothing unless the state is :unscheduled
- dataflow passes the values of dependencies into the block
Exchanger tests deadlock and never finishKnown bug. Will be rewritten from scratch after the 1.0 release.Concurrent::ReadWriteLock#to_s includes the waiting writer count (NOTE: ReadWriteLock has not been released and a customto_s
method is not critical. Deleting the method is a viable option.)- #timeout kills the thread on timeout
- #timeout kills the thread on success
- Concurrent::MVar spurious wake ups #modify returns TIMEOUT on timeout on an empty MVar
- Concurrent::TimerTask dereferenceable it should behave like dereferenceable defaults :dup_on_deref to false
- Concurrent::CyclicBarrier#wait without timeout should block the thread
- Concurrent::TimerSet executes a given task when given a Time
- "Concurrent::Condition with many waiting threads signaled wake up broadcast wakes up all threads" not able to reproduce on os x rbx-2.5.2
- Concurrent::Edge futures .schedule scheduled execution in graph
- Concurrent::TimerTask dereferenceable it should behave like dereferenceable defaults :dup_on_deref to false
- Concurrent::Condition with many waiting threads signalled wake up #broadcast wakes up all threads
- #atomically provides weak isolation
- Ruby cached thread pool stress should be <= 200
- Concurrent::ScheduledTask behavior it should behave like dereferenceable supports dereference flags with observers
Output from tests that failed locally rather than on TravisCI:
Failures:
1) #timeout kills the thread on timeout
Failure/Error: expect(Thread).to receive(:kill).with(any_args())
(<Thread (class)>).kill(*(any args))
expected: 1 time with any arguments
received: 1443 times with any arguments
# ./spec/concurrent/utility/timeout_spec.rb:35:in `block (2 levels) in <module:Concurrent>'
2) #timeout kills the thread on success
Failure/Error: expect(Thread).to receive(:kill).with(any_args())
(<Thread (class)>).kill(*(any args))
expected: 1 time with any arguments
received: 123 times with any arguments
# ./spec/concurrent/utility/timeout_spec.rb:30:in `block (2 levels) in <module:Concurrent>'
3) Concurrent::MVar spurious wake ups #modify returns TIMEOUT on timeout on an empty MVar
Failure/Error: expect(result).to be_nil
expected: nil
got: #<Object:0x007ff9d9560740>
# ./spec/concurrent/mvar_spec.rb:345:in `block (4 levels) in <module:Concurrent>'