From: SourceForge.net <no...@so...> - 2008-06-18 08:14:41
|
Bugs item #1996078, was opened at 2008-06-17 15:10 Message generated for change (Comment added) made by cconrad You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=373085&aid=1996078&group_id=22049 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: General Group: None >Status: Closed Resolution: None Priority: 5 Private: No Submitted By: Christoph Conrad (cconrad) Assigned to: Amir Szekely (kichik) Summary: Vista: nsExec::ExecToStack fails when LogSet Off Initial Comment: v2.37 Windows Vista Professional Works: LogSet On nsExec::ExecToStack /OEM /TIMEOUT=20 GetFreeDiskSpace.exe Pop $0 Pop $output ${If} $0 != 0 # correct: does NOT get executed ${endif} Fails: LogSet Off nsExec::ExecToStack /OEM /TIMEOUT=20 GetFreeDiskSpace.exe Pop $0 Pop $output ${If} $0 != 0 # DOES GET EXECUTED ${endif} ---------------------------------------------------------------------- >Comment By: Christoph Conrad (cconrad) Date: 2008-06-18 10:14 Message: Logged In: YES user_id=21338 Originator: YES Ok, solved it. It is not a problem of NSIS. The problem was to use a timeout value of only 20, which are not seconds, but milliseconds. Interestingly this is enough time for execution when logging is on, but not enough when logging is off. I would expect it the other way. When timeout occurs the return value is the string "timeout", so the "error" is none. Please close this case. Sorry for any inconvenience. ---------------------------------------------------------------------- Comment By: Christoph Conrad (cconrad) Date: 2008-06-17 23:25 Message: Logged In: YES user_id=21338 Originator: YES "But it doesn't change the way the script behaves. It changes the way your executable behaves in a way I do not understand." Both alternatives are possible. I investigate more details within the next two days. ---------------------------------------------------------------------- Comment By: Amir Szekely (kichik) Date: 2008-06-17 23:15 Message: Logged In: YES user_id=584402 Originator: NO But it doesn't change the way the script behaves. It changes the way your executable behaves in a way I do not understand. Does it output any error? ---------------------------------------------------------------------- Comment By: Christoph Conrad (cconrad) Date: 2008-06-17 22:36 Message: Logged In: YES user_id=21338 Originator: YES "What I do not understand is why do you say this change is a bug." Not the change is a bug, it is a bug that this change (turning logging off) changes the flow of execution in the script. Simply said, only turning logging on or off should normally not change the way a script behaves. To emphasize it, this happens only when executing the installer on vista, not on windows xp. "What does this executable do?" It determines some hardware properties and outputs it. When that could be done successful, it returns 0, else 1. Cause the execution environment does not change, the hardware and operating system is exactly the same, it returns the same. If i invoke it on the command line, it always outputs the same result and return value, whether on windows xp or vista. ---------------------------------------------------------------------- Comment By: Amir Szekely (kichik) Date: 2008-06-17 22:24 Message: Logged In: YES user_id=584402 Originator: NO I can see that you've made a change in your script and that it made a change in the return of nsExec. What I do not understand is why do you say this change is a bug. Did it return "error"? Should it always return 0? What does this executable do? ---------------------------------------------------------------------- Comment By: Christoph Conrad (cconrad) Date: 2008-06-17 22:06 Message: Logged In: YES user_id=21338 Originator: YES [Q] But what about the return value not being 0 tells you it's an error in nsExec? [A] Didn't you read my last comment? IT WAS THE ONLY CHANGE TO SET LOGSET OFF. Same build environment, same called program, same execution environment. I can't understand what you do not understand here. It's just very basic logic. I will make further investigation tomorrow, see what exact return value and program output are pop'ped when setting LogSet Off. ---------------------------------------------------------------------- Comment By: Amir Szekely (kichik) Date: 2008-06-17 21:51 Message: Logged In: YES user_id=584402 Originator: NO But what about the return value not being 0 tells you it's an error in nsExec? It's your program that didn't return 0. I need more details on what's exactly the error is here. ---------------------------------------------------------------------- Comment By: Christoph Conrad (cconrad) Date: 2008-06-17 21:36 Message: Logged In: YES user_id=21338 Originator: YES [Q] Which build of NSIS did you use to get logging support? [A] NSIS 2.37 with logging support [Q] How does the fact it doesn't return 0 indicate nsExec fails? [A] Setting "LogSet Off" was the only change. Exactly the same build environment and execution environment. I think that is a strong indication for an error. And it doesn't indicate that nsExec failed. Maybe Pop'ing return value or program output is influenced by that change. ---------------------------------------------------------------------- Comment By: Amir Szekely (kichik) Date: 2008-06-17 19:54 Message: Logged In: YES user_id=584402 Originator: NO Which build of NSIS did you use to get logging support? How does the fact it doesn't return 0 indicate nsExec fails? ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=373085&aid=1996078&group_id=22049 |