RejectedSoftware Forums

Sign up

Pages: 1 2

Re: how to long poll ?

On Wed, 30 Oct 2013 10:16:06 GMT, Stephan Dilly wrote:

On Mon, 28 Oct 2013 17:53:46 +0100, Sönke Ludwig wrote:

Am 28.10.2013 17:41, schrieb Stephan Dilly:

On Fri, 25 Oct 2013 22:09:21 GMT, Stephan Dilly wrote:

I had to make a weird change to make the timeout of the wait condition work. please have a look at this commit.
why do i have to trigger the condition by an additional timer instead of being able to use the wait timeout parameter ? Cause if I use it, then exactly after the timeout is over all kinds of access violations happen inside of vibe.d and it is talking about invalid locks...

Any ideas ?

Dicebot adviced me in the irc to bump my question again with a "pretty please" :)

Sorry, I missed this. I'd have to reproduce that locally to be able to
make a qualified statement. Given that I check out the commit before the
one you linked, what exactly do I have to do to trigger the errors?

Yeah just sync to the previous commit: https://github.com/Extrawurst/sockjs-d/commit/3b05c779fde9104283288e0453edfe862246f5eb
Then start the app and open your browser on http://localhost:8989/index.html
You should see the POST comming in in the log and see that after the heartbeat interval (25s in default) the connection should return and expect the client to newly connect: https://github.com/Extrawurst/sockjs-d/blob/3b05c779fde9104283288e0453edfe862246f5eb/source/sockjs/connection.d#L129

Well after this timeout all kinds of exceptions are thrown from inside vibe.d... for example some stuff i see when using "--vv" cmd line:
[02090F80:020FE400 CRITICAL] CoreTaskFiber was terminated unexpectedly: Privileged Instruction
[02090F80:020FE400 dia] Full error: object.Error: Privileged Instruction
[02090F80:020FE400 dia] ----------------
[02090F80:020FE400 dia] 0x005B5B1D in TypeInfoP_init
[02090F80:020FE400 dia] 0x004F22A5 in corethreadFiberrun
[02090F80:020FE400 dia] 0xFFFFFFFF
[02090F80:020FE400 dia] 0x77B771F5 in WinSqmSetIfMaxDWORD

And the first two exceptions are:
[02090F80:02090000 CRITICAL] CoreTaskFiber was terminated unexpectedly: Array Bounds Exceeded
[02090F80:02090000 dia] Full error: object.Error: Array Bounds Exceeded
[02090F80:02090000 dia] ----------------
[02090F80:02090000 dia] 0x005B5B8D in TypeInfoP_vtbl
[02090F80:02090000 dia] 0x004F22A5 in corethreadFiberrun
[02090F80:02090000 dia] 0xFFFFFFFF
[02090F80:02090000 dia] 0x77B771F5 in WinSqmSetIfMaxDWORD

And sometimes there is an AccessViolation too...

Hope you can find something in there... Seems pretty tedios that this solution does not work and that I have to start an additional timer to do the timeout...

pretty please ... ?! ;)

Re: how to long poll ?

Am 03.11.2013 15:55, schrieb Stephan Dilly:

On Wed, 30 Oct 2013 10:16:06 GMT, Stephan Dilly wrote:

On Mon, 28 Oct 2013 17:53:46 +0100, Sönke Ludwig wrote:
(...)
Well after this timeout all kinds of exceptions are thrown from inside vibe.d... for example some stuff i see when using "--vv" cmd line:
(...)
And the first two exceptions are:
(...)
And sometimes there is an AccessViolation too...

Hope you can find something in there... Seems pretty tedios that this solution does not work and that I have to start an additional timer to do the timeout...

pretty please ... ?! ;)

Okay, I've finally tracked down the causes for this. The assertion was
an associative array bug for which there is a workaround now. The crash
was took a while to track down because there were no usable call stacks
and fiber switches were involved, which made single-stepping through the
code a bit more difficult.

Both issues are fixed on git master now and the example seems to run
fine now.

Re: how to long poll ?

On Mon, 04 Nov 2013 15:21:38 +0100, Sönke Ludwig wrote:

Am 03.11.2013 15:55, schrieb Stephan Dilly:

On Wed, 30 Oct 2013 10:16:06 GMT, Stephan Dilly wrote:

On Mon, 28 Oct 2013 17:53:46 +0100, Sönke Ludwig wrote:
(...)
Well after this timeout all kinds of exceptions are thrown from inside vibe.d... for example some stuff i see when using "--vv" cmd line:
(...)
And the first two exceptions are:
(...)
And sometimes there is an AccessViolation too...

Hope you can find something in there... Seems pretty tedios that this solution does not work and that I have to start an additional timer to do the timeout...

pretty please ... ?! ;)

Okay, I've finally tracked down the causes for this. The assertion was
an associative array bug for which there is a workaround now. The crash
was took a while to track down because there were no usable call stacks
and fiber switches were involved, which made single-stepping through the
code a bit more difficult.

Both issues are fixed on git master now and the example seems to run
fine now.

Really awesome! Will have a look at it as soon as i can

Pages: 1 2