summaryrefslogtreecommitdiff
path: root/test
AgeCommit message (Collapse)Author
2020-10-17test/rinda/test_rinda.rb: Prevent a callback Proc from being GC'edYusuke Endoh
According to the log of ac803ab55db50ef891e3680680620d01f28a759b, I found that a thread terminates silently due to "recycled object" of id2ref: ``` "/home/chkbuild/chkbuild/tmp/build/20201017T033002Z/ruby/lib/drb/drb.rb:366:in `_id2ref'" "/home/chkbuild/chkbuild/tmp/build/20201017T033002Z/ruby/lib/drb/drb.rb:366:in `to_obj'" "/home/chkbuild/chkbuild/tmp/build/20201017T033002Z/ruby/lib/drb/drb.rb:1528:in `to_obj'" "/home/chkbuild/chkbuild/tmp/build/20201017T033002Z/ruby/lib/drb/drb.rb:1847:in `to_obj'" "/home/chkbuild/chkbuild/tmp/build/20201017T033002Z/ruby/lib/drb/drb.rb:1136:in `method_missing'" "/home/chkbuild/chkbuild/tmp/build/20201017T033002Z/ruby/test/rinda/test_rinda.rb:652:in `block in do_reply'" ``` https://rubyci.org/logs/rubyci.s3.amazonaws.com/rhel8/ruby-master/log/20201017T033002Z.log.html.gz I believe that this unintentional thread termination has caused intermittent timeout failure of `TestRingServer#test_do_reply`. The root cause of the "recycled object" issue is a bug of `TestRingServer#test_do_reply`. It creates a callback Proc object but does not hold the reference to the object: ``` callback = DRb::DRbObject.new callback ``` The original "callback" object is GC'ed unintentionally. I could consistently reproduce this issue on my machine by adding `GC.stress = true` at the first of `_test_do_reply` method body. This change uses another local variable name, "callback_orig", to keep the original Proc object.
2020-10-16keep proc on the stack so it does not moveAaron Patterson
2020-10-17test/rinda/test_rinda.rb: Add more debugging codeYusuke Endoh
in addition to de5e8d0e3bc3cc39487ffc9d9c15642b6881cd54
2020-10-16test/rinda/test_rinda.rb: try debugging TestRingServer#test_do_replyYusuke Endoh
https://rubyci.org/logs/rubyci.s3.amazonaws.com/rhel8/ruby-master/log/20201016T063003Z.fail.html.gz ``` 1) Error: Rinda::TestRingServer#test_do_reply: Timeout::Error: timeout /home/chkbuild/chkbuild/tmp/build/20201016T063003Z/ruby/test/rinda/test_rinda.rb:837:in `sleep' /home/chkbuild/chkbuild/tmp/build/20201016T063003Z/ruby/test/rinda/test_rinda.rb:837:in `wait_for' /home/chkbuild/chkbuild/tmp/build/20201016T063003Z/ruby/test/rinda/test_rinda.rb:659:in `_test_do_reply' /home/chkbuild/chkbuild/tmp/build/20201016T063003Z/ruby/test/rinda/test_rinda.rb:643:in `block in test_do_reply' /home/chkbuild/chkbuild/tmp/build/20201016T063003Z/ruby/test/rinda/test_rinda.rb:807:in `with_timeout' /home/chkbuild/chkbuild/tmp/build/20201016T063003Z/ruby/test/rinda/test_rinda.rb:643:in `test_do_reply' ```
2020-10-16test/ruby/test_syntax.rb: avoid "warning: assigned but unused variable"Yusuke Endoh
2020-10-16Adjust sp for `if true or ...`/`if false and ...`wanabe
Notes: Merged: https://github.com/ruby/ruby/pull/3445
2020-10-16Adjust sp for `x = false; y = (return until x unless x)` [Bug #16695]wanabe
Notes: Merged: https://github.com/ruby/ruby/pull/3445
2020-10-15Check encoding name to replicateNobuyoshi Nakada
https://hackerone.com/reports/954433
2020-10-15Merge rubygems-3.2.0.rc.2Hiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3660
2020-10-14remove uneffective testKoichi Sasada
RubyVM.stat[:global_method_state] is no longer available so this test doesn't check any more. Notes: Merged: https://github.com/ruby/ruby/pull/3657
2020-10-14ruby_vm_global_method_state is no longer needed.Koichi Sasada
Now ruby_vm_global_method_state is not used so let's remove it. Notes: Merged: https://github.com/ruby/ruby/pull/3657
2020-10-13test/ruby/test_fiber.rb: Suppress "assigned but unused variable" warningsYusuke Endoh
2020-10-12relax Fiber#transfer's restrictionKoichi Sasada
Using Fiber#transfer with Fiber#resume for a same Fiber is limited (once Fiber#transfer is called for a fiber, the fiber can not be resumed more). This restriction was introduced to protect the resume/yield chain, but we realized that it is too much to protect the chain. Instead of the current restriction, we introduce some other protections. (1) can not transfer to the resuming fiber. (2) can not transfer to the yielding fiber. (3) can not resume transferred fiber. (4) can not yield from not-resumed fiber. [Bug #17221] Also at the end of a transferred fiber, it had continued on root fiber. However, if the root fiber resumed a fiber (and that fiber can resumed another fiber), this behavior also breaks the resume/yield chain. So at the end of a transferred fiber, switch to the edge of resume chain from root fiber. For example, root fiber resumed f1 and f1 resumed f2, transferred to f3 and f3 terminated, then continue from the fiber f2 (it was continued from root fiber without this patch). Notes: Merged: https://github.com/ruby/ruby/pull/3636
2020-10-12Make the test suite pass on real Android/Termux environmentYusuke Endoh
Attempting to create a hard link raises EACCES
2020-10-12bignum.c (rb_int_powm): Integer#pow(0, 1) should return 0Yusuke Endoh
... instead of 1 because it requires "modulo 1". [Bug #17257]
2020-10-12Prohibit setter method names in all kinds of endless methodsNobuyoshi Nakada
Also unwrap NODE_RIPPER to check the method name. Notes: Merged: https://github.com/ruby/ruby/pull/3649
2020-10-11[ruby/io-console] Fix timeout type error (#18)Nobuyoshi Nakada
Fixed TypeError when IO#getch timed out `rb_io_wait` returns a bit-flags Integer representing available events, or Qfalse if timed out. Also the result of `NUM2INT` is not a `VALUE`. ``` $ ./bin/ruby -v -rio/console -e "p IO.console.getch(intr: true, time: 0.1)" ruby 3.0.0dev (2020-10-09T20:27:30Z master 5ea2ea74cc) [x64-mingw32] -e:1:in `getch': no implicit conversion of false into Integer (TypeError) from -e:1:in `<main>' ``` https://github.com/ruby/io-console/commit/3bdfaf62df
2020-10-06[lib/ostruct] Fix Marshal loadingMarc-Andre Lafortune
2020-10-05Remove system method for E2E testing because depends on ruby commandaycabta
Notes: Merged: https://github.com/ruby/ruby/pull/3628
2020-10-05Show stdout and stderr when history tests failaycabta
2020-10-03Fix assert_ruby_status usage in 174ae0f5775cc7af7d197963a8f87b7d1972c268Kazuhiro NISHIYAMA
2020-10-03Remove known use-after-poison bugNobuyoshi Nakada
9eda6547812cbda23a73ba3b2620520b0de2bdd6 was fixed by b9488accf9e2cbf5f7c47b42b3eb23469f0aa58d.
2020-10-03Fix ObjectSpace.dump(obj, output: :stdout)Kazuhiro NISHIYAMA
RDoc says `ObjectSpace.dump(obj, output: :stdout) # => nil`, but it returns STDOUT since fbba6bd4e3dff7a61965208fecae908f10c4edbe. I think it is unintentional change. Notes: Merged: https://github.com/ruby/ruby/pull/3620
2020-10-02Ensure that the comparison succeeded [Bug #17205]Nobuyoshi Nakada
2020-10-01Refined assertions for better failure messagesNobuyoshi Nakada
2020-10-01strip trailing spaces [ci skip]Nobuyoshi Nakada
2020-10-01Remove `Thread.scheduler` from public interface.Samuel Williams
It's implementation is equivalent to: Thread.current.scheduler unless Thread.current.blocking? Notes: Merged: https://github.com/ruby/ruby/pull/3610
2020-10-01Raise an exception if the scheduler was already closed.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/3612
2020-10-01Don't call `Scheduler#close` if it doesn't exist.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/3612
2020-10-01stop Ractor test in test-allKoichi Sasada
Ractor changes the interpreter's running mode so now it should not use in test-all process which running with many other tests. Test with a separating process is one idea, but I'm not sure the ruby/ostruct can use this trick.
2020-09-30[ruby/ostruct] Improved YAML serialization.Marc-Andre Lafortune
Patch adapted from Pietro Monteiro [Fixes bug#8382] Notes: Merged: https://github.com/ruby/ruby/pull/3593
2020-09-30[ruby/ostruct] Add test that frozen OpenStructs are Ractor-shareableMarc-Andre Lafortune
Notes: Merged: https://github.com/ruby/ruby/pull/3593
2020-09-30[ruby/ostruct] Protect subclass' methods and our bang methods.Marc-Andre Lafortune
Internally, use only bang methods Notes: Merged: https://github.com/ruby/ruby/pull/3593
2020-09-30[ruby/ostruct] Avoid calling initializeMarc-Andre Lafortune
Notes: Merged: https://github.com/ruby/ruby/pull/3593
2020-09-30Unfreeze string-literal-only interpolated string-literalNobuyoshi Nakada
[Feature #17104]
2020-09-30Remove unneeded `begin` and `end`Kazuhiro NISHIYAMA
2020-09-30Fix `Leaked tempfile`sKazuhiro NISHIYAMA
http://rubyci.s3.amazonaws.com/debian10/ruby-master/log/20200930T033004Z.diff.html.gz ``` [n/n] JSONCommonInterfaceTest#test_load = <elapsed> s [n/n] JSONCommonInterfaceTest#test_load_file = <elapsed> s +Leaked tempfile: JSONCommonInterfaceTest#test_load_file: #<Tempfile:<build-dir>/tmp/20200930-7601-ptnv6i (closed)> [n/n] JSONCommonInterfaceTest#test_load_file! = <elapsed> s +Leaked tempfile: JSONCommonInterfaceTest#test_load_file!: #<Tempfile:<build-dir>/tmp/20200930-7601-1la6m9 (closed)> [n/n] JSONCommonInterfaceTest#test_load_file_with_option = <elapsed> s +Leaked tempfile: JSONCommonInterfaceTest#test_load_file_with_option: #<Tempfile:<build-dir>/tmp/20200930-7601-blf9hz (closed)> [n/n] JSONCommonInterfaceTest#test_load_file_with_option! = <elapsed> s +Leaked tempfile: JSONCommonInterfaceTest#test_load_file_with_option!: #<Tempfile:<build-dir>/tmp/20200930-7601-b5gsdb (closed)> ```
2020-09-30Fix order of operations during `rb_ec_finalize`.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/3605
2020-09-30Fix unsigned int overflow in error message for chrPeter Zhu
The error message has an integer overflow because it treats an unsigned int as a signed int. Before: ``` > 3_000_000_000.chr -1294967296 out of char range (RangeError) ``` After: ``` > 3_000_000_000.chr 3000000000 out of char range (RangeError) ``` Redmine ticket: https://bugs.ruby-lang.org/issues/17186 Notes: Merged: https://github.com/ruby/ruby/pull/3602
2020-09-29test/racc/test_racc_command.rb: prevent a warningYusuke Endoh
http://rubyci.s3.amazonaws.com/ubuntu2004/ruby-master/log/20200929T003003Z.log.html.gz ``` warning: ambiguous first argument; put parentheses or a space even after `/' operator ```
2020-09-28Pass ASAN options to child environmentsAaron Patterson
I want to work with ASAN, but some child environments are not inheriting the ASAN options I'm using. This commit passes them to child environments if specified
2020-09-28Make Warning.warn accept only category keywordJeremy Evans
In general accepting arbitrary keywords is a bad idea unless you are delegating keywords or acting on arbitrary keywords. In this case, the category keyword is ignored, and it's less error prone to not ignore all keywords. Notes: Merged: https://github.com/ruby/ruby/pull/3508
2020-09-28Switch conflicting chdir warning to RuntimeErrorJeremy Evans
The documentation already stated this was an error in one case (when it was previously a warning). Describe the other case, where chdir without block is called inside block passed to chdir. Fixes [Bug #15661] Notes: Merged: https://github.com/ruby/ruby/pull/3591
2020-09-28Remove unnecessary executable bit [ci skip]Kazuhiro NISHIYAMA
2020-09-28[Fixes #137] Improve reportingMarc-Andre Lafortune
2020-09-28[rubygems/rubygems] Add writable check for cache dirxndcn
Sometimes "install_dir/cache" directory is not writable although "install_dir" is writable. https://github.com/rubygems/rubygems/commit/665221cb69 Notes: Merged: https://github.com/ruby/ruby/pull/3599
2020-09-28[rubygems/rubygems] Add test for "gem update --system --silent"Ellen Marie Dash
https://github.com/rubygems/rubygems/commit/c3fb0db930 Notes: Merged: https://github.com/ruby/ruby/pull/3599
2020-09-28Disallow downgrades to too old versionsDavid Rodríguez
Consider the version original included with each ruby as the minimum supported version. Notes: Merged: https://github.com/ruby/ruby/pull/3599
2020-09-28[rubygems/rubygems] Deprecate --dryrunbronzdoc
https://github.com/rubygems/rubygems/commit/1715610648 Notes: Merged: https://github.com/ruby/ruby/pull/3599
2020-09-28[rubygems/rubygems] Make --dry-run flag consistent across rubygems commandsbronzdoc
https://github.com/rubygems/rubygems/commit/addc644cad Notes: Merged: https://github.com/ruby/ruby/pull/3599