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]
