You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openmeetings.apache.org by "seba.wagner@gmail.com" <se...@gmail.com> on 2013/02/01 05:01:38 UTC

Re: Issue with publicSID in memory based session cache

Maxim,

you should be able to re-run your test. I have almost the same
implementation now again for the memory based session.
There might be a way of performance increase to have a second map, with the
"scope" as key:
Map<String,List<Client>> clientsByScope
or
Map<String,Map<String,Client>> clientsByScope (in this case the inner Map
would have the streamid as primary key)

The scope is the only thing that does not change, cause you would need to
disconnect from red5 to make this parameter changing.
However I have not implemented it yet.

The other implementation with multiple list would potentially work too, but
you would have to make some wired copy actions whenever a parameter changes
that is a key in a map at the same time.

Sebastian



2013/2/1 seba.wagner@gmail.com <se...@gmail.com>

> ... the roomId is also wrong by the way. You can see it by doing the
> following:
> Open two browser tabs and load openmeetings, go with one client in a
> conference room but _not_ choose any device settings yet and keep the
> device settings dialog open.
> Go with the second browser in the admin > UI > connections.
> You see both clients in the list with the roomId, now click on the one
> that has no firstname/lastname, compare the publicSID to the other =>
> different, and roomId is null
> Now confirm the device settings in the conference room. Go back to the
> client list, refresh => compared publicSID's => same name, roomId is also
> set but different?!
> That is strange.
>
> Sebastian
>
>
> 2013/2/1 seba.wagner@gmail.com <se...@gmail.com>
>
> Yes,
>>
>> I found out the root of the issue. The root is not the HashMap actually,
>> the root is that we change the publicSID of the RTMP connection that
>> connects to the SWF10 app dynamically.
>> The SWF10 rtmp connection intially gets a publicSID assigned, but to
>> makes sure the client has the same rights like the rtmp-connection to the
>> SWF8 app, we do overwrite this publicSID with the one from the SWF8 app.
>> But in the session cache we still have the rtmp-connection / client with
>> the old publicSID in a list as key (to have fast access). This publicSID is
>> never cleaned up. That is the issue. I will look into it now.
>>
>> Sebastian
>>
>>
>> 2013/1/31 Maxim Solodovnik <so...@gmail.com>
>>
>>> Here is the scenario to reproduce the weird behavior with publicSID:
>>>
>>> 1) login as user1
>>> 2) enter any room
>>> 3) do nothing, exit the room
>>> 4) repeat steps 2 and 3 5 times
>>> 5) open Administration->Connections
>>>
>>> Result:    clientsByServerAndPublicSID Server null Number of PublicSIDs:
>>> *16*
>>> *
>>> *
>>> I believe number of publicSIDs should be 1
>>>
>>> 6) do logout
>>> 7) do login
>>> 8) open Administration->Connections
>>> Result: clientsByServerAndPublicSID Server null Number of PublicSIDs: *
>>> 16*
>>>
>>>
>>>
>>>
>>>
>>> On Thu, Jan 31, 2013 at 12:49 PM, Maxim Solodovnik <solomax666@gmail.com
>>> > wrote:
>>>
>>>> Also I believe address is more human-readable value in config than
>>>> serverId :)
>>>>
>>>>
>>>> On Thu, Jan 31, 2013 at 12:47 PM, Maxim Solodovnik <
>>>> solomax666@gmail.com> wrote:
>>>>
>>>>> The first issue was with
>>>>> openmeetings-applicationContext.xml
>>>>>
>>>>> "null" in serverId was interpreted as String with value "null" (4
>>>>> characters)
>>>>>
>>>>> The second issue was with ManageCryptStyle, it was not autowired in
>>>>> anonymous class
>>>>>
>>>>> Was tested on 2 machines (Linux+Windows)
>>>>>
>>>>> continue investigating
>>>>>
>>>>>
>>>>> On Thu, Jan 31, 2013 at 12:36 PM, seba.wagner@gmail.com <
>>>>> seba.wagner@gmail.com> wrote:
>>>>>
>>>>>> Are you sure you are using the default config files and a fresh build?
>>>>>> Cause I don't have those errors. It seems like your
>>>>>> openmeetings-applicationContext.xml is outdated or you did not svn update.
>>>>>>
>>>>>> Sebastian
>>>>>>
>>>>>>
>>>>>> 2013/1/31 Maxim Solodovnik <so...@gmail.com>
>>>>>>
>>>>>>> Currently OM is broken (on our side)
>>>>>>>
>>>>>>> Here is the part of stacktrace from OM log:
>>>>>>> ERROR 01-31 12:09:40.339 ScopeApplicationAdapter.java 56269 199
>>>>>>> org.apache.openmeetings.remote.red5.ScopeApplicationAdapter
>>>>>>> [http-nio-0.0.0.0-8088-exec-6] - roomJoin
>>>>>>> java.lang.NumberFormatException: For input string: "null"
>>>>>>>         at
>>>>>>> java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
>>>>>>> ~[na:1.7.0_04]
>>>>>>>         at java.lang.Long.parseLong(Long.java:441) ~[na:1.7.0_04]
>>>>>>>         at java.lang.Long.parseLong(Long.java:483) ~[na:1.7.0_04]
>>>>>>>         at
>>>>>>> org.apache.openmeetings.session.ServerUtil.getCurrentServer(ServerUtil.java:76)
>>>>>>> ~[na:na]
>>>>>>>         at
>>>>>>> org.apache.openmeetings.session.SessionManager.addClientListItem(SessionManager.java:387)
>>>>>>> ~[na:na]
>>>>>>>         at
>>>>>>> org.apache.openmeetings.remote.red5.ScopeApplicationAdapter.roomConnect(ScopeApplicationAdapter.java:186)
>>>>>>> ~[na:na]
>>>>>>>         at
>>>>>>> org.red5.server.adapter.MultiThreadedApplicationAdapter.connect(MultiThreadedApplicationAdapter.java:326)
>>>>>>> [red5.jar:na]
>>>>>>>
>>>>>>>
>>>>>>> And part of stacktrace from red5.log:
>>>>>>>
>>>>>>> 2013-01-31 12:09:39,669 [NioProcessor-2] INFO
>>>>>>>  o.r.s.n.r.codec.RTMPProtocolDecoder - Action xmlcrm.getsessiondata
>>>>>>> 2013-01-31 12:09:39,794 [NioProcessor-2] INFO
>>>>>>>  o.r.s.n.r.codec.RTMPProtocolDecoder - Action _error
>>>>>>> 2013-01-31 12:09:39,845 [NioProcessor-2] INFO
>>>>>>>  o.r.s.n.r.codec.RTMPProtocolDecoder - Action getPublicSID
>>>>>>> 2013-01-31 12:09:39,857 [NioProcessor-2] ERROR
>>>>>>> o.r.server.service.ServiceInvoker - Error executing call: Service: null
>>>>>>> Method: getPublicSID Num Params: 0
>>>>>>> java.lang.reflect.InvocationTargetException: null
>>>>>>>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>>> ~[na:1.7.0_04]
>>>>>>>     at
>>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>>>>>> ~[na:1.7.0_04]
>>>>>>>     at
>>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>>>> ~[na:1.7.0_04]
>>>>>>>     at java.lang.reflect.Method.invoke(Method.java:601)
>>>>>>> ~[na:1.7.0_04]
>>>>>>>     at
>>>>>>> org.red5.server.service.ServiceInvoker.invoke(ServiceInvoker.java:196)
>>>>>>> [red5.jar:na]
>>>>>>>     at
>>>>>>> org.red5.server.service.ServiceInvoker.invoke(ServiceInvoker.java:115)
>>>>>>> [red5.jar:na]
>>>>>>>     at
>>>>>>> org.red5.server.net.rtmp.RTMPHandler.invokeCall(RTMPHandler.java:157)
>>>>>>> [red5.jar:na]
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> I'm going to investigate, then will retest publicSID issue
>>>>>>>
>>>>>>>
>>>>>>> On Thu, Jan 31, 2013 at 10:16 AM, seba.wagner@gmail.com <
>>>>>>> seba.wagner@gmail.com> wrote:
>>>>>>>
>>>>>>>> Hi Maxim,
>>>>>>>>
>>>>>>>> could you describe the use case that you had issue with the session
>>>>>>>> not being correctly cleaned up?
>>>>>>>>
>>>>>>>> Thanks!
>>>>>>>> Sebastian
>>>>>>>>
>>>>>>>> --
>>>>>>>> Sebastian Wagner
>>>>>>>> https://twitter.com/#!/dead_lock
>>>>>>>> http://www.webbase-design.de
>>>>>>>> http://www.wagner-sebastian.com
>>>>>>>> seba.wagner@gmail.com
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> WBR
>>>>>>> Maxim aka solomax
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Sebastian Wagner
>>>>>> https://twitter.com/#!/dead_lock
>>>>>> http://www.webbase-design.de
>>>>>> http://www.wagner-sebastian.com
>>>>>> seba.wagner@gmail.com
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> WBR
>>>>> Maxim aka solomax
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> WBR
>>>> Maxim aka solomax
>>>>
>>>
>>>
>>>
>>> --
>>> WBR
>>> Maxim aka solomax
>>>
>>
>>
>>
>> --
>> Sebastian Wagner
>> https://twitter.com/#!/dead_lock
>> http://www.webbase-design.de
>> http://www.wagner-sebastian.com
>> seba.wagner@gmail.com
>>
>
>
>
> --
> Sebastian Wagner
> https://twitter.com/#!/dead_lock
> http://www.webbase-design.de
> http://www.wagner-sebastian.com
> seba.wagner@gmail.com
>



-- 
Sebastian Wagner
https://twitter.com/#!/dead_lock
http://www.webbase-design.de
http://www.wagner-sebastian.com
seba.wagner@gmail.com

Re: Issue with publicSID in memory based session cache

Posted by "seba.wagner@gmail.com" <se...@gmail.com>.
I have made a few glitches because I was testing with the wrong branch.
Should be better now.

*Also I believe address is more human-readable value in config than
serverId :)*
=> I believe the same. I will refactor the code to have the host in that
variable instead of the serverId.

Sebastian


2013/2/1 Maxim Solodovnik <so...@gmail.com>

> Ok thanks!
> I'll retest today and will let you know
>
>
> On Fri, Feb 1, 2013 at 11:01 AM, seba.wagner@gmail.com <
> seba.wagner@gmail.com> wrote:
>
>> Maxim,
>>
>> you should be able to re-run your test. I have almost the same
>> implementation now again for the memory based session.
>> There might be a way of performance increase to have a second map, with
>> the "scope" as key:
>> Map<String,List<Client>> clientsByScope
>> or
>> Map<String,Map<String,Client>> clientsByScope (in this case the inner Map
>> would have the streamid as primary key)
>>
>> The scope is the only thing that does not change, cause you would need to
>> disconnect from red5 to make this parameter changing.
>> However I have not implemented it yet.
>>
>> The other implementation with multiple list would potentially work too,
>> but you would have to make some wired copy actions whenever a parameter
>> changes that is a key in a map at the same time.
>>
>> Sebastian
>>
>>
>>
>> 2013/2/1 seba.wagner@gmail.com <se...@gmail.com>
>>
>> ... the roomId is also wrong by the way. You can see it by doing the
>>> following:
>>> Open two browser tabs and load openmeetings, go with one client in a
>>> conference room but _not_ choose any device settings yet and keep the
>>> device settings dialog open.
>>> Go with the second browser in the admin > UI > connections.
>>> You see both clients in the list with the roomId, now click on the one
>>> that has no firstname/lastname, compare the publicSID to the other =>
>>> different, and roomId is null
>>> Now confirm the device settings in the conference room. Go back to the
>>> client list, refresh => compared publicSID's => same name, roomId is also
>>> set but different?!
>>> That is strange.
>>>
>>> Sebastian
>>>
>>>
>>> 2013/2/1 seba.wagner@gmail.com <se...@gmail.com>
>>>
>>> Yes,
>>>>
>>>> I found out the root of the issue. The root is not the HashMap
>>>> actually, the root is that we change the publicSID of the RTMP connection
>>>> that connects to the SWF10 app dynamically.
>>>> The SWF10 rtmp connection intially gets a publicSID assigned, but to
>>>> makes sure the client has the same rights like the rtmp-connection to the
>>>> SWF8 app, we do overwrite this publicSID with the one from the SWF8 app.
>>>> But in the session cache we still have the rtmp-connection / client
>>>> with the old publicSID in a list as key (to have fast access). This
>>>> publicSID is never cleaned up. That is the issue. I will look into it now.
>>>>
>>>> Sebastian
>>>>
>>>>
>>>> 2013/1/31 Maxim Solodovnik <so...@gmail.com>
>>>>
>>>>> Here is the scenario to reproduce the weird behavior with publicSID:
>>>>>
>>>>> 1) login as user1
>>>>> 2) enter any room
>>>>> 3) do nothing, exit the room
>>>>> 4) repeat steps 2 and 3 5 times
>>>>> 5) open Administration->Connections
>>>>>
>>>>> Result:    clientsByServerAndPublicSID Server null Number of
>>>>> PublicSIDs: *16*
>>>>> *
>>>>> *
>>>>> I believe number of publicSIDs should be 1
>>>>>
>>>>> 6) do logout
>>>>> 7) do login
>>>>> 8) open Administration->Connections
>>>>> Result: clientsByServerAndPublicSID Server null Number of PublicSIDs:
>>>>> *16*
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Thu, Jan 31, 2013 at 12:49 PM, Maxim Solodovnik <
>>>>> solomax666@gmail.com> wrote:
>>>>>
>>>>>> Also I believe address is more human-readable value in config than
>>>>>> serverId :)
>>>>>>
>>>>>>
>>>>>> On Thu, Jan 31, 2013 at 12:47 PM, Maxim Solodovnik <
>>>>>> solomax666@gmail.com> wrote:
>>>>>>
>>>>>>> The first issue was with
>>>>>>> openmeetings-applicationContext.xml
>>>>>>>
>>>>>>> "null" in serverId was interpreted as String with value "null" (4
>>>>>>> characters)
>>>>>>>
>>>>>>> The second issue was with ManageCryptStyle, it was not autowired in
>>>>>>> anonymous class
>>>>>>>
>>>>>>> Was tested on 2 machines (Linux+Windows)
>>>>>>>
>>>>>>> continue investigating
>>>>>>>
>>>>>>>
>>>>>>> On Thu, Jan 31, 2013 at 12:36 PM, seba.wagner@gmail.com <
>>>>>>> seba.wagner@gmail.com> wrote:
>>>>>>>
>>>>>>>> Are you sure you are using the default config files and a fresh
>>>>>>>> build?
>>>>>>>> Cause I don't have those errors. It seems like your
>>>>>>>> openmeetings-applicationContext.xml is outdated or you did not svn update.
>>>>>>>>
>>>>>>>> Sebastian
>>>>>>>>
>>>>>>>>
>>>>>>>> 2013/1/31 Maxim Solodovnik <so...@gmail.com>
>>>>>>>>
>>>>>>>>> Currently OM is broken (on our side)
>>>>>>>>>
>>>>>>>>> Here is the part of stacktrace from OM log:
>>>>>>>>> ERROR 01-31 12:09:40.339 ScopeApplicationAdapter.java 56269 199
>>>>>>>>> org.apache.openmeetings.remote.red5.ScopeApplicationAdapter
>>>>>>>>> [http-nio-0.0.0.0-8088-exec-6] - roomJoin
>>>>>>>>> java.lang.NumberFormatException: For input string: "null"
>>>>>>>>>         at
>>>>>>>>> java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
>>>>>>>>> ~[na:1.7.0_04]
>>>>>>>>>         at java.lang.Long.parseLong(Long.java:441) ~[na:1.7.0_04]
>>>>>>>>>         at java.lang.Long.parseLong(Long.java:483) ~[na:1.7.0_04]
>>>>>>>>>         at
>>>>>>>>> org.apache.openmeetings.session.ServerUtil.getCurrentServer(ServerUtil.java:76)
>>>>>>>>> ~[na:na]
>>>>>>>>>         at
>>>>>>>>> org.apache.openmeetings.session.SessionManager.addClientListItem(SessionManager.java:387)
>>>>>>>>> ~[na:na]
>>>>>>>>>         at
>>>>>>>>> org.apache.openmeetings.remote.red5.ScopeApplicationAdapter.roomConnect(ScopeApplicationAdapter.java:186)
>>>>>>>>> ~[na:na]
>>>>>>>>>         at
>>>>>>>>> org.red5.server.adapter.MultiThreadedApplicationAdapter.connect(MultiThreadedApplicationAdapter.java:326)
>>>>>>>>> [red5.jar:na]
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> And part of stacktrace from red5.log:
>>>>>>>>>
>>>>>>>>> 2013-01-31 12:09:39,669 [NioProcessor-2] INFO
>>>>>>>>>  o.r.s.n.r.codec.RTMPProtocolDecoder - Action xmlcrm.getsessiondata
>>>>>>>>> 2013-01-31 12:09:39,794 [NioProcessor-2] INFO
>>>>>>>>>  o.r.s.n.r.codec.RTMPProtocolDecoder - Action _error
>>>>>>>>> 2013-01-31 12:09:39,845 [NioProcessor-2] INFO
>>>>>>>>>  o.r.s.n.r.codec.RTMPProtocolDecoder - Action getPublicSID
>>>>>>>>> 2013-01-31 12:09:39,857 [NioProcessor-2] ERROR
>>>>>>>>> o.r.server.service.ServiceInvoker - Error executing call: Service: null
>>>>>>>>> Method: getPublicSID Num Params: 0
>>>>>>>>> java.lang.reflect.InvocationTargetException: null
>>>>>>>>>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>>>>> ~[na:1.7.0_04]
>>>>>>>>>     at
>>>>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>>>>>>>> ~[na:1.7.0_04]
>>>>>>>>>     at
>>>>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>>>>>> ~[na:1.7.0_04]
>>>>>>>>>     at java.lang.reflect.Method.invoke(Method.java:601)
>>>>>>>>> ~[na:1.7.0_04]
>>>>>>>>>     at
>>>>>>>>> org.red5.server.service.ServiceInvoker.invoke(ServiceInvoker.java:196)
>>>>>>>>> [red5.jar:na]
>>>>>>>>>     at
>>>>>>>>> org.red5.server.service.ServiceInvoker.invoke(ServiceInvoker.java:115)
>>>>>>>>> [red5.jar:na]
>>>>>>>>>     at
>>>>>>>>> org.red5.server.net.rtmp.RTMPHandler.invokeCall(RTMPHandler.java:157)
>>>>>>>>> [red5.jar:na]
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> I'm going to investigate, then will retest publicSID issue
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Thu, Jan 31, 2013 at 10:16 AM, seba.wagner@gmail.com <
>>>>>>>>> seba.wagner@gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> Hi Maxim,
>>>>>>>>>>
>>>>>>>>>> could you describe the use case that you had issue with the
>>>>>>>>>> session not being correctly cleaned up?
>>>>>>>>>>
>>>>>>>>>> Thanks!
>>>>>>>>>> Sebastian
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Sebastian Wagner
>>>>>>>>>> https://twitter.com/#!/dead_lock
>>>>>>>>>> http://www.webbase-design.de
>>>>>>>>>> http://www.wagner-sebastian.com
>>>>>>>>>> seba.wagner@gmail.com
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> WBR
>>>>>>>>> Maxim aka solomax
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Sebastian Wagner
>>>>>>>> https://twitter.com/#!/dead_lock
>>>>>>>> http://www.webbase-design.de
>>>>>>>> http://www.wagner-sebastian.com
>>>>>>>> seba.wagner@gmail.com
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> WBR
>>>>>>> Maxim aka solomax
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> WBR
>>>>>> Maxim aka solomax
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> WBR
>>>>> Maxim aka solomax
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Sebastian Wagner
>>>> https://twitter.com/#!/dead_lock
>>>> http://www.webbase-design.de
>>>> http://www.wagner-sebastian.com
>>>> seba.wagner@gmail.com
>>>>
>>>
>>>
>>>
>>> --
>>> Sebastian Wagner
>>> https://twitter.com/#!/dead_lock
>>> http://www.webbase-design.de
>>> http://www.wagner-sebastian.com
>>> seba.wagner@gmail.com
>>>
>>
>>
>>
>> --
>> Sebastian Wagner
>> https://twitter.com/#!/dead_lock
>> http://www.webbase-design.de
>> http://www.wagner-sebastian.com
>> seba.wagner@gmail.com
>>
>
>
>
> --
> WBR
> Maxim aka solomax
>



-- 
Sebastian Wagner
https://twitter.com/#!/dead_lock
http://www.webbase-design.de
http://www.wagner-sebastian.com
seba.wagner@gmail.com

Re: Issue with publicSID in memory based session cache

Posted by Maxim Solodovnik <so...@gmail.com>.
Ok thanks!
I'll retest today and will let you know


On Fri, Feb 1, 2013 at 11:01 AM, seba.wagner@gmail.com <
seba.wagner@gmail.com> wrote:

> Maxim,
>
> you should be able to re-run your test. I have almost the same
> implementation now again for the memory based session.
> There might be a way of performance increase to have a second map, with
> the "scope" as key:
> Map<String,List<Client>> clientsByScope
> or
> Map<String,Map<String,Client>> clientsByScope (in this case the inner Map
> would have the streamid as primary key)
>
> The scope is the only thing that does not change, cause you would need to
> disconnect from red5 to make this parameter changing.
> However I have not implemented it yet.
>
> The other implementation with multiple list would potentially work too,
> but you would have to make some wired copy actions whenever a parameter
> changes that is a key in a map at the same time.
>
> Sebastian
>
>
>
> 2013/2/1 seba.wagner@gmail.com <se...@gmail.com>
>
> ... the roomId is also wrong by the way. You can see it by doing the
>> following:
>> Open two browser tabs and load openmeetings, go with one client in a
>> conference room but _not_ choose any device settings yet and keep the
>> device settings dialog open.
>> Go with the second browser in the admin > UI > connections.
>> You see both clients in the list with the roomId, now click on the one
>> that has no firstname/lastname, compare the publicSID to the other =>
>> different, and roomId is null
>> Now confirm the device settings in the conference room. Go back to the
>> client list, refresh => compared publicSID's => same name, roomId is also
>> set but different?!
>> That is strange.
>>
>> Sebastian
>>
>>
>> 2013/2/1 seba.wagner@gmail.com <se...@gmail.com>
>>
>> Yes,
>>>
>>> I found out the root of the issue. The root is not the HashMap actually,
>>> the root is that we change the publicSID of the RTMP connection that
>>> connects to the SWF10 app dynamically.
>>> The SWF10 rtmp connection intially gets a publicSID assigned, but to
>>> makes sure the client has the same rights like the rtmp-connection to the
>>> SWF8 app, we do overwrite this publicSID with the one from the SWF8 app.
>>> But in the session cache we still have the rtmp-connection / client with
>>> the old publicSID in a list as key (to have fast access). This publicSID is
>>> never cleaned up. That is the issue. I will look into it now.
>>>
>>> Sebastian
>>>
>>>
>>> 2013/1/31 Maxim Solodovnik <so...@gmail.com>
>>>
>>>> Here is the scenario to reproduce the weird behavior with publicSID:
>>>>
>>>> 1) login as user1
>>>> 2) enter any room
>>>> 3) do nothing, exit the room
>>>> 4) repeat steps 2 and 3 5 times
>>>> 5) open Administration->Connections
>>>>
>>>> Result:    clientsByServerAndPublicSID Server null Number of
>>>> PublicSIDs: *16*
>>>> *
>>>> *
>>>> I believe number of publicSIDs should be 1
>>>>
>>>> 6) do logout
>>>> 7) do login
>>>> 8) open Administration->Connections
>>>> Result: clientsByServerAndPublicSID Server null Number of PublicSIDs: *
>>>> 16*
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Thu, Jan 31, 2013 at 12:49 PM, Maxim Solodovnik <
>>>> solomax666@gmail.com> wrote:
>>>>
>>>>> Also I believe address is more human-readable value in config than
>>>>> serverId :)
>>>>>
>>>>>
>>>>> On Thu, Jan 31, 2013 at 12:47 PM, Maxim Solodovnik <
>>>>> solomax666@gmail.com> wrote:
>>>>>
>>>>>> The first issue was with
>>>>>> openmeetings-applicationContext.xml
>>>>>>
>>>>>> "null" in serverId was interpreted as String with value "null" (4
>>>>>> characters)
>>>>>>
>>>>>> The second issue was with ManageCryptStyle, it was not autowired in
>>>>>> anonymous class
>>>>>>
>>>>>> Was tested on 2 machines (Linux+Windows)
>>>>>>
>>>>>> continue investigating
>>>>>>
>>>>>>
>>>>>> On Thu, Jan 31, 2013 at 12:36 PM, seba.wagner@gmail.com <
>>>>>> seba.wagner@gmail.com> wrote:
>>>>>>
>>>>>>> Are you sure you are using the default config files and a fresh
>>>>>>> build?
>>>>>>> Cause I don't have those errors. It seems like your
>>>>>>> openmeetings-applicationContext.xml is outdated or you did not svn update.
>>>>>>>
>>>>>>> Sebastian
>>>>>>>
>>>>>>>
>>>>>>> 2013/1/31 Maxim Solodovnik <so...@gmail.com>
>>>>>>>
>>>>>>>> Currently OM is broken (on our side)
>>>>>>>>
>>>>>>>> Here is the part of stacktrace from OM log:
>>>>>>>> ERROR 01-31 12:09:40.339 ScopeApplicationAdapter.java 56269 199
>>>>>>>> org.apache.openmeetings.remote.red5.ScopeApplicationAdapter
>>>>>>>> [http-nio-0.0.0.0-8088-exec-6] - roomJoin
>>>>>>>> java.lang.NumberFormatException: For input string: "null"
>>>>>>>>         at
>>>>>>>> java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
>>>>>>>> ~[na:1.7.0_04]
>>>>>>>>         at java.lang.Long.parseLong(Long.java:441) ~[na:1.7.0_04]
>>>>>>>>         at java.lang.Long.parseLong(Long.java:483) ~[na:1.7.0_04]
>>>>>>>>         at
>>>>>>>> org.apache.openmeetings.session.ServerUtil.getCurrentServer(ServerUtil.java:76)
>>>>>>>> ~[na:na]
>>>>>>>>         at
>>>>>>>> org.apache.openmeetings.session.SessionManager.addClientListItem(SessionManager.java:387)
>>>>>>>> ~[na:na]
>>>>>>>>         at
>>>>>>>> org.apache.openmeetings.remote.red5.ScopeApplicationAdapter.roomConnect(ScopeApplicationAdapter.java:186)
>>>>>>>> ~[na:na]
>>>>>>>>         at
>>>>>>>> org.red5.server.adapter.MultiThreadedApplicationAdapter.connect(MultiThreadedApplicationAdapter.java:326)
>>>>>>>> [red5.jar:na]
>>>>>>>>
>>>>>>>>
>>>>>>>> And part of stacktrace from red5.log:
>>>>>>>>
>>>>>>>> 2013-01-31 12:09:39,669 [NioProcessor-2] INFO
>>>>>>>>  o.r.s.n.r.codec.RTMPProtocolDecoder - Action xmlcrm.getsessiondata
>>>>>>>> 2013-01-31 12:09:39,794 [NioProcessor-2] INFO
>>>>>>>>  o.r.s.n.r.codec.RTMPProtocolDecoder - Action _error
>>>>>>>> 2013-01-31 12:09:39,845 [NioProcessor-2] INFO
>>>>>>>>  o.r.s.n.r.codec.RTMPProtocolDecoder - Action getPublicSID
>>>>>>>> 2013-01-31 12:09:39,857 [NioProcessor-2] ERROR
>>>>>>>> o.r.server.service.ServiceInvoker - Error executing call: Service: null
>>>>>>>> Method: getPublicSID Num Params: 0
>>>>>>>> java.lang.reflect.InvocationTargetException: null
>>>>>>>>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>>>> ~[na:1.7.0_04]
>>>>>>>>     at
>>>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>>>>>>> ~[na:1.7.0_04]
>>>>>>>>     at
>>>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>>>>> ~[na:1.7.0_04]
>>>>>>>>     at java.lang.reflect.Method.invoke(Method.java:601)
>>>>>>>> ~[na:1.7.0_04]
>>>>>>>>     at
>>>>>>>> org.red5.server.service.ServiceInvoker.invoke(ServiceInvoker.java:196)
>>>>>>>> [red5.jar:na]
>>>>>>>>     at
>>>>>>>> org.red5.server.service.ServiceInvoker.invoke(ServiceInvoker.java:115)
>>>>>>>> [red5.jar:na]
>>>>>>>>     at
>>>>>>>> org.red5.server.net.rtmp.RTMPHandler.invokeCall(RTMPHandler.java:157)
>>>>>>>> [red5.jar:na]
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> I'm going to investigate, then will retest publicSID issue
>>>>>>>>
>>>>>>>>
>>>>>>>> On Thu, Jan 31, 2013 at 10:16 AM, seba.wagner@gmail.com <
>>>>>>>> seba.wagner@gmail.com> wrote:
>>>>>>>>
>>>>>>>>> Hi Maxim,
>>>>>>>>>
>>>>>>>>> could you describe the use case that you had issue with the
>>>>>>>>> session not being correctly cleaned up?
>>>>>>>>>
>>>>>>>>> Thanks!
>>>>>>>>> Sebastian
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Sebastian Wagner
>>>>>>>>> https://twitter.com/#!/dead_lock
>>>>>>>>> http://www.webbase-design.de
>>>>>>>>> http://www.wagner-sebastian.com
>>>>>>>>> seba.wagner@gmail.com
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> WBR
>>>>>>>> Maxim aka solomax
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Sebastian Wagner
>>>>>>> https://twitter.com/#!/dead_lock
>>>>>>> http://www.webbase-design.de
>>>>>>> http://www.wagner-sebastian.com
>>>>>>> seba.wagner@gmail.com
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> WBR
>>>>>> Maxim aka solomax
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> WBR
>>>>> Maxim aka solomax
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> WBR
>>>> Maxim aka solomax
>>>>
>>>
>>>
>>>
>>> --
>>> Sebastian Wagner
>>> https://twitter.com/#!/dead_lock
>>> http://www.webbase-design.de
>>> http://www.wagner-sebastian.com
>>> seba.wagner@gmail.com
>>>
>>
>>
>>
>> --
>> Sebastian Wagner
>> https://twitter.com/#!/dead_lock
>> http://www.webbase-design.de
>> http://www.wagner-sebastian.com
>> seba.wagner@gmail.com
>>
>
>
>
> --
> Sebastian Wagner
> https://twitter.com/#!/dead_lock
> http://www.webbase-design.de
> http://www.wagner-sebastian.com
> seba.wagner@gmail.com
>



-- 
WBR
Maxim aka solomax