Ok thanks!
I'll retest today and will let you know

On Fri, Feb 1, 2013 at 11:01 AM, [email protected] <
[email protected]> 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 [email protected] <[email protected]>
>
> ... 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 [email protected] <[email protected]>
>>
>> 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 <[email protected]>
>>>
>>>> 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 <
>>>> [email protected]> 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 <
>>>>> [email protected]> 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, [email protected] <
>>>>>> [email protected]> 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 <[email protected]>
>>>>>>>
>>>>>>>> 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, [email protected] <
>>>>>>>> [email protected]> 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
>>>>>>>>> [email protected]
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> WBR
>>>>>>>> Maxim aka solomax
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Sebastian Wagner
>>>>>>> https://twitter.com/#!/dead_lock
>>>>>>> http://www.webbase-design.de
>>>>>>> http://www.wagner-sebastian.com
>>>>>>> [email protected]
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> 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
>>> [email protected]
>>>
>>
>>
>>
>> --
>> Sebastian Wagner
>> https://twitter.com/#!/dead_lock
>> http://www.webbase-design.de
>> http://www.wagner-sebastian.com
>> [email protected]
>>
>
>
>
> --
> Sebastian Wagner
> https://twitter.com/#!/dead_lock
> http://www.webbase-design.de
> http://www.wagner-sebastian.com
> [email protected]
>



-- 
WBR
Maxim aka solomax

Reply via email to