Bug #96327 my_rcu_lock-t broken on i686
Submitted: 25 Jul 2019 10:16 Modified: 25 Jul 2019 20:49
Reporter: Dyre Tjeldvoll Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Locking Severity:S3 (Non-critical)
Version: OS:Any
Assigned to: CPU Architecture:Any

[25 Jul 2019 10:16] Dyre Tjeldvoll
Description:
This unit test tried to spawn 1000 threads in a short amount of time. On i686 (32bit) this would result in the std::thread{} constructor throwing and exception, resulting from EAGAIN, resource temporarily unavailbale from the underlying OS call. 

The results were hard to interpret because join() was not called on the threads that already had been started, which in turn meant that std::terminate() was called from the destructor for those std::thread objects.

How to repeat:
Run my_rcu_lock-t on i686

Suggested fix:
Reduce the number of threads created. Add a RAII based scope guard which joins with all joinable threads.
[25 Jul 2019 20:49] Paul DuBois
Posted by developer:
 
Fixed in 8.0.18.

Work was done for test suite. No changelog entry required.