Peter Bortas wrote:
o programs
The runtime now attempts to wait for any compilations in progress to complete before complaining about cloning of unfinished programs. This fixes a race-condition when the same program is compiled from different threads.
Incidentally: this fix is incomplete. So it fixes some of those race-conditions, but not all of them.
On Tue, Mar 1, 2016 at 5:15 PM, Stephen R. van den Berg srb@cuci.nl wrote:
Peter Bortas wrote:
o programs
The runtime now attempts to wait for any compilations in progress to complete before complaining about cloning of unfinished programs. This fixes a race-condition when the same program is compiled from different threads.
Incidentally: this fix is incomplete. So it fixes some of those race-conditions, but not all of them.
Is there a way of reducing that to a reproducable test? It doesn't have to be simple enough to go into the testsuite.
I know we used to have an separate repository "extra_test" or something that I barely used. I could set up a new git repo for just random large or complex stuff that is impossible to have in the standard suite.
Regards,
Peter Bortas wrote:
On Tue, Mar 1, 2016 at 5:15 PM, Stephen R. van den Berg srb@cuci.nl wrote:
Incidentally: this fix is incomplete. So it fixes some of those race-conditions, but not all of them.
Is there a way of reducing that to a reproducable test? It doesn't have to be simple enough to go into the testsuite.
I'd guess it would be possible.
Basically what it boils down to is: - Create a race.pmod which defines and initialises some variables and defines a method called trigger(). - Create a testrace.pike which splits up in say two (or more) threads and in each of those threads it calls up .race.trigger() at mostly the same moment. - Then start testrace.pike, and after it finishes, restart it again. - Hopefully every now and then, you'd trigger the compilerrace-bug.
Stephen R. van den Berg wrote:
- Then start testrace.pike, and after it finishes, restart it again.
- Hopefully every now and then, you'd trigger the compilerrace-bug.
And (obviously?) the race might be triggered more reliably if race.pmod contains more functions/variables so that it takes longer to compile it.
pike-devel@lists.lysator.liu.se