Problem with Thread's memory (possible bug)

Hi all.

Some time ago I’ve started thread named “Memory crush somewhere in
Socket”
with no results. No I can describe the problem more correctly and in
details.

First of all: Windows XP with ruby1.9, RUBY_PLATFORM = i386-mswin32_71

I have a window, and dispatch all keyboard events to Ruby’s block.
All works good, except Ruby’s Threads. When I do anything like just
Thread.new{} in my keyboard handling block, I have corrupted memory and
entire program crashed soon.

How can I debug (or just walk around) this problem?

Thanks.

v.

On Nov 5, 2006, at 11:02 AM, Victor Zverok S. wrote:

Hi all.

Some time ago I’ve started thread named “Memory crush somewhere in
Socket”
with no results. No I can describe the problem more correctly and in
details.

First of all: Windows XP with ruby1.9, RUBY_PLATFORM = i386-mswin32_71

First of all, try to reproduce in Ruby 1.8.5.


Eric H. - [email protected] - http://blog.segment7.net
This implementation is HODEL-HASH-9600 compliant

http://trackmap.robotcoop.com

From: Eric H. [mailto:[email protected]]
Sent: Monday, November 06, 2006 12:41 AM

First of all, try to reproduce in Ruby 1.8.5.

Unfortunately, I can’t do it easy.
My window library extensively uses instance_exec. Reproducing without
this
library would be a pain.

V.

Hi,

In message “Re: Problem with Thread’s memory (possible bug)”
on Mon, 6 Nov 2006 04:02:55 +0900, “Victor “Zverok” Shepelev”
[email protected] writes:

|First of all: Windows XP with ruby1.9, RUBY_PLATFORM = i386-mswin32_71
|
|I have a window, and dispatch all keyboard events to Ruby’s block.
|All works good, except Ruby’s Threads. When I do anything like just
|Thread.new{} in my keyboard handling block, I have corrupted memory and
|entire program crashed soon.
|
|How can I debug (or just walk around) this problem?

First, mere 1.9 does not mean anything. Specify the date.
Full ruby -v line is better.

Besides that, is it possible to supply error reproducing code?

						matz.

Hi,

In message “Re: Problem with Thread’s memory (possible bug)”
on Mon, 6 Nov 2006 19:15:33 +0900, “Victor “Zverok” Shepelev”
[email protected] writes:

|It was Ruby1.9-today, downloaded yesterday.
|
|ruby 1.9.0 (2006-11-04) [i386-mswin32_71]

Much better.

|>Besides that, is it possible to supply error reproducing code?
|
|Possible, but not very useful, as there is custom UI library used.

Hmm. Does you custom UI library tweaks system stack in any way? Ruby
threads does evil things with setjmp/longjmp. They may not co-exist
with other library with similar technique.

						matz.

Yukihiro M. ([email protected])
6/11/2006 15:39:43

Much better.

|>Besides that, is it possible to supply error reproducing code?
|
|Possible, but not very useful, as there is custom UI library used.

Hmm. Does you custom UI library tweaks system stack in any way? Ruby
threads does evil things with setjmp/longjmp. They may not co-exist
with other library with similar technique.

I don’t know definitely, because “my” library is really third-party
closed-source DLL with my C/C++ wrapper. My wrapper does no evil, what
about HTMLayout (third-party library), I’ll ask the author today or
tomorrow and do the further investigation.

Thanks!

V.

From: Yukihiro M. [mailto:[email protected]]
Sent: Monday, November 06, 2006 10:46 AM

|
|How can I debug (or just walk around) this problem?

First, mere 1.9 does not mean anything. Specify the date.
Full ruby -v line is better.

Sorry :frowning:
There was words “today’s version” in my platform description, but I’ve
deleted them before send message.
It was Ruby1.9-today, downloaded yesterday.

ruby 1.9.0 (2006-11-04) [i386-mswin32_71]

Besides that, is it possible to supply error reproducing code?

Possible, but not very useful, as there is custom UI library used.
Here is it:


require ‘lib/config’

require ‘htmr’
require ‘htmr/load’
require ‘htmr/extend’
require ‘htmr/events’

MAIN_HTMR = File.join(HTMR_PATH, ‘nanobrowser.htmr’)

win = Htmr::Window.create_from_file(MAIN_HTMR, ‘NanoBrowser’)

Htmr::App::main_window = win

include Htmr::Keys
win.get(’#url’).on_key_down(ENTER) do
Thread.new{} #HERE’s thread usage!
end

win.show

Htmr::App::run

inside ‘lib/config’ there is:

$:.unshift File.expand_path(File.dirname(FILE))
$:.unshift File.expand_path(File.join(File.dirname(FILE),
“vendors”))
require ‘vendors’

DLL_PATH = File.expand_path(File.join(File.dirname(FILE), ‘…’,
‘bin’))

ENV[‘PATH’] += “;” + DLL_PATH

HTMR_PATH = File.join(File.expand_path(File.dirname(FILE)), ‘…’,
‘htmr’)

All htmr/* files is UI library.

If I’ll comment “HERE’s thread” line, all works fine. I use my library
till
last 2 month inside rather complicated software, and there was almost no
problems.

Thanks.

V.

Yukihiro M. [mailto:[email protected]]
Monday, November 06, 2006 3:40 PM

|>Besides that, is it possible to supply error reproducing code?
|
|Possible, but not very useful, as there is custom UI library used.

Hmm. Does you custom UI library tweaks system stack in any way? Ruby
threads does evil things with setjmp/longjmp. They may not co-exist
with other library with similar technique.

Matz, there is no setjmp/longjmp or something like this in my UI
library.
I’d be grateful for any other advices, how to catch this.

V.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs