I’ve found a regression in lucee starting at v5.3....
# lucee
j
I’ve found a regression in lucee starting at v5.3.9.133, also 5.3.9.141 & 5.3.10.10-SNAPSHOT. Basically some kind of unsafe variable access when I do a multithreaded queryEach() and then inside that function doing a
for( var col in qWhatever)
where col will jump or repeat a row. Seems it’s not keeping the var scoped safely between threads. I have widdled the code down into a reproducible cfscript. When I change it to use 1 thread it works or when I replace with a
for( var x = 1; x< qWhatever.recordCount; x+=1 ) var col = queryGetRow( qWhatever );
then col is safe and works. When I run on v5.3.8.206 all use cases work. What should be my next steps?
I've put the code online in a repo: https://github.com/jordanclark/lucee-regression you should be able to execute it with
box server start
and see errors messages like:
Copy code
start
FOR-IN-10 ERROR: itemID collision
FOR-IN-10 ERROR: longDesc collision
FOR-IN-10 ERROR: deleted collision
FOR-IN-10 ERROR: itemID collision
FOR-IN-10 ERROR: required collision
done
z
ideally try random snapshots till you figure which one starts the regression?
go ahead and file a bug
g
ideally try random snapshots till you figure which one starts the regression? Just a quick question - do Lucee devs not have this ability? In that; whether it be commandBox / Docker... run the test suite (along with a test for new regressions) across all versions between known working and "now", to isolate the offending version?
z
say 5.3.9.50, then if it passes try 5.3.9.25, etc tec
i'd look at tickets, but I'm half drunk watching a wonderful australian election
@gavinbaumanis i usually make educated guesses based on tickets / commits, ends up being faster than running thru the whole test suite. with the 6.0 build it's easier due to all the extra options https://docs.lucee.org/guides/working-with-source/build-from-source.html#build-performance-tips
this one of the reasons why i prefer the manual increments of build versions, there are 519 commits for 5.3.9, but only 141 SNAPSHOTS
👍 1
p
Filed a bug https://luceeserver.atlassian.net/browse/LDEV-4004 Regression starts from 5.3.9.94-SNAPSHOT
z
@pothys-mitrahsoft you're a champion!
❤️ 2
j
Thanks very much @pothys-mitrahsoft and @zackster for helping pin point the regression!
👍 1
z
@Jordan Clark I've created a test case from your example code https://github.com/lucee/Lucee/pull/1733
j
@zackster awesome thanks Zac, this threading problem is still plaguing us, we've had to disable all multithreading because of random unsafe variables changing. I'd think for lucee random data corruption when looping would be a big deal, do we know if/when this regression bug will be addressed?