Backport #8519

Test IO Timeout error and free space starvation

Added by Luis Lavena 10 months ago. Updated 10 months ago.

[ruby-core:55457]
Status:Closed
Priority:Normal
Assignee:Tomoyuki Chikanaga

Description

=begin
Hello,

As originally mentioned in , a particular test on ruby20_0 branch and trunk is leaving temporary files behind and causing the CI worker to have no free space.

The failing test:

http://ci.rubyinstaller.org/job/ruby-2_0_0-x64-test-all/87/console
http://ci.rubyinstaller.org/job/ruby-trunk-x64-test-all/1371/console

2) Error:
TestIO#testwrite32bitboundary:
Timeout::Error: Timeout::Error
C:/Users/Worker/Jenkins/workspace/ruby-trunk-x64-build/test/ruby/envutil.rb:78:in invoke_ruby'
C:/Users/Worker/Jenkins/workspace/ruby-trunk-x64-build/test/ruby/envutil.rb:298:in
assert
separately'
C:/Users/Worker/Jenkins/workspace/ruby-trunk-x64-build/test/ruby/testio.rb:2693:in block in test_write_32bit_boundary'
C:/Users/Worker/Jenkins/workspace/ruby-trunk-x64-build/test/ruby/test_io.rb:1247:in
make
tempfile'
C:/Users/Worker/Jenkins/workspace/ruby-trunk-x64-build/test/ruby/testio.rb:2692:in `testwrite32bitboundary'

And ruby20_0:

1) Error:
testwrite32bitboundary(TestIO):
Timeout::Error: Timeout::Error
C:/Users/Worker/Jenkins/workspace/ruby-2
00-x64-build/test/ruby/envutil.rb:77:in invoke_ruby'
C:/Users/Worker/Jenkins/workspace/ruby-2_0_0-x64-build/test/ruby/envutil.rb:266:in
assert
separately'
C:/Users/Worker/Jenkins/workspace/ruby-200-x64-build/test/ruby/testio.rb:2674:in block in test_write_32bit_boundary'
C:/Users/Worker/Jenkins/workspace/ruby-2_0_0-x64-build/test/ruby/test_io.rb:1246:in
make
tempfile'
C:/Users/Worker/Jenkins/workspace/ruby-200-x64-build/test/ruby/testio.rb:2673:in `testwrite32bitboundary'

The test (({testwrite32bit_boundary})) is not properly cleaning up the temporary file it creates.

This was not a problem before and just recently started to happen. It is worth to mention no change in the worker setup has been made except normal Windows security upgrades.

Ideas?
=end

Associated revisions

Revision 41659
Added by Tomoyuki Chikanaga 10 months ago

merge revision(s) 41254,41655: [Backport #8519]

test_io.rb: fix test error

* test/ruby/test_io.rb (TestIO#test_write_32bit_boundary): retry to

remove the temporary file while EACCES occurs because of syncing in
the system probably. rescue ENOSPC from IO#tell.
[Bug #8519]
* test/ruby/testio.rb (TestIO#testwrite32bitboundary): skip if
writing a file is slow.
[Bug #8519]

History

#1 Updated by Nobuyoshi Nakada 10 months ago

  • Status changed from Assigned to Closed
  • % Done changed from 0 to 100

This issue was solved with changeset r41254.
Luis, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.


test_io.rb: fix test error

  • test/ruby/testio.rb (TestIO#testwrite32bitboundary): retry to remove the temporary file while EACCES occurs because of syncing in the system probably. rescue ENOSPC from IO#tell. [Bug #8519]

#2 Updated by Hiroshi Shirosaki 10 months ago

  • Status changed from Closed to Assigned
  • Assignee changed from cruby-windows to Nobuyoshi Nakada

testwrite32bit_boundary still fails on CI.

TestIO#testwrite32bit_boundary = 137.43 s = E

http://ci.rubyinstaller.org/job/ruby-trunk-x86-test-all/1566/console

I tried the test on my local Win7 and took about 50s to complete with changing timeout to 60s. And the test creates a 4.2GB temp file.
Since it takes very long time and fails on CI, is it better to skip the test on mingw?

#3 Updated by Anonymous 10 months ago

  • Status changed from Assigned to Closed

This issue was solved with changeset r41655.
Luis, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.


  • test/ruby/testio.rb (TestIO#testwrite32bitboundary): skip if writing a file is slow. [Bug #8519]

#4 Updated by Tomoyuki Chikanaga 10 months ago

  • Tracker changed from Bug to Backport
  • Project changed from ruby-trunk to Backport200
  • Category deleted (test)
  • Status changed from Closed to Assigned
  • Assignee changed from Nobuyoshi Nakada to Tomoyuki Chikanaga
  • Target version deleted (next minor)

#5 Updated by Tomoyuki Chikanaga 10 months ago

  • Status changed from Assigned to Closed

This issue was solved with changeset r41659.
Luis, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.


merge revision(s) 41254,41655: [Backport #8519]

test_io.rb: fix test error

* test/ruby/test_io.rb (TestIO#test_write_32bit_boundary): retry to

remove the temporary file while EACCES occurs because of syncing in
the system probably. rescue ENOSPC from IO#tell.
[Bug #8519]
* test/ruby/testio.rb (TestIO#testwrite32bitboundary): skip if
writing a file is slow.
[Bug #8519]

Also available in: Atom PDF