#idempiere IRC log for Monday, 2017-08-21

Not-cd20[IDEMPIERE] hieplq updated IDEMPIERE-3043 status set to "Reopened" -resolution set to "None"03:16
Not-cd20[IDEMPIERE] My environment is difference to default, i update jetty and enquinox to latest, but i think condition it will don't effect much to this test case condition and reason to happen issue 1. have some bundle export service org.adempiere.base.IModelFactory (on my condition it's 10) 2. have some bundle use Incremental2PackActivator and also have data package release common model now let to see how code run. 1.03:16
Not-cd20when both bundle org.adempiere.server and jetty server active, it deploy adempiere server webapp and make code at Adempiere.startup run, it call createThreadPool() to init ScheduledThreadPoolExecutor 2. this time it also fire server start event by call fireServerStateChanged () 3. this time after finish call all server start listener it call startupEnvironment (), this method call to MSystem.get(Env.getCtx()); 4.03:16
Not-cd20look into Incremental2PackActivator.addingService () can see, before time of (1) packin process queue into thread server state change after time of (1) it add to thread pool and run parallel, it also run parallel with (2) and (3) 5. so immediate time after (1) have some thread parallel run to DynamicServiceHolder and call serviceTracker.open(); for tracker of IModelFactory go to ServiceTracker.open, it have two part,03:16
Not-cd20a. turn status of ServiceTracker to open on synchronized block b. call t.trackInitial to add services registered before open ServiceTracker 1st thread got lock of serviceTracker.open will do both step. after 1st thread do step a, other thread don't wait step b finish. they can immediate call DynamicServiceHolder.getServices. so some thread after 1st thread will got a list not full list of registered of IModelFactory.03:16
Not-cd20it ever maybe don't got DefaultModelFactory so MTable.getPO can return GenericPO, so some cast will fail it's not a weak point of Osgi service, it follow design (spec) of Osgi. so how to resolved this issue? open ServiceTracker is cheap process, so don't need to lazy it. can do it on BundleActivator of bundle define service (org.adempiere.base) it help every thread got full list of registered bundle at time call03:16
Not-cd20DynamicServiceHolder.getServices03:16
Not-cd20[IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-304303:16
Not-cd20[IDEMPIERE] hieplq updated IDEMPIERE-304303:17
Not-cd20[IDEMPIERE] My environment is difference to default, i update jetty and enquinox to latest, but i think condition it will don't effect much to this test case condition and reason to happen issue 1. have some bundle export service org.adempiere.base.IModelFactory (on my condition it's 10) 2. have some bundle use Incremental2PackActivator and also have data package release common model now let to see how code run. 1.03:17
Not-cd20when both bundle org.adempiere.server and jetty server active, it deploy adempiere server webapp and make code at Adempiere.startup run, it call createThreadPool() to init ScheduledThreadPoolExecutor 2. this time it also fire server start event by call fireServerStateChanged () 3. this time after finish call all server start listener it call startupEnvironment (), this method call to MSystem.get(Env.getCtx()); 4.03:17
Not-cd20look into Incremental2PackActivator.addingService () can see, before time of (1) packin process queue into thread server state change after time of (1) it add to thread pool and run parallel, it also run parallel with (2) and (3) 5. so immediate time after (1) have some thread parallel run to DynamicServiceHolder and call serviceTracker.open(); for tracker of IModelFactory go to ServiceTracker.open, it have two part,03:17
Not-cd20a. turn status of ServiceTracker to open on synchronized block b. call t.trackInitial to add services registered before open ServiceTracker 1st thread got lock of serviceTracker.open will do both step. after 1st thread do step a, other thread don't wait step b finish. they can immediate call DynamicServiceHolder.getServices. so some thread after 1st thread will got a list not full list of registered of IModelFactory.03:17
Not-cd20it ever maybe don't got DefaultModelFactory so MTable.getPO can return GenericPO, so some cast will fail it's not a weak point of Osgi service, it follow design (spec) of Osgi. it happen some to other service isn't only IModelFactory, but IModelFactory is easy to figure out. so how to resolved this issue? open ServiceTracker is cheap process, so don't need to lazy it. can do it on BundleActivator of bundle define03:17
Not-cd20service (org.adempiere.base) it help every thread got full list of registered bundle at time call DynamicServiceHolder.getServices03:17
Not-cd20[IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-304303:17
Not-cd20[IDEMPIERE] hieplq updated IDEMPIERE-304303:19
Not-cd20[IDEMPIERE] other improve: pack-in process should waiting util framework finish start by handle FrameworkEvent.STARTLEVEL_CHANGED03:19
Not-cd20[IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-304303:19
Not-cd20[IDEMPIERE] hieplq updated IDEMPIERE-3043 Attachment set to "None"03:57
Not-cd20[IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-304303:58
Not-cd20[IDEMPIERE] hieplq updated IDEMPIERE-3043 Attachment set to "IDEMPIERE-3043.patch"03:58
Not-cd20[IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-304303:58
Not-cd20[IDEMPIERE] hieplq updated IDEMPIERE-3043 status set to "Peer Review Queue"03:58
Not-cd20[IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-304303:58
Not-cd20[IDEMPIERE] hieplq updated IDEMPIERE-3043 Attachment set to "None"04:01
Not-cd20[IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-304304:01
Not-cd20[IDEMPIERE] hieplq updated IDEMPIERE-3043 Attachment set to "IDEMPIERE-3043.patch"04:01
Not-cd20[IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-304304:01
*** a42niem has joined #idempiere04:55
*** Junior has joined #idempiere07:03
*** mbozem has joined #idempiere07:44
*** CarlosRuiz has joined #idempiere10:11
*** test has joined #idempiere10:33
*** CarlosRuiz has quit IRC10:42
*** mbozem has quit IRC14:53
Not-cd20[IDEMPIERE] hieplq updated IDEMPIERE-3043 status set to "Open"16:46
Not-cd20[IDEMPIERE] the patch don't work, it make dead lock sometime, so i think solution is open tracker at active bundle of adempiere base16:46
Not-cd20[IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-304316:46
*** a42niem has quit IRC20:26
*** dieko060606 has joined #idempiere21:40
*** dieko060606 has quit IRC21:42

Generated by irclog2html.py 2.14.0 by Marius Gedminas - find it at mg.pov.lt!