Bugzilla – Bug 3412
Slimproto asserts no client
Last modified: 2008-09-15 14:39:24 UTC
With Softsqueeze open, SQB2 connected to network, not synchronized. With fishbone skin open in firefox from last time slimserver was run, and before the players started playing the last loaded playlist, pressed F5 to refresh the fishbone skin.. got the following. I marked this as trivial since nothing else seemed to happen, and server behaved as expected. 2006-05-12 12:22:24.2872 Backtrace: frame 0: Slim::Utils::Misc::assert (D:/Progs/SlimServer_v6.2.2/Slim/Networkin g/Slimproto.pm line 396) frame 1: Slim::Networking::Slimproto::process_slimproto_frame (D:/Progs/SlimS erver_v6.2.2/Slim/Networking/Slimproto.pm line 255) frame 2: Slim::Networking::Slimproto::client_readable (D:/Progs/SlimServer_v6 .2.2/Slim/Networking/Select.pm line 111) frame 3: Slim::Networking::Select::select (slimserver.pl line 629) frame 4: main::idle (slimserver.pl line 565) frame 5: main::main (slimserver.pl line 1196) Here's the problem. D:/Progs/SlimServer_v6.2.2/Slim/Networking/Slimproto.pm, lin e 396: 386 } 387 # make sure volume is set, without changing temp setting 388 $client->volume($client->volume(), 389 defined($client- >tempVolume())); 390 } 391 return; 392 } 393 394 my $client = $sock2client{$s}; 395 396 assert($client); 397 398 if (!defined($client)) { 399 msg("Client not found for slimproto\n"); 400 return; 401 } 402 403 if ($op eq 'IR ') { 404 # format for IR: 405 # [4] time since startup in ticks (1KHz) 406 # [1] code format 2006-05-12 12:22:24.2885 Client not found for slimproto 2006-05-12 12:22:24.2921 Backtrace: frame 0: Slim::Utils::Misc::assert (D:/Progs/SlimServer_v6.2.2/Slim/Networkin g/Slimproto.pm line 396) frame 1: Slim::Networking::Slimproto::process_slimproto_frame (D:/Progs/SlimS erver_v6.2.2/Slim/Networking/Slimproto.pm line 255) frame 2: Slim::Networking::Slimproto::client_readable (D:/Progs/SlimServer_v6 .2.2/Slim/Networking/Select.pm line 111) frame 3: Slim::Networking::Select::select (slimserver.pl line 629) frame 4: main::idle (slimserver.pl line 565) frame 5: main::main (slimserver.pl line 1196) Here's the problem. D:/Progs/SlimServer_v6.2.2/Slim/Networking/Slimproto.pm, lin e 396: 386 } 387 # make sure volume is set, without changing temp setting 388 $client->volume($client->volume(), 389 defined($client- >tempVolume())); 390 } 391 return; 392 } 393 394 my $client = $sock2client{$s}; 395 396 assert($client); 397 398 if (!defined($client)) { 399 msg("Client not found for slimproto\n"); 400 return; 401 } 402 403 if ($op eq 'IR ') { 404 # format for IR: 405 # [4] time since startup in ticks (1KHz) 406 # [1] code format 2006-05-12 12:22:24.2935 Client not found for slimproto
Have you given 6.3 nightly builds a try? I've seen this mentioned before and expected fixes have been moved into 6.3 builds. However, if you do have a new reproduceable case with 6.3, we'd love to know.
Just seen this in 6.3 so had a look at the code again... I can't see the point of the assert - it is going to occur if a rogue slimproto device attaches which sends a non HELO frame as the first frame for the connection. I think I've seen softsqueeze do this occasionally. I would suggest the assert is removed...
Is this a softsqueeze only bug?
*** Bug 3659 has been marked as a duplicate of this bug. ***
Softsqueeze 2.8 includes a fix to prevent any slimproto commands to be send before the HELO. This could have been a problem on reconnection to the slimserver. Please reopen the bug if this error happens again.