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
