Hallo, jtagserver.exe from the Altera Quartus suite hangs in a call to ConnectNamedPipe (as a result of a call to StartServiceCtrlDispatcherA()) Anybody an idea what is going wrong? Appended a +relay,+snoop,+ntdll,+file,+server,+advapi log from the point where the main process is started. -- Uwe Bonnes bon(a)elektron.ikp.physik.tu-darmstadt.de Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt --------- Tel. 06151 162516 -------- Fax. 06151 164321 ---------- 0009:Starting process L"C:\\altera\\quartus51\\bin\\jtagserver.exe" (entryproc=0x41a49a) 0009:Call msvcrt.__set_app_type(00000001) ret=0041a4cc 0009:Ret msvcrt.__set_app_type() retval=7fa6f018 ret=0041a4cc 0009:Call msvcrt.__p__fmode() ret=0041a4e1 0009:Ret msvcrt.__p__fmode() retval=7fa6efe8 ret=0041a4e1 0009:Call msvcrt.__p__commode() ret=0041a4ef 0009:Ret msvcrt.__p__commode() retval=7fa6eff0 ret=0041a4ef 0009:Call msvcrt._controlfp(00010000,00030000) ret=0041a5dd 0009:Ret msvcrt._controlfp() retval=0009001f ret=0041a5dd 0009:Call msvcrt._initterm(00420020,00420024) ret=0041a531 0009:Ret msvcrt._initterm() retval=00000000 ret=0041a531 0009:Call msvcrt.__getmainargs(7fb9feec,7fb9fedc,7fb9fee8,00000000,7fb9fee0) ret=0041a555 0009:Ret msvcrt.__getmainargs() retval=00000000 ret=0041a555 0009:Call msvcrt._initterm(00420000,0042001c) ret=0041a564 0009:Call msvcrt._onexit(00402740) ret=0041a202 0009:Call kernel32.InitializeCriticalSection(7fa6e9d0) ret=7fa3b76e 0009:Call ntdll.RtlInitializeCriticalSection(7fa6e9d0) ret=7fc6007c 0009:Ret ntdll.RtlInitializeCriticalSection() retval=00000000 ret=7fc6007c 0009:Ret kernel32.InitializeCriticalSection() retval=00000000 ret=7fa3b76e 0009:Call ntdll.RtlAllocateHeap(7fce0000,00000008,00000080) ret=7fa3a5fe 0009:Ret ntdll.RtlAllocateHeap() retval=7fcfe888 ret=7fa3a5fe 0009:Ret msvcrt._onexit() retval=00402740 ret=0041a202 0009:Call msvcrt._onexit(0040875c) ret=0041a202 0009:Ret msvcrt._onexit() retval=0040875c ret=0041a202 0009:Call msvcrt._onexit(00409850) ret=0041a202 0009:Ret msvcrt._onexit() retval=00409850 ret=0041a202 0009:Call msvcrt._onexit(0040988b) ret=0041a202 0009:Ret msvcrt._onexit() retval=0040988b ret=0041a202 0009:Call msvcrt._onexit(004166b3) ret=0041a202 0009:Ret msvcrt._onexit() retval=004166b3 ret=0041a202 0009:Ret msvcrt._initterm() retval=00000000 ret=0041a564 0009:Call msvcrt.__p___initenv() ret=0041a56a 0009:Ret msvcrt.__p___initenv() retval=7fa5a614 ret=0041a56a 0009:Call kernel32.GetVersionExA(7fb9fdec) ret=00414a0b 0009:Call ntdll.RtlGetVersion(7fb9fc24) ret=7fc6cf3d 0009:Ret ntdll.RtlGetVersion() retval=00000000 ret=7fc6cf3d 0009:Ret kernel32.GetVersionExA() retval=00000001 ret=00414a0b 0009:Call advapi32.StartServiceCtrlDispatcherA(00420078) ret=00413a3e trace:advapi:StartServiceCtrlDispatcherA 0x420078 0009:Call kernel32.MultiByteToWideChar(00000000,00000000,00420088 "Altera JTAG Server",ffffffff,00000000,00000000) ret=7f99ad13 0009:Ret kernel32.MultiByteToWideChar() retval=00000013 ret=7f99ad13 0009:Call ntdll.RtlAllocateHeap(7fce0000,00000008,0000005e) ret=7f99ad2f 0009:Ret ntdll.RtlAllocateHeap() retval=7fcfe910 ret=7f99ad2f 0009:Call kernel32.MultiByteToWideChar(00000000,00000000,00420088 "Altera JTAG Server",ffffffff,7fcfe944,00000013) ret=7f99ad48 0009:Ret kernel32.MultiByteToWideChar() retval=00000013 ret=7f99ad48 trace:advapi:service_run_threads starting 1 pipe listener threads 0009:Call ntdll.RtlAllocateHeap(7fce0000,00000000,00000004) ret=7f99ab83 0009:Ret ntdll.RtlAllocateHeap() retval=7fcfe630 ret=7f99ab83 0009:Call kernel32.CreateThread(00000000,00000000,7f99c9a0,7fcfe910,00000000,00000000) ret=7f99abb8 0009:Call ntdll.RtlAllocateHeap(7fce0000,00000000,00000008) ret=7fc6740b 0009:Ret ntdll.RtlAllocateHeap() retval=7fcfe3a8 ret=7fc6740b 0009:Call ntdll.RtlCreateUserThread(ffffffff,00000000,00000001,00000000,00000000,00000000,7fc672e0,7fcfe3a8,7fb9fc78,7fb9fc6c) ret=7fc67451 0009: *fd* 9 <- 30 0009: new_thread( access=001f03ff, attributes=00000000, suspend=1, request_fd=9 ) 0009: new_thread() = 0 { tid=000a, handle=0x44 } 0009:Ret ntdll.RtlCreateUserThread() retval=00000000 ret=7fc67451 0009:Call ntdll.NtResumeThread(00000044,7fb9fc74) ret=7fc674b5 0009: resume_thread( handle=0x44 ) 0009: resume_thread() = 0 { count=1 } 0009:Ret ntdll.NtResumeThread() retval=00000000 ret=7fc674b5 0009:Ret kernel32.CreateThread() retval=00000044 ret=7f99abb8 0009:Call kernel32.WaitForMultipleObjectsEx(00000001,7fcfe630,00000001,ffffffff,00000000) ret=7f99ac24 0009:Call ntdll.NtWaitForMultipleObjects(00000001,7fb9fba0,00000001,00000000,00000000) ret=7fc604d9 0009: select( flags=5, cookie=0x7fb9fa54, signal=(nil), timeout=0, handles={0x44} ) 0009: select() = PENDING 000a: *fd* 11 <- 31 000a: *fd* 13 <- 32 000a: init_thread( unix_pid=3608, unix_tid=3615, teb=0xb7f60000, peb=0x7ffdf6e0, entry=0x7fc672e0, ldt_copy=0xb7f71860, reply_fd=11, wait_fd=13, debug_level=1 ) 000a: init_thread() = 0 { pid=0008, tid=000a, info_size=0, server_start=1137885144, version=221 } 000a:Call ntdll.RtlFreeHeap(7fce0000,00000000,7fcfe3a8) ret=7fc6731d 000a:Ret ntdll.RtlFreeHeap() retval=00000001 ret=7fc6731d 000a:Starting thread (entryproc=0x7f99c9a0) 000a:Call ntdll.MODULE_DllThreadAttach(00000000) ret=7fc673c8 000a:Call PE DLL (proc=0x7fc73570,module=0x7fc00000 L"kernel32.dll",reason=THREAD_ATTACH,res=(nil)) 000a:Call ntdll.RtlAllocateHeap(7fce0000,00000000,00010000) ret=7fc2d683 000a:Ret ntdll.RtlAllocateHeap() retval=7fd01dd8 ret=7fc2d683 000a:Ret PE DLL (proc=0x7fc73570,module=0x7fc00000 L"kernel32.dll",reason=THREAD_ATTACH,res=(nil)) retval=1 000a:Call PE DLL (proc=0x7fa4d280,module=0x7fa20000 L"msvcrt.dll",reason=THREAD_ATTACH,res=(nil)) 000a:Ret PE DLL (proc=0x7fa4d280,module=0x7fa20000 L"msvcrt.dll",reason=THREAD_ATTACH,res=(nil)) retval=1 000a:Call PE DLL (proc=0x7f9e93c0,module=0x7f9d0000 L"ws2_32.dll",reason=THREAD_ATTACH,res=(nil)) 000a:Ret PE DLL (proc=0x7f9e93c0,module=0x7f9d0000 L"ws2_32.dll",reason=THREAD_ATTACH,res=(nil)) retval=1 000a:Ret ntdll.MODULE_DllThreadAttach() retval=00000000 ret=7fc673c8 trace:advapi:service_control_dispatcher 0x7fcfe910 L"Altera JTAG Server" 000a:Call ntdll.RtlAllocateHeap(7fce0000,00000000,00000054) ret=7f99bf68 000a:Ret ntdll.RtlAllocateHeap() retval=7fcfe978 ret=7f99bf68 000a:Call kernel32.CreateNamedPipeW(7fcfe978 L"\\\\.\\pipe\\__wineservice_Altera JTAG Server",00000003,00000000,00000002,00000400,00000400,00000000,00000000) ret=7f99c9fc 000a:Call ntdll.RtlDosPathNameToNtPathName_U(7fcfe978 L"\\\\.\\pipe\\__wineservice_Altera JTAG Server",b7e159ec,00000000,00000000) ret=7fc6202c trace:file:RtlDosPathNameToNtPathName_U (L"\\\\.\\pipe\\__wineservice_Altera JTAG Server",0xb7e159ec,(nil),(nil)) trace:file:RtlGetFullPathName_U (L"\\\\.\\pipe\\__wineservice_Altera JTAG Server" 520 0xb7e156e4 (nil)) 000a:Ret ntdll.RtlDosPathNameToNtPathName_U() retval=00000001 ret=7fc6202c 000a:Call ntdll.NtCreateNamedPipeFile(b7e159f4,c0000000,b7e159c0,b7e159e4,00000000,00000005,00000012,00000000,00000000,00000000,00000002,00000400,00000400,b7e159d8) ret=7fc6214e trace:ntdll:NtCreateNamedPipeFile (0xb7e159f4 c0000000 L"\\??\\pipe\\__wineservice_Altera JTAG Server" 0xb7e159e4 0 5 12 0 0 0 2 1024 1024 0xb7e159d8) 000a: create_named_pipe( access=c0000000, attributes=00000040, rootdir=(nil), options=00000012, flags=00000000, maxinstances=00000002, outsize=00000400, insize=00000400, timeout=00000000, name=L"\\??\\pipe\\__wineservice_Altera JTAG Server" ) 000a: create_named_pipe() = 0 { handle=0x48 } 000a:Ret ntdll.NtCreateNamedPipeFile() retval=00000000 ret=7fc6214e 000a:Call ntdll.RtlFreeUnicodeString(b7e159ec) ret=7fc6215a 000a:Ret ntdll.RtlFreeUnicodeString() retval=00000000 ret=7fc6215a 000a:Ret kernel32.CreateNamedPipeW() retval=00000048 ret=7f99c9fc 000a:Call ntdll.RtlFreeHeap(7fce0000,00000000,7fcfe978) ret=7f99ca1e 000a:Ret ntdll.RtlFreeHeap() retval=00000001 ret=7f99ca1e 000a:Call ntdll.RtlAllocateHeap(7fce0000,00000000,00000042) ret=7f99c928 000a:Ret ntdll.RtlAllocateHeap() retval=7fcfe978 ret=7f99c928 000a:Call kernel32.CreateEventW(00000000,00000001,00000000,7fcfe978 L"__wineservice_Altera JTAG Server") ret=7f99c980 000a:Call ntdll.RtlInitUnicodeString(b7e159f0,7fcfe978 L"__wineservice_Altera JTAG Server") ret=7fc608c6 000a:Ret ntdll.RtlInitUnicodeString() retval=00000042 ret=7fc608c6 000a:Call ntdll.RtlInitUnicodeString(b7e159a0,7fc80f40 L"\\BaseNamedObjects") ret=7fc5fdb2 000a:Ret ntdll.RtlInitUnicodeString() retval=00000024 ret=7fc5fdb2 000a:Call ntdll.NtOpenDirectoryObject(b7e159a8,00000006,b7e15988) ret=7fc5fdea trace:ntdll:NtOpenDirectoryObject (0xb7e159a8,0x00000006) trace:ntdll:dump_ObjectAttributes 0xb7e15988:(name=L"\\BaseNamedObjects", attr=0x00000000, hRoot=(nil), sd=(nil)) 000a: open_directory( access=00000006, attributes=00000000, rootdir=(nil), directory_name=L"\\BaseNamedObjects" ) 000a: open_directory() = 0 { handle=0x4c } 000a:Ret ntdll.NtOpenDirectoryObject() retval=00000000 ret=7fc5fdea 000a:Call ntdll.NtCreateEvent(b7e159f8,001f0003,b7e159d8,00000001,00000000) ret=7fc608f4 000a: create_event( access=001f0003, attributes=000000c0, rootdir=0x4c, manual_reset=1, initial_state=0, name=L"__wineservice_Altera JTAG Server" ) 000a: create_event() = 0 { handle=0x50 } 000a:Ret ntdll.NtCreateEvent() retval=00000000 ret=7fc608f4 000a:Call ntdll.RtlNtStatusToDosError(00000000) ret=7fc60907 000a:Ret ntdll.RtlNtStatusToDosError() retval=00000000 ret=7fc60907 000a:Ret kernel32.CreateEventW() retval=00000050 ret=7f99c980 000a:Call ntdll.RtlFreeHeap(7fce0000,00000000,7fcfe978) ret=7f99c995 000a:Ret ntdll.RtlFreeHeap() retval=00000001 ret=7f99c995 000a:Call kernel32.SetEvent(00000050) ret=7f99ce47 000a:Call ntdll.NtSetEvent(00000050,00000000) ret=7fc60aee 000a: event_op( handle=0x50, op=1 ) 000a: event_op() = 0 000a:Ret ntdll.NtSetEvent() retval=00000000 ret=7fc60aee 000a:Ret kernel32.SetEvent() retval=00000001 ret=7f99ce47 000a:Call kernel32.CloseHandle(00000050) ret=7f99ce4d 000a:Call ntdll.NtClose(00000050) ret=7fc4d744 000a: close_handle( handle=0x50 ) 000a: close_handle() = 0 { fd=-1 } 000a:Ret ntdll.NtClose() retval=00000000 ret=7fc4d744 000a:Ret kernel32.CloseHandle() retval=00000001 ret=7f99ce4d 000a:Call kernel32.ConnectNamedPipe(00000048,00000000) ret=7f99ca60 000a:Call ntdll.NtFsControlFile(00000048,00000000,00000000,00000000,b7e15a14,00110008,00000000,00000000,00000000,00000000) ret=7fc6171e trace:ntdll:NtFsControlFile (0x48,(nil),(nil),(nil),0xb7e15a14,0x00110008,(nil),0x00000000,(nil),0x00000000) 000a: create_event( access=001f0003, attributes=00000000, rootdir=(nil), manual_reset=0, initial_state=0, name=L"" ) 000a: create_event() = 0 { handle=0x50 } 000a: connect_named_pipe( handle=0x48, event=0x50, func=0x7ff98ee0 ) 000a: connect_named_pipe() = 0 000a: select( flags=6, cookie=0xb7e157d4, signal=(nil), timeout=0, handles={0x50} ) 000a: select() = PENDING 0009: get_console_input_info( handle=(nil) ) 0009: get_console_input_info() = INVALID_PARAMETER { history_mode=0, history_size=0, history_index=0, edition_mode=0, title=L"" } 0009:Call ntdll.RtlNtStatusToDosError(c000000d) ret=7fc1f699 0009:Ret ntdll.RtlNtStatusToDosError() retval=00000057 ret=7fc1f699 0009:Call msvcrt._except_handler3(7fb9f88c,7fb9fef8,7fb9f5c0,7fb9f520) ret=7ffb8529 0009:Call msvcrt._XcptFilter(c000013a,7fb9f3c4) ret=0041a59b 0009:Ret msvcrt._XcptFilter() retval=00000000 ret=0041a59b 0009:Ret msvcrt._except_handler3() retval=00000001 ret=7ffb8529 0009:Call ntdll.NtTerminateProcess(ffffffff,00000001) ret=7fc4cb30 0009: terminate_process( handle=0xffffffff, exit_code=1 ) 000a: *killed* exit_code=1 0009: *wakeup* signaled=0 cookie=0x7fb9fa54 0009: terminate_process() = 0 { self=1 } 0009: *killed* exit_code=1 wineserver: exiting (pid=3614)
Saturday, January 21, 2006, 5:01:42 PM, Uwe Bonnes wrote:
Hallo,
jtagserver.exe from the Altera Quartus suite hangs in a call to ConnectNamedPipe (as a result of a call to StartServiceCtrlDispatcherA()) Anybody an idea what is going wrong? I don't think that's what happens:
Appended a +relay,+snoop,+ntdll,+file,+server,+advapi log from the point where the main process is started.
0009:Ret ntdll.NtResumeThread() retval=00000000 ret=7fc674b5 0009:Ret kernel32.CreateThread() retval=00000044 ret=7f99abb8 It creates new thread. And goes to wait on in.
0009:Call kernel32.WaitForMultipleObjectsEx(00000001,7fcfe630,00000001,ffffffff,00000000) ret=7f99ac24 0009:Call ntdll.NtWaitForMultipleObjects(00000001,7fb9fba0,00000001,00000000,00000000) ret=7fc604d9 0009: select( flags=5, cookie=0x7fb9fa54, signal=(nil), timeout=0, handles={0x44} ) 0009: select() = PENDING Here it's waiting on that thread (handles={0x44}).
000a:Call kernel32.ConnectNamedPipe(00000048,00000000) ret=7f99ca60 This is the call you are talking about.
[skip] New thread calls ConnectNamedPipe and goes to sleep:
000a:Call kernel32.ConnectNamedPipe(00000048,00000000) ret=7f99ca60 000a:Call ntdll.NtFsControlFile(00000048,00000000,00000000,00000000,b7e15a14,00110008,00000000,00000000,00000000,00000000) ret=7fc6171e trace:ntdll:NtFsControlFile (0x48,(nil),(nil),(nil),0xb7e15a14,0x00110008,(nil),0x00000000,(nil),0x00000000) 000a: create_event( access=001f0003, attributes=00000000, rootdir=(nil), manual_reset=0, initial_state=0, name=L"" ) 000a: create_event() = 0 { handle=0x50 } 000a: connect_named_pipe( handle=0x48, event=0x50, func=0x7ff98ee0 ) 000a: connect_named_pipe() = 0 000a: select( flags=6, cookie=0xb7e157d4, signal=(nil), timeout=0, handles={0x50} ) 000a: select() = PENDING And here it's waiting.
Now we have other thread waking up and continuing on with error?! Did you skipped something? Because I haven't seen why it ends up here.
0009: get_console_input_info( handle=(nil) ) 0009: get_console_input_info() = INVALID_PARAMETER { history_mode=0, history_size=0, history_index=0, edition_mode=0, title=L"" } 0009:Call ntdll.RtlNtStatusToDosError(c000000d) ret=7fc1f699 0009:Ret ntdll.RtlNtStatusToDosError() retval=00000057 ret=7fc1f699 And 87 is ERROR_INVALID_PARAMETER.
"Vitaliy" == Vitaliy Margolen <wine-devel(a)kievinfo.com> writes:
Vitaliy> Now we have other thread waking up and continuing on with Vitaliy> error?! Did you skipped something? Because I haven't seen why Vitaliy> it ends up here. >> 0009: get_console_input_info( handle=(nil) ) 0009: >> get_console_input_info() = INVALID_PARAMETER { history_mode=0, >> history_size=0, history_index=0, edition_mode=0, title=L"" } >> 0009:Call ntdll.RtlNtStatusToDosError(c000000d) ret=7fc1f699 0009:Ret >> ntdll.RtlNtStatusToDosError() retval=00000057 ret=7fc1f699 Vitaliy> And 87 is ERROR_INVALID_PARAMETER. The startup sequence of quartus is quite complicated, when trying to reproduce I probably missed some arguments. The behaviour of that test looked like the behaviour in the quartus startus, so I posted that (wrong) run. May I send you the log of a run with hopefully the right arguments? It still hangs in a call to ConnectNamedPipe. Bye -- Uwe Bonnes bon(a)elektron.ikp.physik.tu-darmstadt.de Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt --------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
Sunday, January 22, 2006, 5:28:18 PM, Uwe Bonnes wrote:
"Vitaliy" == Vitaliy Margolen <wine-devel(a)kievinfo.com> writes:
Vitaliy> Now we have other thread waking up and continuing on with Vitaliy> error?! Did you skipped something? Because I haven't seen why Vitaliy> it ends up here. >> 0009: get_console_input_info( handle=(nil) ) 0009: >> get_console_input_info() = INVALID_PARAMETER { history_mode=0, >> history_size=0, history_index=0, edition_mode=0, title=L"" } >> 0009:Call ntdll.RtlNtStatusToDosError(c000000d) ret=7fc1f699 0009:Ret >> ntdll.RtlNtStatusToDosError() retval=00000057 ret=7fc1f699 Vitaliy> And 87 is ERROR_INVALID_PARAMETER.
The startup sequence of quartus is quite complicated, when trying to reproduce I probably missed some arguments. The behaviour of that test looked like the behaviour in the quartus startus, so I posted that (wrong) run.
Ah ok, makes sense <g> I can't count myself how many times I spent hours looking at the wrong logs X-[ ]
May I send you the log of a run with hopefully the right arguments? It still hangs in a call to ConnectNamedPipe.
Sure I can take a look. Vitaliy
participants (2)
-
Uwe Bonnes -
Vitaliy Margolen