[#108552] [Ruby master Bug#18782] Race conditions in autoload when loading the same feature with multiple threads. — "ioquatix (Samuel Williams)" <noreply@...>
Issue #18782 has been reported by ioquatix (Samuel Williams).
11 messages
2022/05/14
[ruby-core:108493] [Ruby master Bug#18766] ArgumentError with no backtrace information when requiring openssl/cipher and initializing an OpenSSL::Cipher
From:
"postmodern (Hal Brodigan)" <noreply@...>
Date:
2022-05-09 14:07:23 UTC
List:
ruby-core #108493
Issue #18766 has been updated by postmodern (Hal Brodigan).
@Hanmac oh I am aware that `require 'openssl'` is the correct way to load all of openssl. The bug in question is that it causes an ArgumentError to be raised, but does not show where the exception is being raised from. That is confusing behavior to the end-user.
----------------------------------------
Bug #18766: ArgumentError with no backtrace information when requiring openssl/cipher and initializing an OpenSSL::Cipher
https://bugs.ruby-lang.org/issues/18766#change-97538
* Author: postmodern (Hal Brodigan)
* Status: Open
* Priority: Normal
* ruby -v: ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux]
* Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN
----------------------------------------
I discovered a mysterious ArgumentError when requiring 'openssl/cipher' instead of 'openssl' and initializing a OpenSSL::Cipher object. The ArgumentError does not indicate where the exception is being raised from.
## Steps To Reproduce
```
ruby -r openssl/cipher -e "p OpenSSL::Cipher.new('aes-256-cbc')"
```
## Expected Result
```
#<OpenSSL::Cipher:0x000055a5424cef68>
```
## Actual Result
```
Traceback (most recent call last):
2: from -e:1:in `<main>'
1: from -e:1:in `new'
-e:1:in `initialize': wrong number of arguments (given 1, expected 0) (ArgumentError)
```
## Effected Versions
Can reproduce this bug using ruby-2.7 and ruby-3.1.
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>