Creating/Saving zipfile via Adobe Air application PDT PLAME

Questions about Wine on Linux
Locked
asp
Level 2
Level 2
Posts: 13
Joined: Sat Jun 13, 2015 9:51 am

Creating/Saving zipfile via Adobe Air application PDT PLAME

Post by asp »

I am running an Adobe Air application (PDT PLAME) used to submit payroll data to the Peruvian Government. The application installed without issue, runs, downloads data from it's online server and allows me to create declarations.

Where it fails is in creating zip files to submit online and in creating backup copies -also in zip format- of the generated data. The application gives an internal error (#3219). I contacted technical support for the application and was told to delete and re-generate the declaration report. That did not help.


My question is: Do Adobe Air apps need some special configuration to create local zip files?
User avatar
Bob Wya
Level 12
Level 12
Posts: 3068
Joined: Sat Oct 16, 2010 7:40 pm

Re: Creating/Saving zipfile via Adobe Air application PDT PL

Post by Bob Wya »

asp wrote:I am running an Adobe Air application (PDT PLAME) used to submit payroll data to the Peruvian Government. The application installed without issue, runs, downloads data from it's online server and allows me to create declarations.

Where it fails is in creating zip files to submit online and in creating backup copies -also in zip format- of the generated data. The application gives an internal error (#3219). I contacted technical support for the application and was told to delete and re-generate the declaration report. That did not help.


My question is: Do Adobe Air apps need some special configuration to create local zip files?
Can you post full console output from launching the application from the command line - including the launch command (path where you are launching it from)?
See 10.1.1 How can I get a debugging log (a.k.a. terminal output)?
We can see what's what with that... 8)
Just post the log inline (in a forum post) with:

Code: Select all

code tags - like this

What version of Wine are you using? Double check with:

Code: Select all

wine --version
That'll show what version is in your user's PATH.

Ta
Bob
asp
Level 2
Level 2
Posts: 13
Joined: Sat Jun 13, 2015 9:51 am

Re: Creating/Saving zipfile via Adobe Air application PDT PL

Post by asp »

I am running Ubuntu 16.04, with the default wine version packed for that distribution.

Code: Select all

~$ wine --version
wine-1.6.2

Code: Select all

~$ env WINEPREFIX="/home/asp/.wine" wine C:\\Program\ Files\ \(x86\)\\PLAME\\PDT_PLAME\\PDT_PLAME.exe 
fixme:ole:RemUnknown_QueryInterface No interface for iid {00000019-0000-0000-c000-000000000046}
fixme:lsa:LsaGetLogonSessionData 0x33eb98 0x33eba8 stub
fixme:winediag:AUDDRV_GetAudioEndpoint Winepulse is not officially supported by the wine project
fixme:winediag:AUDDRV_GetAudioEndpoint For sound related feedback and support, please visit http://ubuntuforums.org/showthread.php?t=1960599
fixme:winsock:WSAIoctl -> SIO_ADDRESS_LIST_CHANGE request: stub
fixme:winsock:WSAIoctl -> SIO_ADDRESS_LIST_CHANGE request: stub
fixme:imm:ImmReleaseContext (0x10072, 0x1aa210): stub
fixme:ntdll:NtLockFile I/O completion on lock not implemented yet
fixme:shell:BrsFolder_OnCreate flags BIF_NEWDIALOGSTYLE partially implemented
fixme:shell:BrsFolder_OnCreate flags BIF_NEWDIALOGSTYLE partially implemented
Thanks!
User avatar
Bob Wya
Level 12
Level 12
Posts: 3068
Joined: Sat Oct 16, 2010 7:40 pm

Re: Creating/Saving zipfile via Adobe Air application PDT PL

Post by Bob Wya »

asp wrote:I am running Ubuntu 16.04, with the default wine version packed for that distribution.

Code: Select all

~$ wine --version
wine-1.6.2
And I'm tearing my hair out already!! 8) Why does Debian insist on shipping obsolete versions of Wine??!! What a total headache...

I'd recommend updating to a branch of Wine that isn't 2 years old... See the WineHQ Official Ubuntu PPA: Wiki instructions ...
Then we can see what errors your application (Adobe Air / PDT PLAME) is now spitting out!

Bob
asp
Level 2
Level 2
Posts: 13
Joined: Sat Jun 13, 2015 9:51 am

Re: Creating/Saving zipfile via Adobe Air application PDT PL

Post by asp »

Bob Wya wrote:
I'd recommend updating to a branch of Wine that isn't 2 years old.

Bob
So the output from 1.6 is incomplete? It does not indicate if there is a missing library or something?
asp
Level 2
Level 2
Posts: 13
Joined: Sat Jun 13, 2015 9:51 am

Re: Creating/Saving zipfile via Adobe Air application PDT PL

Post by asp »

Anyway, moving to the ppa version of wine ...

Code: Select all

:~$ wine --version
wine-1.9.19
The application gets a bit further, it does not give an error message, but hangs while "Counting lines in the file 0/17"

Code: Select all

~$ env WINEPREFIX="/home/asp/.wine" wine C:\\Program\ Files\ \(x86\)\\PLAME\\PDT_PLAME\\PDT_PLAME.exe 
fixme:sync:SetWaitableTimerEx (0xec, 0x1f4e91c, 0, (nil), (nil), (nil), 500) semi-stub
fixme:nls:GetUserPreferredUILanguages stub: 8 0x32eb6c (nil) 0x32eb70
fixme:lsa:LsaGetLogonSessionData 0x32eb98 0x32eba8 stub
err:winsock:WSAIoctl -> SIO_ADDRESS_LIST_CHANGE request failed with status 0x2733
err:winsock:WSAIoctl -> SIO_ADDRESS_LIST_CHANGE request failed with status 0x2733
fixme:imm:ImmReleaseContext (0x1005a, 0x203530): stub
fixme:ntdll:NtLockFile I/O completion on lock not implemented yet
fixme:shell:BrsFolder_OnCreate flags BIF_NEWDIALOGSTYLE partially implemented
fixme:ntdll:NtSetInformationToken unimplemented class 4
fixme:ntdll:NtQueryInformationProcess (process=0xffffffff) Unimplemented information class: ProcessSessionInformation
fixme:ntdll:NtQueryVolumeInformationFile 0xd8: volume info not supported
fixme:ntdll:NtQueryVolumeInformationFile 0xd8: faking attribute info
fixme:ntdll:NtQueryVolumeInformationFile 0xd8: faking attribute info
fixme:ntdll:NtQueryInformationFile Unsupported class (8)
fixme:ntdll:NtQueryInformationFile Unsupported class (8)
fixme:ntdll:NtQueryInformationFile Unsupported class (8)
fixme:ntdll:NtQueryVolumeInformationFile 0x128: faking attribute info
fixme:ntdll:NtQueryVolumeInformationFile 0x150: faking attribute info
fixme:ntdll:NtQueryVolumeInformationFile 0x150: faking attribute info
fixme:ntdll:NtQueryVolumeInformationFile 0x150: faking attribute info
fixme:ntdll:NtQueryVolumeInformationFile 0x154: faking attribute info
fixme:ntdll:NtQueryVolumeInformationFile 0x154: faking attribute info
asp
Level 2
Level 2
Posts: 13
Joined: Sat Jun 13, 2015 9:51 am

Re: Creating/Saving zipfile via Adobe Air application PDT PL

Post by asp »

I should mention that the dialog to select the save location does not work when wine is configured as Windows 7. The Windows XP dialog does work. This is true with both wine 1.6 and wine 1.9.
asp
Level 2
Level 2
Posts: 13
Joined: Sat Jun 13, 2015 9:51 am

Re: Creating/Saving zipfile via Adobe Air application PDT PL

Post by asp »

Also, under wine 1.9, the generation and saving of backup zip does now work.

Under wine 1.9, the app hangs while generating the file to submit.
Screen capture generating download file.
Screen capture generating download file.
Contando.jpg (6.99 KiB) Viewed 7681 times
User avatar
Bob Wya
Level 12
Level 12
Posts: 3068
Joined: Sat Oct 16, 2010 7:40 pm

Re: Creating/Saving zipfile via Adobe Air application PDT PL

Post by Bob Wya »

asp wrote:

Code: Select all

~$ env WINEPREFIX="/home/asp/.wine" wine C:\\Program\ Files\ \(x86\)\\PLAME\\PDT_PLAME\\PDT_PLAME.exe
...
asp wrote:
I'd recommend testing a 32-bit Wineprefix. See WineHQ FAQ: 6.5.3 How do I create a 32 bit wineprefix on a 64 bit system?
Using a 64-bit Wineprefix can introduce subtle compatibility bugs - as does setting your Wine Windows version to Windows Vista (+).

Ideally I tend to set the PWD (present working directory) to the path of the program directory, as in:

Code: Select all

cd "/home/asp/.wine/drive_c/Program Files/PLAME/PDT_PLAME"
wine PDT_PLAME.exe
(32-bit Wineprefix)

Windows includes the present working directory in it's PATH for executables and dlls... Unlike Unix/ Linux which does not (by default).

Bob
asp
Level 2
Level 2
Posts: 13
Joined: Sat Jun 13, 2015 9:51 am

Re: Creating/Saving zipfile via Adobe Air application PDT PL

Post by asp »

No change using a newly created 32-bit wineprefix. Windows version is set to XP. Application hangs at exactly the same place.
User avatar
Bob Wya
Level 12
Level 12
Posts: 3068
Joined: Sat Oct 16, 2010 7:40 pm

Re: Creating/Saving zipfile via Adobe Air application PDT PL

Post by Bob Wya »

asp wrote:No change using a newly created 32-bit wineprefix. Windows version is set to XP. Application hangs at exactly the same place.
Righteo then... So it's basically over to the good ol' bug tracker now.

I think the output from:

Code: Select all

export WINEDEBUG=+trace,+timestamp
cd "/home/asp/.wine/drive_c/Program Files/PLAME/PDT_PLAME"
wine PDT_PLAME.exe &>"/home/asp/console_log.txt"
Would be a starting point.
You'll end up with a huge file (console_log.txt) in your home directory.
+relay : logs every call that crosses the DLL boundary of Wine's built-in modules, including calls between (non-native) DLLs.

That would be the starting point to submit a new bug on the WineHQ: Bugzilla.
Give the bug a sensible title (like this forum thread) plus a detailed a log and some Wine Developers typically step in to determine how intractable your issue is!

If you get a bit stuck (submitting the WineHQ bug) then you can always post the console output on a Pastebin type site e.g. hastebin.com or bpaste ... I can move it into a bug report for you.

To quickly copy the console log file (well any file) into your Desktop Environment clipboard buffer (so you can CTRL+V paste it into your web browser) you can do something like:

Code: Select all

cat "/home/asp/console_log.txt" | xclip -i -selection clipboard
That xclip command is aliased (to xcopy) in my bashrc file - dead handy!!

Bob
asp
Level 2
Level 2
Posts: 13
Joined: Sat Jun 13, 2015 9:51 am

Re: Creating/Saving zipfile via Adobe Air application PDT PL

Post by asp »

No go. When I try to redirect the output to a file, the app hangs when logging in.

Also, WINEDEBUG=+trace,+timestamp does not show any extra information.
asp
Level 2
Level 2
Posts: 13
Joined: Sat Jun 13, 2015 9:51 am

Re: Creating/Saving zipfile via Adobe Air application PDT PL

Post by asp »

Okay, with following, I get info saved to a local file. But it does not dump a lot of detail, just the same:

Code: Select all

export WINEDEBUG=+trace,+timestamp
wine PDT_PLAME.exe 2> /home/asp/plameerror.txt

Code: Select all

347689.035:fixme:sync:SetWaitableTimerEx (0xec, 0x1e5e91c, 0, (nil), (nil), (nil), 500) semi-stub
347689.095:fixme:nls:GetUserPreferredUILanguages stub: 8 0x32eb6c (nil) 0x32eb70
347689.181:fixme:lsa:LsaGetLogonSessionData 0x32eb98 0x32eba8 stub
347689.842:err:winsock:WSAIoctl -> SIO_ADDRESS_LIST_CHANGE request failed with status 0x2733
347689.843:err:winsock:WSAIoctl -> SIO_ADDRESS_LIST_CHANGE request failed with status 0x2733
347693.626:fixme:imm:ImmReleaseContext (0x10054, 0x199560): stub
347719.136:fixme:ntdll:NtLockFile I/O completion on lock not implemented yet
347719.238:fixme:wininet:InternetSetOptionW INTERNET_OPTION_SEND/RECEIVE_TIMEOUT/DATA_SEND_TIMEOUT 3600000
347719.436:fixme:secur32:schannel_get_mac_algid unknown algorithm 200
347719.801:fixme:secur32:schannel_get_mac_algid unknown algorithm 200
347719.853:fixme:wininet:set_cookie secure not handled
347719.875:fixme:wininet:InternetSetOptionW INTERNET_OPTION_SEND/RECEIVE_TIMEOUT/DATA_SEND_TIMEOUT 3600000
347720.064:fixme:wininet:InternetSetOptionW INTERNET_OPTION_SEND/RECEIVE_TIMEOUT/DATA_SEND_TIMEOUT 3600000
347720.796:fixme:wininet:InternetSetOptionW INTERNET_OPTION_SEND/RECEIVE_TIMEOUT/DATA_SEND_TIMEOUT 3600000
347729.897:fixme:shell:BrsFolder_OnCreate flags BIF_NEWDIALOGSTYLE partially implemented
347737.868:fixme:ntdll:NtSetInformationToken unimplemented class 4
347737.869:fixme:ntdll:NtQueryInformationProcess (process=0xffffffff) Unimplemented information class: ProcessSessionInformation
347737.871:fixme:ntdll:NtQueryVolumeInformationFile 0xd4: volume info not supported
347737.871:fixme:ntdll:NtQueryVolumeInformationFile 0xd4: faking attribute info
347737.872:fixme:ntdll:NtQueryVolumeInformationFile 0xd4: faking attribute info
347737.872:fixme:ntdll:NtQueryInformationFile Unsupported class (8)
347737.872:fixme:ntdll:NtQueryInformationFile Unsupported class (8)
347737.872:fixme:ntdll:NtQueryInformationFile Unsupported class (8)
347737.959:fixme:ntdll:NtQueryVolumeInformationFile 0x124: faking attribute info
347737.960:fixme:ntdll:NtQueryVolumeInformationFile 0x14c: faking attribute info
347737.961:fixme:ntdll:NtQueryVolumeInformationFile 0x14c: faking attribute info
347737.961:fixme:ntdll:NtQueryVolumeInformationFile 0x14c: faking attribute info
347737.962:fixme:ntdll:NtQueryVolumeInformationFile 0x150: faking attribute info
347737.963:fixme:ntdll:NtQueryVolumeInformationFile 0x150: faking attribute info
User avatar
Bob Wya
Level 12
Level 12
Posts: 3068
Joined: Sat Oct 16, 2010 7:40 pm

Re: Creating/Saving zipfile via Adobe Air application PDT PL

Post by Bob Wya »

asp wrote:Okay, with following, I get info saved to a local file. But it does not dump a lot of detail, just the same:

Code: Select all

export WINEDEBUG=+trace,+timestamp
wine PDT_PLAME.exe 2> /home/asp/plameerror.txt
Ah yes... Just (cough) testing!! Missing the vital trace channel there (oops)... Note to self: don't do anything too complex after 24 hour work shifts... 8)

Righteo then... I ran a test, with the Steam client, and it helps to exclude all Heap (de-)allocations - quite significantly! You shouldn't need to include these - because your application is not segfaulting - it's just hanging...

So:

Code: Select all

wine reg ADD 'HKEY_CURRENT_USER\Software\Wine\Debug' '/v' 'RelayExclude' '/t' REG_SZ '/d' 'ntdll.RtlEnterCriticalSection;ntdll.RtlLeaveCriticalSection;kernel32.48;kernel32.49;kernel32.94;kernel32.95;kernel32.96;kernel32.97;kernel32.98;kernel32.TlsGetValue;kernel32.TlsSetValue;kernel32.FlsGetValue;kernel32.FlsSetValue;kernel32.SetLastError;ntdll.RtlAllocateHeap;ntdll.RtlFreeHeap' '/f' 2>/dev/null
Which will exclude all kernel Heap allocations and free calls - from the relay output.

Then:

Code: Select all

export WINEDEBUG=trace+relay,+timestamp
cd "/home/asp/.wine/drive_c/Program Files/PLAME/PDT_PLAME"
wine PDT_PLAME.exe &>"/home/asp/console_log.txt"
Note: I'd use the &> stream redirect - so all your console output goes in the log file.

Hopefully the resulting log file will be manageable in size!! Certainly ignoring heap calls, for the Steam client, appears to trim the resulting log file down by an order of magnitude.

Bob
asp
Level 2
Level 2
Posts: 13
Joined: Sat Jun 13, 2015 9:51 am

Re: Creating/Saving zipfile via Adobe Air application PDT PL

Post by asp »

Alright, that results in a 1.4 GB log file to parse...
asp
Level 2
Level 2
Posts: 13
Joined: Sat Jun 13, 2015 9:51 am

Re: Creating/Saving zipfile via Adobe Air application PDT PL

Post by asp »

As the app appears to hang on "Contando lineas del archivo 0/17" I grepped for that:

Code: Select all

~$ cat plamedebug24.txt | grep Contando
398082.969:0009:Call gdi32.GetTextExtentPoint32A(000b0041,05ec36b8 "Contando lineas del archivo 0/17",00000020,0032e268) ret=10381fe7
398082.973:0009:Call gdi32.GetTextExtentPoint32A(000b0041,05e6bf60 "Contando lineas del archivo 0/17",00000020,0032e3e8) ret=10381fe7
398082.980:0009:Call gdi32.GetTextExtentPoint32A(000b0041,05f30b88 "Contando lineas del archivo 0/17",00000020,0032a484) ret=10381fe7
398082.980:0009:Call gdi32.ExtTextOutA(000b0041,00000003,0000001d,00000000,00000000,05f30b88 "Contando lineas del archivo 0/17",00000020,00000000) ret=1037f4ca
398094.530:0009:Call gdi32.GetTextExtentPoint32A(000b0041,001a1630 "Contando lineas del archivo 0/17",00000020,00329ffc) ret=10381fe7
398094.530:0009:Call gdi32.ExtTextOutA(000b0041,00000003,0000001d,00000000,00000000,001a1630 "Contando lineas del archivo 0/17",00000020,00000000) ret=1037f4ca
Any useful information there?
User avatar
Bob Wya
Level 12
Level 12
Posts: 3068
Joined: Sat Oct 16, 2010 7:40 pm

Re: Creating/Saving zipfile via Adobe Air application PDT PL

Post by Bob Wya »

asp wrote:As the app appears to hang on "Contando lineas del archivo 0/17" I grepped for that:

Code: Select all

~$ cat plamedebug24.txt | grep Contando
...
Any useful information there?
Not really :D

That's just the code to construct the message box. We know that's working! The failure occurs before this - but that's a still a big target!!

I was thinking about some of the earlier output like:

Code: Select all

347689.842:err:winsock:WSAIoctl -> SIO_ADDRESS_LIST_CHANGE request failed with status 0x2733
347689.843:err:winsock:WSAIoctl -> SIO_ADDRESS_LIST_CHANGE request failed with status 0x2733
...
347719.853:fixme:wininet:set_cookie secure not handled
...
347719.875:fixme:wininet:InternetSetOptionW INTERNET_OPTION_SEND/RECEIVE_TIMEOUT/DATA_SEND_TIMEOUT 3600000
which looks a bit dubious.

OK so firstly run:

Code: Select all

export LOG_FILE="plamedebug24.txt"
# Find top 20 relay calls from last run:
export EXCLUDE=$(grep ':Ret ' "${LOG_FILE}" | sed 's/(.*//;s/.* //' | sort | uniq -c | sort -n | tail -n 20 | awk '{print $2}' | tr '\012' ';')
# Exclude top 20 relay calls from future console logs:
wine reg ADD 'HKEY_CURRENT_USER\Software\Wine\Debug' '/v' 'RelayExclude' '/t' REG_SZ '/d' "${EXCLUDE}" '/f' 2>/dev/null
Then (as before):

Code: Select all

export WINEDEBUG=trace+relay,+timestamp
cd "/home/asp/.wine/drive_c/Program Files/PLAME/PDT_PLAME"
wine PDT_PLAME.exe &>"/home/asp/console_log.txt"
is the file size more manageable now? 8)
Bob
asp
Level 2
Level 2
Posts: 13
Joined: Sat Jun 13, 2015 9:51 am

Re: Creating/Saving zipfile via Adobe Air application PDT PL

Post by asp »

Bob Wya wrote: is the file size more manageable now? 8)
Bob
Nope. It's bigger.
User avatar
Bob Wya
Level 12
Level 12
Posts: 3068
Joined: Sat Oct 16, 2010 7:40 pm

Re: Creating/Saving zipfile via Adobe Air application PDT PL

Post by Bob Wya »

asp wrote:
Bob Wya wrote: is the file size more manageable now? 8)
Bob
Nope. It's bigger.
Ah yes... I was trying to not break the forum software by posting very, very, very long lines. I therefore removed all the default relay excludes... But that's not going to work... :cry: :oops:

Try:

Code: Select all

export LOG_FILE="plamedebug24.txt"
# Find top 30 relay calls from last run:
export EXCLUDE=$(grep ':Ret ' "${LOG_FILE}" | sed 's/(.*//;s/.* //' | sort | uniq -c | sort -n | tail -n 30 | awk '{print $2}' | tr '\012' ';')
# Exclude top 20 relay calls from future console logs:
wine reg ADD 'HKEY_CURRENT_USER\Software\Wine\Debug' '/v' 'RelayExclude' '/t' REG_SZ '/d' "ntdll.RtlEnterCriticalSection;ntdll.RtlLeaveCriticalSection;kernel32.48;kernel32.49;kernel32.94;kernel32.95;kernel32.96;kernel32.97;kernel32.98;${EXCLUDE}" '/f' 2>/dev/null
printf "\n${EXCLUDE}\n"
So we are adding the top 30 relay messages (by frequency) to an exclude list and add this to the default relay exclude channels.

Notice I'm now dumping the EXCLUDE list variable to the console. Why? So we can check we aren't excluding any filesystem or network -related calls!!

Sorry 'bout that slight glitch.
Bob
Locked