Bug 1213633

Summary: odd results of build-compare suggesting ram corruption on OBS machines
Product: [openSUSE] openSUSE.org Reporter: Bruno Pitrus <brunopitrus>
Component: BuildServiceAssignee: Olaf Hering <ohering>
Status: RESOLVED INVALID QA Contact: Adrian Schröter <adrian.schroeter>
Severity: Critical    
Priority: P5 - None CC: brunopitrus
Version: unspecified   
Target Milestone: ---   
Hardware: All   
OS: All   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Bruno Pitrus 2023-07-25 10:09:28 UTC
While building devel:tools:ide:vscode/code i started getting reposts of non-reproducible builds. build-compare reports differences on several webpacked JS files.
Due to the extremely long lines, one must view the build log without linewrap to make any sense of the diff. What made me suspicious is that one of the compared files is obviously invalid JavaScript. This is from Tumbleweed code-1.80.1-1.3.aarch64 build:

- (…snip…) t.AbstractMessageReader=c,function(e){e.fromOptions=function(e){let t,n;const r=new Map;let o;const s=new Map; (…)
+ (…snip…) t.AbstractMessageReader=c,function(e){e.fromOptionw Map,this._pendingRequestHandlers=new Map,this._requestDisposables=new Map,this._progressHandlers=n

Notice the “Optionw” in the second line, as if a wrong memory page got loaded. The string is NOT present in the downloaded RPM, which features the content as in the first line.

I've observed this problem on both x86_64 and aarch64 machines.
Comment 1 Olaf Hering 2023-07-27 07:36:55 UTC
Did you, or anyone familiar with JavaScript, analyze the resulting file?
Perhaps the functions are simply reordered. In 15.4/15.5 the variables have different random names AFAICS.

Try to apply a pretty-printer before packaging the file.

I do not think build-compare does any write operation with the files.
Comment 2 Bruno Pitrus 2023-07-27 11:23:03 UTC
I built this twice on my computer and can confirm that there are other non-determinisms. (This is a regression for VSC 1.80). Closing this issue, sorry for bothering.