Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re: HTTP Request and Threads

by beech (Parson)
on Sep 13, 2018 at 01:02 UTC ( #1222266=note: print w/replies, xml ) Need Help??


in reply to HTTP Request and Threads

Hi

MS-ERREF: NTSTATUS Values

0xC0000008 STATUS_INVALID_HANDLE An invalid HANDLE was spec +ified. 0xC0000005 STATUS_ACCESS_VIOLATION The instruction at 0x%0 +8lx referenced memory at 0x%08lx. The memory could not be %s. +0xC0000006 0xC0000022 STATUS_ACCESS_DENIED {Access Denied} A process +has requested access to an object but has not been granted those acce +ss rights.

So, based on that, I try something simple, move the first join next to the second, and the program runs to completion.

Starting over, I add exit 0; after the last join , and it also lets the program complete without exceptions

However, redirecting the output to a file, exit solution crashes the same way. Same if I move some use statements around.

However, the original solution doesn't crash no matter what, create threads first, join them later .

However I'm using perl 5.16.1 a long unsupported windows OS , so :)

Replies are listed 'Best First'.
Re^2: HTTP Request and Threads
by banhmi (Initiate) on Sep 13, 2018 at 20:15 UTC

    Thank you for the response! I also got success in joining the threads after creating them. Unfortunately for the way that this code is implemented in the bigger project that I'm working on, making that change would be difficult. This is a good workaround though, and helped narrow the root of error down.

    Starting over, without the first change, adding exit 0 at the end still gave me similar errors (though there was 1 success run out of 5).

    In case you're interested, what I noticed is for my machine, in order for the code to fail, the first request sent by the user agent has to be in a thread that's joined right after its created. On the second request, thread or non-thread, it will mostly crash (around 98% for me, there were 3-4 runs that worked randomly). That said, a quick workaround I'm implementing right now is sending a simple non-thread GET request just to "plant the seed". Then the subsequent requests in threads or non-threads would run without problems.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1222266]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (5)
As of 2021-04-10 21:42 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?