ruby-core@ruby-lang.org archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-core:69304] [Ruby trunk - Bug #11166] [Open] thread becames broken after unsuccessful system() or Process.spawn() call
       [not found] <redmine.issue-11166.20150521164544@ruby-lang.org>
@ 2015-05-21 16:45 ` from-ruby-lang
  2015-05-21 22:53 ` [ruby-core:69307] [Ruby trunk - Bug #11166] " from-ruby-lang
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 4+ messages in thread
From: from-ruby-lang @ 2015-05-21 16:45 UTC (permalink / raw
  To: ruby-core

Issue #11166 has been reported by Cyril Vechera.

----------------------------------------
Bug #11166: thread becames broken after unsuccessful system() or Process.spawn() call
https://bugs.ruby-lang.org/issues/11166

* Author: Cyril Vechera
* Status: Open
* Priority: Normal
* Assignee: ruby-core
* ruby -v: 
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
After calling system() or Process.spawn() with non-existing command the thread works incorrectly:
* doesn't response to thread kill
* hangs forever in condition wait or mutexes

The least leads to hanging in file write() or puts() calls due wrong mutex handling or to "No live threads left. Deadlock? (fatal)"

The minimal reproducible script which shows if the thread becames unkillable:


~~~
require 'thread'

1000000.times do |i|
	puts "loop: #{i}"
	t = Thread.new {
		system('/nonexistent')
		puts "done"
		sleep
	}

	sleep 0.000001

	t.kill
	t.join
	# hang up forever on join if thread can't respond to kill
end
~~~

---Files--------------------------------
2.rb (223 Bytes)


-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [ruby-core:69307] [Ruby trunk - Bug #11166] thread becames broken after unsuccessful system() or Process.spawn() call
       [not found] <redmine.issue-11166.20150521164544@ruby-lang.org>
  2015-05-21 16:45 ` [ruby-core:69304] [Ruby trunk - Bug #11166] [Open] thread becames broken after unsuccessful system() or Process.spawn() call from-ruby-lang
@ 2015-05-21 22:53 ` from-ruby-lang
  2015-05-22 19:55 ` [ruby-core:69321] " nagachika00
  2015-05-22 21:47 ` [ruby-core:69322] " nobu
  3 siblings, 0 replies; 4+ messages in thread
From: from-ruby-lang @ 2015-05-21 22:53 UTC (permalink / raw
  To: ruby-core

Issue #11166 has been updated by Cyril Vechera.

Assignee deleted (ruby-core)
ruby -v set to 2.2.0

----------------------------------------
Bug #11166: thread becames broken after unsuccessful system() or Process.spawn() call
https://bugs.ruby-lang.org/issues/11166#change-52570

* Author: Cyril Vechera
* Status: Open
* Priority: Normal
* Assignee: 
* ruby -v: 2.2.0
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
After calling system() or Process.spawn() with non-existing command the thread works incorrectly:
* doesn't response to thread kill
* hangs forever in condition wait or mutexes

The least leads to hanging in file write() or puts() calls due wrong mutex handling or to "No live threads left. Deadlock? (fatal)"

The minimal reproducible script which shows if the thread becames unkillable:


~~~
require 'thread'

1000000.times do |i|
	puts "loop: #{i}"
	t = Thread.new {
		system('/nonexistent')
		puts "done"
		sleep
	}

	sleep 0.000001

	t.kill
	t.join
	# hang up forever on join if thread can't respond to kill
end
~~~

---Files--------------------------------
2.rb (223 Bytes)


-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [ruby-core:69321] [Ruby trunk - Bug #11166] thread becames broken after unsuccessful system() or Process.spawn() call
       [not found] <redmine.issue-11166.20150521164544@ruby-lang.org>
  2015-05-21 16:45 ` [ruby-core:69304] [Ruby trunk - Bug #11166] [Open] thread becames broken after unsuccessful system() or Process.spawn() call from-ruby-lang
  2015-05-21 22:53 ` [ruby-core:69307] [Ruby trunk - Bug #11166] " from-ruby-lang
@ 2015-05-22 19:55 ` nagachika00
  2015-05-22 21:47 ` [ruby-core:69322] " nobu
  3 siblings, 0 replies; 4+ messages in thread
From: nagachika00 @ 2015-05-22 19:55 UTC (permalink / raw
  To: ruby-core

Issue #11166 has been updated by Tomoyuki Chikanaga.

Backport changed from 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN to 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: REQUIRED

----------------------------------------
Bug #11166: thread becames broken after unsuccessful system() or Process.spawn() call
https://bugs.ruby-lang.org/issues/11166#change-52589

* Author: Cyril Vechera
* Status: Closed
* Priority: Normal
* Assignee: 
* ruby -v: 2.2.0
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: REQUIRED
----------------------------------------
After calling system() or Process.spawn() with non-existing command the thread works incorrectly:
* doesn't response to thread kill
* hangs forever in condition wait or mutexes

The least leads to hanging in file write() or puts() calls due wrong mutex handling or to "No live threads left. Deadlock? (fatal)"

The minimal reproducible script which shows if the thread becames unkillable:


~~~
require 'thread'

1000000.times do |i|
	puts "loop: #{i}"
	t = Thread.new {
		system('/nonexistent')
		puts "done"
		sleep
	}

	sleep 0.000001

	t.kill
	t.join
	# hang up forever on join if thread can't respond to kill
end
~~~

---Files--------------------------------
2.rb (223 Bytes)


-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [ruby-core:69322] [Ruby trunk - Bug #11166] thread becames broken after unsuccessful system() or Process.spawn() call
       [not found] <redmine.issue-11166.20150521164544@ruby-lang.org>
                   ` (2 preceding siblings ...)
  2015-05-22 19:55 ` [ruby-core:69321] " nagachika00
@ 2015-05-22 21:47 ` nobu
  3 siblings, 0 replies; 4+ messages in thread
From: nobu @ 2015-05-22 21:47 UTC (permalink / raw
  To: ruby-core

Issue #11166 has been updated by Nobuyoshi Nakada.

Backport changed from 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: REQUIRED to 2.0.0: REQUIRED, 2.1: REQUIRED, 2.2: REQUIRED

Seems same behavior since 1.9.

----------------------------------------
Bug #11166: thread becames broken after unsuccessful system() or Process.spawn() call
https://bugs.ruby-lang.org/issues/11166#change-52590

* Author: Cyril Vechera
* Status: Closed
* Priority: Normal
* Assignee: 
* ruby -v: 2.2.0
* Backport: 2.0.0: REQUIRED, 2.1: REQUIRED, 2.2: REQUIRED
----------------------------------------
After calling system() or Process.spawn() with non-existing command the thread works incorrectly:
* doesn't response to thread kill
* hangs forever in condition wait or mutexes

The least leads to hanging in file write() or puts() calls due wrong mutex handling or to "No live threads left. Deadlock? (fatal)"

The minimal reproducible script which shows if the thread becames unkillable:


~~~
require 'thread'

1000000.times do |i|
	puts "loop: #{i}"
	t = Thread.new {
		system('/nonexistent')
		puts "done"
		sleep
	}

	sleep 0.000001

	t.kill
	t.join
	# hang up forever on join if thread can't respond to kill
end
~~~

---Files--------------------------------
2.rb (223 Bytes)


-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-05-22 21:30 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <redmine.issue-11166.20150521164544@ruby-lang.org>
2015-05-21 16:45 ` [ruby-core:69304] [Ruby trunk - Bug #11166] [Open] thread becames broken after unsuccessful system() or Process.spawn() call from-ruby-lang
2015-05-21 22:53 ` [ruby-core:69307] [Ruby trunk - Bug #11166] " from-ruby-lang
2015-05-22 19:55 ` [ruby-core:69321] " nagachika00
2015-05-22 21:47 ` [ruby-core:69322] " nobu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).