Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

client side redirection to a different IP/port hangs #2441

Closed
soliton- opened this issue Feb 5, 2018 · 4 comments
Closed

client side redirection to a different IP/port hangs #2441

soliton- opened this issue Feb 5, 2018 · 4 comments
Labels
Blocker: New Stable Issues that must be resolved prior to the next stable series being released. Bug Issues involving unexpected behavior. MP Issues with multiplayer support or bundled multiplayer content. Network Issues in the networking API.

Comments

@soliton-
Copy link
Member

soliton- commented Feb 5, 2018

When wesnothd redirects clients to a different IP/port wesnoth gets stuck.

The server logs the redirection and also still successfully redirects older clients. Must be something introduced since 1.13.10.

@soliton- soliton- added Bug Issues involving unexpected behavior. Blocker: New Stable Issues that must be resolved prior to the next stable series being released. MP Issues with multiplayer support or bundled multiplayer content. Network Issues in the networking API. labels Feb 5, 2018
@stevecotton
Copy link
Contributor

Is the server redirecting to a different place based on the version number?

On Sunday evening I saw this, but reverting b6a5341 ("Pre-release version bump") made it connect to the dev server again. I assumed it was simply being redirected to a server instance that hadn't been compiled yet.

@jyrkive
Copy link
Member

jyrkive commented Feb 5, 2018

Call stack when it's stuck:

 	ntdll.dll!_NtDelayExecution@8�()	Unknown
 	KernelBase.dll!SleepEx()	Unknown
 	KernelBase.dll!_Sleep@4�()	Unknown
 	SDL2.dll!6c817502()	Unknown
 	[Frames below may be incorrect and/or missing, no symbols loaded for SDL2.dll]	
>	wesnoth.exe!wesnothd_connection::wait_and_receive_data({...}) Line 397	C++
 	wesnoth.exe!`anonymous namespace'::open_connection({...}) Line 109	C++
 	wesnoth.exe!mp::start_client::__l6::<lambda>() Line 597	C++
 	wesnoth.exe!std::_Callable_obj<void <lambda>(void),0>::_ApplyX<void>() Line 284	C++
 	wesnoth.exe!std::_Func_impl<std::_Callable_obj<void <lambda>(void),0>,std::allocator<std::_Func_class<void> >,void>::_Do_call() Line 229	C++
 	wesnoth.exe!std::_Func_class<void>::operator()() Line 316	C++
 	wesnoth.exe!gui2::dialogs::loading_screen::pre_show::__l8::<lambda>() Line 116	C++
 	wesnoth.exe!boost::detail::thread_data<void <lambda>(void) >::run() Line 117	C++
 	wesnoth.exe!boost::`anonymous namespace'::thread_start_function(0x08c0c208) Line 298	C++
 	msvcr120d.dll!_callthreadstartex() Line 376	C
 	msvcr120d.dll!_threadstartex(0x0dc89f48) Line 359	C
 	kernel32.dll!@BaseThreadInitThunk@12�()	Unknown
 	ntdll.dll!__RtlUserThreadStart()	Unknown
 	ntdll.dll!__RtlUserThreadStart@8�()	Unknown

Wesnoth appears to be thinking that the server hasn't sent any data.

@soliton-
Copy link
Member Author

soliton- commented Feb 5, 2018

A bit more detail on the wesnoth.org setup:
With the +dev version clients go on the “trunk“ server, which is the one running on port 15000.
Dev version releases go to the dev server currently on port 14997, so they get redirected there.

Currently you can connect directly to port 14997 fine, as well as older clients get properly redirected to their respective wesnothd version on a different port.

So the issue must be in the client side code and was probably introduced somewhere since 1.13.10.

@soliton-
Copy link
Member Author

soliton- commented Feb 5, 2018

50c9b52 this should be the offending commit.
With that the handshake is not done again after redirection, we're only waiting for data.

@Vultraz Vultraz closed this as completed in 70aec1d Feb 5, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Blocker: New Stable Issues that must be resolved prior to the next stable series being released. Bug Issues involving unexpected behavior. MP Issues with multiplayer support or bundled multiplayer content. Network Issues in the networking API.
Projects
None yet
Development

No branches or pull requests

3 participants