https://bugs.winehq.org/show_bug.cgi?id=55859
--- Comment #29 from Fabian Maurer dark.shadow4@web.de --- Created attachment 77406 --> https://bugs.winehq.org/attachment.cgi?id=77406 Log for ni-error-report issue
Now that bug 57290 is fixed, I got past "ni-systemlink-message-broker" using https://gitlab.winehq.org/DarkShadow44/wine/-/commit/afc3ef298e5a30013aebbc4...
Next issue is "ni-error-report":
044c:err:eventlog:ReportEventW L" NationalInstruments.PackageManagement.Core.NIPkgClientException: An error occurred while creating a process to run command '"C:\NIDummy\NI Error Reporting\nierserver.exe"'."
The program exists at "drive_c/Program Files/National Instruments/Shared/NI Error Reporting/nierserver.exe"
The correct data seems to be in the registry:
[Software\National Instruments\Common\Installer] 1731506542 "NISHAREDDIR64"="C:\Program Files\National Instruments\Shared\"
It seems to skip filling that variable, and leaves the path as C:\NIDummy.
The issue appears with both old bi-arch build and new wow64. It works when installing manually by unpacking the ni-error-report cab and installing the msi though
A +relay,+msi log shows some more info: (truncated to start at the first appearance of ni-error-report and having a bunch of function calls excluded)
467959: 06ec:Call msi.MsiRecordSetStringW(00000006,00000000,00480bf0 L"NIPaths II: Defining a 64-bit NIPathsDir "NIDIR64" on a 32-bit OS to a dummy value "TARGETDIR\NIDummy", just to satisfy the Directory table for costing.") ret=78035abe 468252: 06ec:Call msi.MsiRecordSetStringW(00000006,00000000,0047d3e0 L"NIPaths II: Processing NISHAREDDIR (Dir type): All NI Shared components") ret=78035abe 469222: 06ec:Call msi.MsiRecordSetStringW(0000000a,00000000,00481328 L"NIPaths II: Registry key HKLM\Software\National Instruments\Common\Installer\NISHAREDDIR has value "C:\Program Files (x86)\National Instruments\Shared\"") ret=78035abe 471983: 06ec:Call msi.MsiRecordSetStringW(00000006,00000000,0047d3e0 L"NIPaths II: Defining a 64-bit NIPathsDir "NISHAREDDIR64" on a 32-bit OS to a dummy value "TARGETDIR\NIDummy", just to satisfy the Directory table for costing.") ret=78035abe
It gets a row from "NIPathsDefinition":
06ec:Call msi.MsiRecordGetInteger(00000008,00000001) ret=78037563 06ec:Ret msi.MsiRecordGetInteger() retval=00000003 ret=78037563
Looking into the msi table, this 00000003 seems to be related to 64bit, all 64bit variables a saw hat this value. Checking this attribute seems to be the last thing the program does before giving up filling the variable.
It seems to think it is running in a 32bit OS, not sure why. I noticed it has some "remote" msi handling, maybe that is related?
An idea how to continue here?
Just a note: rabbitmq is really finicky, and it doesn't help that it takes so long to get to this point. If you still get that ni-systemlink-message-broker with my branch, just try again and maybe restart first to clean up open resources.