現象:
X11転送(local-to-remote)の開始で、間欠でエラーとなり、転送が開始できない。
エラーのメッセージは下記の通り。
"No address was found for the machine"
error code = 11003(WSANO_RECOVERY)
何度か開始をトライしていると、成功し、その後は失敗することがなくなる。
原因:
WSAAsyncGetAddrInfo()からスレッドに渡すポインタ(hints)が、ローカル変数の
アドレスになっているため、スレッド側で参照時にデータが壊れていることがある。
create_local_channel
WSAAsyncGetAddrInfo
getaddrinfo_thread
getaddrinfo
getaddrinfo()で、hints構造体がゼロクリアされていないと、WSANO_RECOVERYエラーを返すとある。
https://msdn.microsoft.com/en-us/library/windows/desktop/ms738520(v=vs.85).aspx
The ai_addrlen, ai_canonname, ai_addr, and ai_next members of the addrinfo structure pointed to by the pHints parameter must be zero or NULL. Otherwise the GetAddrInfoEx function will fail with WSANO_RECOVERY.
詳細