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 <[email protected]>

> 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
>



-- 
Sebastian Wagner
https://twitter.com/#!/dead_lock
http://www.webbase-design.de
http://www.wagner-sebastian.com
[email protected]

Reply via email to