Here is why gogo.command can cause file installer to be swept upon the 
refresh:

gogo.command exports log:

Export-Package: 
org.osgi.service.log;uses:="org.osgi.framework";version="1.3"

And file installer imports log. So, depending on how the resolution goes, 
file installer can depend upon gogo.command. So if gogo.command is then 
refreshed, file installer will also be refreshed. And given the bad 
locking design in file installer, file installer will deadlock.
-- 

BJ Hargrave
Senior Technical Staff Member, IBM
OSGi Fellow and CTO of the OSGi Alliance
hargr...@us.ibm.com

office: +1 386 848 1781
mobile: +1 386 848 3788




From:   Raymond Auge <raymond.a...@liferay.com>
To:     Apache Felix Developers <d...@felix.apache.org>
Cc:     Equinox development mailing list <equinox-dev@eclipse.org>
Date:   2014/09/29 15:19
Subject:        Re: [equinox-dev] fileinstall & equinox solution
Sent by:        equinox-dev-boun...@eclipse.org



Ok here goes:

Using the following class:

https://gist.github.com/rotty3000/fcd47c42cb0a12141f52

compile and execute with:

java -classpath <latest-equinox> FIAndEquinoxTest

Once running, drop 
http://archive.apache.org/dist/felix/org.apache.felix.gogo.command-0.12.0.jar 
into the ${user.home}/osgi-deploydir

Get a stackdump using jstack (get pid from jps)

You'll see the very same result from the earlier dumps I posted.

NOTE: ODDLY, This only seems to happen with org.apache.felix.gogo.command.

On Mon, Sep 29, 2014 at 2:39 PM, Raymond Auge <raymond.a...@liferay.com> 
wrote:
I've reproduced the issue with a minimal impl. I'll post that shortly.

On Mon, Sep 29, 2014 at 1:53 PM, Jamie G. <jamie.goody...@gmail.com> 
wrote:
FileInstall and Equinox should be able to play nicely together - that
combination has been used in Apache Karaf deployments for a while...

Could you try out your scenario with a Karaf container with Equinox
set as its OSGi core?

--J

On Mon, Sep 29, 2014 at 2:57 PM, Raymond Auge <raymond.a...@liferay.com> 
wrote:
> Ok, so I did have:
>
> a) some fileinstall artifact handlers in a bundle being refreshed
> b) config admin bundle being refresh
>
> Both of those would probably have pulled FI into the fresh.
>
> However, I removed those (and delete the equinox state) but still get 
the
> same exact issue.
>
> On Mon, Sep 29, 2014 at 1:12 PM, Raymond Auge <raymond.a...@liferay.com>
> wrote:
>
>> Ok, sooo I think I understand the issue.
>>
>> We have a protocol handler deployed for fileinstall's custom artifact
>> handling.
>>
>> I guess that must be pulling FI into the fresh.
>>
>> I'll take that bundle out and see if I get the same problem or not.
>>
>> - Ray
>>
>> On Mon, Sep 29, 2014 at 1:06 PM, Raymond Auge <raymond.a...@liferay.com
>
>> wrote:
>>
>>> Sorry I forgot to mention I'm cross posting to felix list also.
>>>
>>> Anyhow, here is a stacktrace which shows the locking (search for
>>> fileinstall).
>>>
>>> - Ray
>>>
>>> On Mon, Sep 29, 2014 at 12:57 PM, BJ Hargrave <hargr...@us.ibm.com>
>>> wrote:
>>>
>>>> Is there a bug/issue with the details? I don't know any details here.
>>>> What is the "concurrency issue with package refresh"?
>>>> --
>>>>
>>>>  *BJ Hargrave*
>>>> Senior Technical Staff Member, IBM
>>>> OSGi Fellow and CTO of the *OSGi Alliance* <http://www.osgi.org/>
>>>> *hargr...@us.ibm.com* <hargr...@us.ibm.com>
>>>>
>>>> office: +1 386 848 1781
>>>> mobile: +1 386 848 3788
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> From:        Raymond Auge <raymond.a...@liferay.com>
>>>> To:        Equinox development mailing list <equinox-dev@eclipse.org
>,
>>>> Apache Felix Developers <d...@felix.apache.org>
>>>> Date:        2014/09/29 12:52
>>>> Subject:        [equinox-dev] fileinstall & equinox solution
>>>> Sent by:        equinox-dev-boun...@eclipse.org
>>>> ------------------------------
>>>>
>>>>
>>>>
>>>> Will there ever be a solution to the fileinstall on equinox issue?
>>>>
>>>> It seems that fileinstall has not worked on equinox for some time due 
to
>>>> the concurrency issue with package refresh.
>>>>
>>>> I believe 3.1.10 is the last version that works on equinox.
>>>>
>>>> --
>>>> *Raymond Augé* <http://www.liferay.com/web/raymond.auge/profile>
>>>>  (@rotty3000)
>>>> Senior Software Architect
>>>> *Liferay, Inc.* <http://www.liferay.com/> (@Liferay)
>>>> _______________________________________________
>>>> equinox-dev mailing list
>>>> equinox-dev@eclipse.org
>>>> To change your delivery options, retrieve your password, or 
unsubscribe
>>>> from this list, visit
>>>> https://dev.eclipse.org/mailman/listinfo/equinox-dev
>>>>
>>>>
>>>> _______________________________________________
>>>> equinox-dev mailing list
>>>> equinox-dev@eclipse.org
>>>> To change your delivery options, retrieve your password, or 
unsubscribe
>>>> from this list, visit
>>>> https://dev.eclipse.org/mailman/listinfo/equinox-dev
>>>>
>>>
>>>
>>>
>>> --
>>> *Raymond Augé* <http://www.liferay.com/web/raymond.auge/profile>
>>>  (@rotty3000)
>>> Senior Software Architect
>>> *Liferay, Inc.* <http://www.liferay.com> (@Liferay)
>>>
>>>
>>
>>
>> --
>> *Raymond Augé* <http://www.liferay.com/web/raymond.auge/profile>
>>  (@rotty3000)
>> Senior Software Architect
>> *Liferay, Inc.* <http://www.liferay.com> (@Liferay)
>>
>>
>
>
> --
> *Raymond Augé* <http://www.liferay.com/web/raymond.auge/profile>
>  (@rotty3000)
> Senior Software Architect
> *Liferay, Inc.* <http://www.liferay.com> (@Liferay)



-- 
Raymond Augé (@rotty3000)
Senior Software Architect
Liferay, Inc. (@Liferay)




-- 
Raymond Augé (@rotty3000)
Senior Software Architect
Liferay, Inc. (@Liferay)
_______________________________________________
equinox-dev mailing list
equinox-dev@eclipse.org
To change your delivery options, retrieve your password, or unsubscribe 
from this list, visit
https://dev.eclipse.org/mailman/listinfo/equinox-dev
_______________________________________________
equinox-dev mailing list
equinox-dev@eclipse.org
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://dev.eclipse.org/mailman/listinfo/equinox-dev

Reply via email to