zlib icon indicating copy to clipboard operation
zlib copied to clipboard

Zlib.gzip sometimes errors out with Zlib::BufError if process has been forked

Open hmdne opened this issue 3 years ago • 1 comments

Ref: opal/opal#2463

The issue can't be reproduced reliably, the most reliable way is with the following code (you may need to launch it a couple of times) WARNING: it forks a lot of processes:

[user@localhost opal]# ruby _testzlib.rb 
_testzlib.rb:5:in `gzip': buffer error (Zlib::BufError)
	from _testzlib.rb:5:in `<main>'
[user@localhost opal]# _testzlib.rb:5:in `gzip': buffer error (Zlib::BufError)
	from _testzlib.rb:5:in `<main>'

[user@localhost opal]# 
[user@localhost opal]# cat _testzlib.rb 
require 'zlib'

10.times { fork }

Zlib.gzip("sdfasfasdfasdfasdasdfadfasdf" * 10000)
[user@localhost opal]# 

The issue has been seen on opal's CI since Ruby 2.6 until 3.1.

hmdne avatar Nov 02 '22 09:11 hmdne

We’ve been getting this error fairly regularly. At first I thought it could be due to the thread wake-up issue, but after shipping #74 we still get the BufError.

ianks avatar Jan 13 '24 05:01 ianks