Bug 3412 - Slimproto asserts no client
: Slimproto asserts no client
Status: RESOLVED FIXED
Product: Logitech Media Server
Classification: Unclassified
Component: Streaming From SlimServer
: 6.2.2
: PC Windows XP
: P2 trivial (vote)
: ---
Assigned To: Richard Titmuss
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2006-05-12 03:06 UTC by Richard
Modified: 2008-09-15 14:39 UTC (History)
3 users (show)

See Also:
Category: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Richard 2006-05-12 03:06:17 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
Comment 1 KDF 2006-05-12 09:40:21 UTC
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.
Comment 2 Adrian Smith 2006-06-07 13:22:53 UTC
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...
Comment 3 Blackketter Dean 2006-06-11 22:17:28 UTC
Is this a softsqueeze only bug?
Comment 4 KDF 2006-06-29 10:08:51 UTC
*** Bug 3659 has been marked as a duplicate of this bug. ***
Comment 5 Richard Titmuss 2006-07-11 14:48:09 UTC
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.