summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeLines
* merge revision(s) c51b92c18deb850d2cea3a7c9020db23b364ab72: [Backport #18358]ruby_3_0nagachika2022-02-19-43/+86
| | | | | | | | | | | | | | [ruby/zlib] [Bug #18358] Fix crash in zlib when in progress When Zlib::Inflate#inflate or Zlib::Deflate#deflate is called recursively inside the block, a crash can occur because of an use-after-free bug. https://github.com/ruby/zlib/commit/50fb8a0338 --- ext/zlib/zlib.c | 117 ++++++++++++++++++++++++++++++++----------------- test/zlib/test_zlib.rb | 10 ++++- 2 files changed, 85 insertions(+), 42 deletions(-)
* merge revision(s) b3d62a77d928eff01268ca7fa1c1c0966702926d: [Backport #17803]nagachika2022-02-19-2/+94
| | | | | | | | | | | | | | | | | | | | | | [ruby/zlib] Synchronize access to zstream to prevent segfault in multithreaded use I'm not sure whether this handles all multithreaded use cases, but this handles the example that crashes almost immediately and does 10,000,000 total deflates using 100 separate threads. To prevent the tests from taking forever, the committed test for this uses only 10,000 deflates across 10 separate threads, which still causes a segfault in the previous implementation almost immediately. Fixes [Bug #17803] https://github.com/ruby/zlib/commit/4b1023b3f2 --- ext/zlib/zlib.c | 33 ++++++++++++++++++++++++++- test/zlib/test_zlib.rb | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+), 1 deletion(-)
* merge revision(s) ↵nagachika2022-02-19-5/+36
| | | | | | | | | | | | | | | | | cf831f49189c4a890da6845e39199a5dfaf4fb48,3260602fa3d905ba310b9afbc5365ee52cb53d62: zlib: fix Gzip{Writer,Reader}.new fails with a O_TMPFILE file --- ext/zlib/zlib.c | 18 ++++++++++++++---- test/zlib/test_zlib.rb | 21 +++++++++++++++++++++ 2 files changed, 35 insertions(+), 4 deletions(-) Adjusted indents [ci skip] --- ext/zlib/zlib.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)
* merge revision(s) fa7a712d460dc904f8a836bb22b54d457d95ba8e:nagachika2022-02-19-5/+5
| | | | | | | | | | | | Fix -Wundef warnings for HAVE_RB_EXT_RACTOR_SAFE * See [Feature #17752] --- ext/cgi/escape/escape.c | 2 +- ext/monitor/monitor.c | 2 +- ext/racc/cparse/cparse.c | 2 +- ext/zlib/zlib.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-)
* merge revision(s) 0c5f8c62766afe4605172800063e63fe36996658: [Backport #10961]nagachika2022-02-19-2/+8
| | | | | | | | [ruby/zlib] Resume zstream if available [Bug #10961] --- ext/zlib/zlib.c | 6 ++++++ 1 file changed, 6 insertions(+)
* skip some test using openssl to cease failure on GitHub Actions for MinGW.nagachika2022-02-13-1/+12
|
* skip some tests of rdoc temporary.nagachika2022-02-13-3/+7
|
* merge revision(s) ↵nagachika2022-02-13-24/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | f18a0b7654d471101b207e7fe553e12a25398e45,77e1b477297a48e285d34b21e8d30ab4b46bf90c,c483aa8394fc26e341666db66938b1d6fc2cbb8e,f2e39e5fed498b51ae914ed42ec51ae578330583,6aaa1c4d09249baae93d5bb7fba585be420c4fee,923b3652247aa17ac99dc45cb1cd0654fa08d976,950c7a12efa19d73bed10d377368a50664cae32c,69ce9e4187589335124077029496ee293d4e9189,ddb87396349fa4699153d5c4c7569c2e0186adfc,09e7a0c4a4fba18e3308e4f8cb4b8b5b52b41d20,298d65b1e4f3019af7fc9b905390b56736f5fd0e,2f3edf28f3a251bac2cf3b47b46b372faac71e8e: [ruby/rdoc] Follow-up rubygems Use test-unit assertions instead of minitest. https://github.com/ruby/rdoc/commit/d6a6209d7f --- test/rdoc/test_rdoc_rubygems_hook.rb | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) [ruby/rdoc] Add an alias for test-unit with older versions of RubyGems https://github.com/ruby/rdoc/commit/b8d68fdd87 --- test/rdoc/test_rdoc_rubygems_hook.rb | 3 +++ 1 file changed, 3 insertions(+) [ruby/rdoc] Rwrite test-case for rubygems_hook without Gem::TestCase https://github.com/ruby/rdoc/commit/f8d1087ce5 --- test/rdoc/test_rdoc_rubygems_hook.rb | 38 +++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 18 deletions(-) [ruby/rdoc] Update test/rdoc/test_rdoc_rubygems_hook.rb https://github.com/ruby/rdoc/commit/fb264c4cc4 Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org> --- test/rdoc/test_rdoc_rubygems_hook.rb | 4 ++++ 1 file changed, 4 insertions(+) [ruby/rdoc] Use pend instead of skip https://github.com/ruby/rdoc/commit/8460a36d84 --- test/rdoc/test_rdoc_rubygems_hook.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) Close UserInteraction for tests to fix leaked file descriptors --- test/rdoc/test_rdoc_rubygems_hook.rb | 2 ++ 1 file changed, 2 insertions(+) Make temporary directory under the regular location --- test/rdoc/test_rdoc_rubygems_hook.rb | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) Clear default configurations Remove environment variables which can affect the default configurations. --- test/rdoc/test_rdoc_rubygems_hook.rb | 13 +++++++++++++ 1 file changed, 13 insertions(+) Clear rdoc options in the global rubygems configuration --- test/rdoc/test_rdoc_rubygems_hook.rb | 2 ++ 1 file changed, 2 insertions(+) Dispose the global rubygems configuration wholely --- test/rdoc/test_rdoc_rubygems_hook.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Discard RDOCOPT environment variable to make tests stable --- test/rdoc/test_rdoc_rubygems_hook.rb | 1 + 1 file changed, 1 insertion(+) [ruby/rdoc] Prefer omit to pend These conditions are not temporary, rather platform dependent. https://github.com/ruby/rdoc/pull/815#discussion_r654660411 https://github.com/ruby/rdoc/commit/92545fa250 --- test/rdoc/test_rdoc_rubygems_hook.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)
* Revert 207fb8e6d82c5018c958243de8bfaac3fa5ddfb3 partially.nagachika2022-02-13-3/+1
| | | | Bacause the GitHub Actions workflow for MinGW failed on 'where check'
* merge revision(s) 49cc7709cb762594aa8ea1b98a1fdf41662a5cf6:nagachika2022-02-13-2/+4
| | | | | | | | [Actions] mingw - use ruby/setup-ruby@v1 again --- .github/workflows/mingw.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
* merge revision(s) bab862334313c08ec4f218cb1de1774c9909e3be:nagachika2022-02-13-2/+2
| | | | | | | | | | | The `include`d set should be expanded values [ci skip] While the `matrix` level values are expanded from the production of each arrays, `include`d set should be consist from expanded single values. --- .github/workflows/mingw.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
* merge revision(s) 63358581bca80c7a885228ac841b0ae9c4ca11b5:nagachika2022-02-13-2/+2
| | | | | | | | | | Fix weird MinGW failure notifications It's been "MinGW / Array", but it will be "MinGW MINGW64 / check" or "MinGW UCRT64 / check" by this. --- .github/workflows/mingw.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
* merge revision(s) ↵nagachika2022-02-13-2/+3
| | | | | | | | | | | | | | | | | e0a5c3d2b71dfad038d7562fdd33f02ffd79232d,7d55f1b6b6b9777a8bd665f6c5ed6a64c7fa2e9b: [MinGW] Set job names --- .github/workflows/mingw.yml | 1 + 1 file changed, 1 insertion(+) [Actions] use windows-2022 for mingw MSP-Greg/ruby-setup-ruby@win-ucrt-1 --- .github/workflows/mingw.yml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-)
* merge revision(s) ↵nagachika2022-02-13-10/+9
| | | | | | | | | | | | | | | | | ec032e86faf9ac128ac51e3394d9b4001a374b38,8acb2a9b4069f55f71a80c747fc7c6bcb686abb7: [MinGW] Clear prefix and move the directory to DESTDIR Also the destination will be created at the installation. --- .github/workflows/mingw.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) [MinGW] Use autogen --- .github/workflows/mingw.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)
* Fix bundler test failures.nagachika2022-02-12-3/+3
| | | | | | | | | | | | | | | | | | | | | These failures are caused by the incompatibility in keyword argument treatment in rspec-mocks. I fix the expectations in the bundler/rubygems_integration_spec.rb. These tests are not touched in the master branch. It seems that the following patch also fix the failures. But I believe the expectations in these tests are wrong. We should pass a Hash literal explicitly. --- a/common.mk +++ b/common.mk @@ -1365,7 +1365,7 @@ yes-test-bundler-precheck: main no-test-bundler-prepare: no-test-bundler-precheck yes-test-bundler-prepare: yes-test-bundler-precheck $(XRUBY) -C "$(srcdir)" bin/gem install --no-document \ - --install-dir .bundle --conservative "rspec:~> 3.8" "rake:~> 13.0" "parallel_tests:~> 2.29" + --install-dir .bundle --conservative "rspec-core:= 3.10.1" "rspec-expectations:= 3.10.1" "rspec-mocks:= 3.10.2" "rake:~> 13.0" "parallel_tests:~> 2.29" RSPECOPTS = BUNDLER_SPECS =
* merge revision(s) 342e7a094a70d6f90b96262c88177dae32976c85:nagachika2022-02-12-5/+7
| | | | | | | | | | | | [rubygems/rubygems] Fix spec to not touch the network And not depend on the state of rack's master branch, in particular, on their Ruby support range. https://github.com/rubygems/rubygems/commit/9ea4baffac --- spec/bundler/commands/remove_spec.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
* merge revision(s) ↵nagachika2021-12-24-8/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | fb4cf204a662a8cd9dafef6f31f2bd0db9129abe,fa0279d947c3962c3f8c32852278d3ebb964cb19: [Backport #17725] use me->def instead of me for opt_table `vm_opt_method_table` is me=>bop table to manage the optimized methods (by specialized instruction). However, `me` can be invalidated to invalidate the method cache entry. [Bug #17725] To solve the issue, use `me-def` instead of `me` which simply copied at invalidation timing. A test by @jeremyevans https://github.com/ruby/ruby/pull/4376 --- test/ruby/test_method.rb | 15 +++++++++++++++ vm.c | 11 +++++------ 2 files changed, 20 insertions(+), 6 deletions(-) should not share same `def` for specialized method Because the key of redefine table is `def`, `def` should be unique for each optimized method (`alias` is not allowed). --- array.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
* merge revision(s) ↵nagachika2021-12-24-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5086c25f6015558877f85c3f1c014780b08fd3ce,3ff0a0b40c2e1fbdad2286f1dafe837f822d0e0d: [Backport #16936] Properly exclude test cases. Lets consider the following scenario: ~~~ irb(#<Test::Unit::AutoRunner::Runner:0x0000560f68afc3c8>):001:0> p suite OpenSSL::TestEC => OpenSSL::TestEC irb(#<Test::Unit::AutoRunner::Runner:0x0000560f68afc3c8>):002:0> p all_test_methods ["test_ECPrivateKey", "test_ECPrivateKey_encrypted", "test_PUBKEY", "test_check_key", "test_derive_key", "test_dh_compute_key", "test_dsa_sign_asn1_FIPS186_3", "test_ec_group", "test_ec_key", "test_ec_point", "test_ec_point_add", "test_ec_point_mul", "test_generate", "test_marshal", "test_sign_verify", "test_sign_verify_raw"] => ["test_ECPrivateKey", "test_ECPrivateKey_encrypted", "test_PUBKEY", "test_check_key", "test_derive_key", "test_dh_compute_key", "test_dsa_sign_asn1_FIPS186_3", "test_ec_group", "test_ec_key", "test_ec_point", "test_ec_point_add", "test_ec_point_mul", "test_generate", "test_marshal", "test_sign_verify", "test_sign_verify_raw"] irb(#<Test::Unit::AutoRunner::Runner:0x0000560f68afc3c8>):003:0> p filter /\A(?=.*)(?!.*(?-mix:(?-mix:memory_leak)|(?-mix:OpenSSL::TestEC.test_check_key)))/ => /\A(?=.*)(?!.*(?-mix:(?-mix:memory_leak)|(?-mix:OpenSSL::TestEC.test_check_key)))/ irb(#<Test::Unit::AutoRunner::Runner:0x0000560f68afc3c8>):004:0> method = "test_check_key" => "test_check_key" ~~~ The intention here is to exclude the `test_check_key` test case. Unfortunately this does not work as expected, because the negative filter is never checked: ~~~ irb(#<Test::Unit::AutoRunner::Runner:0x0000560f68afc3c8>):005:0> filter === method => true irb(#<Test::Unit::AutoRunner::Runner:0x0000560f68afc3c8>):006:0> filter === "#{suite}##{method}" => false irb(#<Test::Unit::AutoRunner::Runner:0x0000560f68afc3c8>):007:0> filter === method || filter === "#{suite}##{method}" => true ~~~ Therefore always filter against the fully qualified method name `#{suite}##{method}`, which should provide the expected result. However, if plain string filter is used, keep checking also only the method name. This resolves [Bug #16936]. --- tool/lib/test/unit.rb | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) Filter method names only if filtering method name only If sole `filter` option doesn't seem including test case name, match with method name only. And if the filter is a Regexp or String, it never matches method name symbols. --- tool/lib/test/unit.rb | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-)
* merge revision(s) c6706f15af123bdbb3b39a21903d85c78462d047: [Backport #18241]nagachika2021-12-24-10/+11
| | | | | | | | | | | | Fix documentation for String#{<<,concat,prepend} These methods mutate and return the receiver, they don't create and return a new string. Fixes [Bug #18241] --- string.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-)
* merge revision(s) 7f4e86804d426d79807cc038fe4444f7c65f5c4a: [Backport #18163]nagachika2021-12-24-6/+6
| | | | | | | | | Fix documentation of #<=> and #casecmp [ci skip] Descriptions for return values of -1 and 1 were reversed. --- string.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
* merge revision(s) 9f8a50723f8a84b3e4755b418570148f422d1b28: [Backport #17836]nagachika2021-12-02-1/+2
| | | | | | | | | Specify -c to emit pch with clang (#4423) [Bug #17836] --- mjit_worker.c | 1 + 1 file changed, 1 insertion(+)
* merge revision(s) 44d67128a827c65d1a3867c5d8fd190d10aa1dd2:nagachika2021-12-02-4/+4
| | | | | | | | | | | | | | | | | test/openssl/test_cipher: skip AES-CCM tests on OpenSSL <= 1.1.1b AES CCM mode in OpenSSL <= 1.1.1b was overly strict in the parameters assignment order. This has been relaxed by OpenSSL 1.1.1c. https://github.com/openssl/openssl/commit/b48e3be947ddc5da6b5a86db8341081c72b9a4ee The test case is failing on Ubuntu 18.04 because it still uses the initial 1.1.1 release and has the issue: http://rubyci.s3.amazonaws.com/graviton2/ruby-master/log/20210316T120003Z.fail.html.gz --- test/openssl/test_cipher.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
* bump teeny version to 3.0.4.nagachika2021-11-24-2/+2
|
* Fix integer overflowv3_0_3nagachika2021-11-24-4/+9
| | | | | | | | | | | | | Make use of the check in rb_alloc_tmp_buffer2. https://hackerone.com/reports/1328463 When parsing cookies, only decode the values Bump version Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org> Co-authored-by: Yusuke Endoh <mame@ruby-lang.org>
* Bump patchlevel.nagachika2021-11-24-1/+1
|
* Merge date-3.1.3Hiroshi SHIBATA2021-11-24-89/+377
|
* Merge RubyGems-3.2.32 and Bundler-2.2.32Hiroshi SHIBATA2021-11-24-352/+326
|
* merge revision(s) ↵nagachika2021-11-24-16/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | f367b4ffe739453e87e55f955138b0ce662942b7,31a757a4426f1ac8c479313e01542940386fc2fe,837cbea64b74d464bfbfb10e6c81a8f92c6eee71: assert_equal accepts an expected value as the first argument --- test/psych/test_coder.rb | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) Make the test pass with the old libyaml I have no idea what result is right, but it fails with libyaml 0.1.7 (bundled with Ubuntu 18.04) anyway. --- test/psych/test_coder.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) test/psych/test_coder.rb: Suppress non-parenthesis warnings http://rubyci.s3.amazonaws.com/debian9/ruby-master/log/20210518T093002Z.log.html.gz ``` /home/chkbuild/chkbuild/tmp/build/20210518T093002Z/ruby/test/psych/test_coder.rb:277: warning: ambiguity between regexp and two divisions: wrap regexp in parentheses or add a space after `/' operator ``` --- test/psych/test_coder.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
* merge revision(s) ↵nagachika2021-11-24-12/+12
| | | | | | | | | | | | | | | | | | | | | e1b03b0c2b2449a7794f4701bab8b2382eb15116,007e439fe965871c73127928f7244ebb96a86e58: Enable VM_ASSERT in --jit CIs (#4543) --- .github/workflows/mjit.yml | 2 +- ractor.c | 6 +++--- vm_core.h | 6 +++--- vm_method.c | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) Do not expect ec on rb_vm_bugreport because a SEGV might happen on an MJIT worker. As you can clearly see from `if (vm && ec) {`, ec is not guaranteed to exist here. --- vm_dump.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
* merge revision(s) ↵nagachika2021-11-23-5/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5680c38c75aeb5cbd219aafa8eb48c315f287d97,f5d20411386ff2552ff27661387ddc4bae1ebc30: [Backport #17573] Use valid `ec` for postponed job. Postponed job can be registered from non-Ruby thread, which means `ec` in TLS can be NULL. In this case, use main thread's `ec` instead. See https://github.com/ruby/ruby/pull/4108 and https://github.com/ruby/ruby/pull/4336 --- vm_trace.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) Avoid assert failure when NULL EC is expected After 5680c38c75aeb5cbd219aafa8eb48c315f287d97, postponed job APIs now expect to be called on native threads not managed by Ruby and handles getting a NULL execution context. However, in debug builds the change runs into an assertion failure with GET_EC() which asserts that EC is non-NULL. Avoid the assertion failure by passing `false` for `expect_ec` instead as the intention is to handle when there is no EC. Add a test from John Crepezzi and John Hawthorn to exercise this situation. See GH-4108 See GH-5094 [Bug #17573] Co-authored-by: John Hawthorn <john@hawthorn.email> Co-authored-by: John Crepezzi <john.crepezzi@gmail.com> --- ext/-test-/postponed_job/postponed_job.c | 31 ++++++++++++++++++++++++++ test/-ext-/postponed_job/test_postponed_job.rb | 7 ++++++ vm_trace.c | 2 +- 3 files changed, 39 insertions(+), 1 deletion(-)
* merge revision(s) e83c02a768af61cd0890a75e90bcae1119d8bd93: [Backport #18289]nagachika2021-11-23-2/+7
| | | | | | | | | | Delegate keywords from Enumerable#to_a to #each Fixes [Bug #18289] --- enum.c | 2 +- test/ruby/test_enum.rb | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-)
* merge revision(s) 84202963c52e02cecad3e6b2fad478bfbeee1bc7: [Backport #18329]nagachika2021-11-23-3/+35
| | | | | | | | | | | [Bug #18329] Fix crash when calling non-existent super method The cme is NULL when a method does not exist, so check it before accessing the callcache. --- test/ruby/test_super.rb | 31 +++++++++++++++++++++++++++++++ vm_insnhelper.c | 3 ++- 2 files changed, 33 insertions(+), 1 deletion(-)
* * 2021-11-22 [ci skip]git2021-11-22-1/+1
|
* Bump psych version to 3.3.2Hiroshi SHIBATA2021-11-22-218/+377
|
* Bump racc version to 1.5.2Hiroshi SHIBATA2021-11-22-2/+8
|
* Bump resolv version to 0.2.1Hiroshi SHIBATA2021-11-22-2/+2
|
* Bump strscan version to 3.0.1Hiroshi SHIBATA2021-11-22-13/+9
|
* Bump date version to 3.1.1Hiroshi SHIBATA2021-11-22-1/+1
|
* Bump etc version to 1.3.0Hiroshi SHIBATA2021-11-22-13/+25
|
* Bump io-wait version to 0.2.0Hiroshi SHIBATA2021-11-22-39/+38
|
* Bump fiddle version to 1.0.8Hiroshi SHIBATA2021-11-22-20/+166
|
* Bump rdoc version to 6.3.3Hiroshi SHIBATA2021-11-22-52/+53
|
* Bump pp version to 0.2.1Hiroshi SHIBATA2021-11-22-6/+9
|
* Bump rinda version to 0.1.1Hiroshi SHIBATA2021-11-22-3/+3
|
* Bump prettyprint version to 0.1.1Hiroshi SHIBATA2021-11-22-1/+1
|
* Bump stringio version to 3.0.1Hiroshi SHIBATA2021-11-22-16/+44
|
* Bump optparse version to 0.1.1Hiroshi SHIBATA2021-11-22-16/+83
|
* Bump net-protocol version to 0.1.1Hiroshi SHIBATA2021-11-22-1/+1
|
* Bump debug version to 0.2.1Hiroshi SHIBATA2021-11-22-8/+22
|
* pin rbs-1.6.x for test-bundled-gemsHiroshi SHIBATA2021-11-22-1/+1
|