Hi everyone,
I have 2 major problems right now. I'm using the official karaf 3 release and felix as container implementation. Karaf is running on linux. The first problem i have is that i want to install certain features as boot features. These features are: webconsole,eventadmin,blueprintweb,jndi,obr. If i put these features into the featuresBoot list in org.apache.karaf.features.cfg, the web console is only showing the OSGI and WebConsole Tab, the Main tab and the event entry in the osgi tab are missing. After feature:uninstall and feature:install in the shell, everything works fine again. The second problem is much more problematic for me right now: If i do a forced shutdown of the VM I run Karaf on, all bundles i have installed via the WebConsole won't start up again. This happens when i run karaf as a service and when i start it manually. At first i thought it had something to do with blueprint, since most of my bundles are using it, but it also happens with the apache ace managementagent bundle. Most of the time the error looks like this: Unresolved constraint in bundle org.apache.ace.managementagent [166]: Unable to resolve 166.0: missing requirement [166.0] osgi.wiring.package; (&(osgi.wiring.package=org.osgi.service.deploymentadmin)(managementagent=true)(version>=1.0.0)(!(version>=2.0.0))). I get this error,too: ERROR: Error reloading cached bundle, removing it: /srv/apache-karaf-3.0.0/data/cache/bundle165 (java.lang.NullPointerException) which maybe leads to the missing requirements, but i did not get the NPE for every installed bundle. After restarting, the installed bundles are still in the cache-folder, but are not visible in the bundle list of the web-console or via the list command in the shell. In the log files every manually installed bundle is missing some requirements or is removed because of "Error reloading cached bundle". If i delete the bundles from the cache folder, restart the karaf service/server and install the bundles manually again, everything works fine. If i do not remove the bundles from the cache folder, it is not possible to install the bundles again manually, error message is: Cannot install or update bundle from /srv/apache-karaf-3.0.0/data/tmp/install116617036763718115.tmp org.osgi.framework.BundleException: Bundle installation rejected by hook. It seems that this does not happen with installed features, but only with manually deployed bundles. It's really sad, because I like Karaf 3 a lot more than geronimo, but i need a working restart in case of power loss. I will try to create more detailed stack traces. Workaround could be to: a)deploy the bundles into the system repository, so they will be seperated from the data folder/cache (this was working when using geronimo) or b)create a feature out of my bundles and add this feature to the boot features. Since I want to use Apache Ace for bundle provisioning, I'm not sure how these workarounds will work out long term. I have the feeling that using the bundle cache would greatly simplify things in this regard. Every help is appreciated. Thanks F.Aubele |
Hi Florin,
1/ regarding webconsole, it's because you have to install the plugins. If you take a look in the Karaf standard feature, you will see that you have a condition when installing the webconsole: the other webconsole plugins are installed (instance, features, gogo, http, scr, ...). So, when you install as a boot feature, you have to go through the condition. Try to put the webconsole at the end of the boot features set with in sync mode. 2/ regarding bundle, do you reproduce the issue if you: 2.1/ install a bundle (with bundle:install) 2.2/ restart Karaf I'm pretty sure you don't have issue here. Do you use OBR with ACE ? What's your ACE version ? By the way, did you evaluate other provisioning solution (Fabric, Cellar, Kalumet, ...) ? Thanks Regards JB On 01/20/2014 06:16 PM, F.Aubele wrote: > Hi everyone, > I have 2 major problems right now. I'm using the official karaf 3 release > and felix as container implementation. Karaf is running on linux. > The first problem i have is that i want to install certain features as boot > features. > These features are: > webconsole,eventadmin,blueprintweb,jndi,obr. > > If i put these features into the featuresBoot list in > org.apache.karaf.features.cfg, the web console is only showing the OSGI and > WebConsole Tab, the Main tab and the event entry in the osgi tab are > missing. After feature:uninstall and feature:install in the shell, > everything works fine again. > > The second problem is much more problematic for me right now: > If i do a forced shutdown of the VM I run Karaf on, all bundles i have > installed via the WebConsole won't start up again. This happens when i run > karaf as a service and when i start it manually. At first i thought it had > something to do with blueprint, since most of my bundles are using it, but > it also happens with the apache ace managementagent bundle. > > Most of the time the error looks like this: > > Unresolved constraint in bundle org.apache.ace.managementagent [166]: Unable > to resolve 166.0: missing requirement [166.0] osgi.wiring.package; > (&(osgi.wiring.package=org.osgi.service.deploymentadmin)(managementagent=true)(version>=1.0.0)(!(version>=2.0.0))). > > I get this error,too: > > ERROR: Error reloading cached bundle, removing it: > /srv/apache-karaf-3.0.0/data/cache/bundle165 > (java.lang.NullPointerException) > > which maybe leads to the missing requirements, but i did not get the NPE for > every installed bundle. > > After restarting, the installed bundles are still in the cache-folder, but > are not visible in the bundle list of the web-console or via the list > command in the shell. In the log files every manually installed bundle is > missing some requirements or is removed because of "Error reloading cached > bundle". > If i delete the bundles from the cache folder, restart the karaf > service/server and install the bundles manually again, everything works > fine. If i do not remove the bundles from the cache folder, it is not > possible to install the bundles again manually, error message is: > > Cannot install or update bundle from > /srv/apache-karaf-3.0.0/data/tmp/install116617036763718115.tmp > org.osgi.framework.BundleException: Bundle installation rejected by hook. > > It seems that this does not happen with installed features, but only with > manually deployed bundles. It's really sad, because I like Karaf 3 a lot > more than geronimo, but i need a working restart in case of power loss. > > I will try to create more detailed stack traces. > Workaround could be to: > a)deploy the bundles into the system repository, so they will be seperated > from the data folder/cache (this was working when using geronimo) or > b)create a feature out of my bundles and add this feature to the boot > features. > Since I want to use Apache Ace for bundle provisioning, I'm not sure how > these workarounds will work out long term. > I have the feeling that using the bundle cache would greatly simplify things > in this regard. > Every help is appreciated. > Thanks > F.Aubele > > > > > > > > -- > View this message in context: http://karaf.922171.n3.nabble.com/Problems-with-webconsole-and-bundle-cache-tp4031218.html > Sent from the Karaf - User mailing list archive at Nabble.com. > -- Jean-Baptiste Onofré [hidden email] http://blog.nanthrax.net Talend - http://www.talend.com |
Hi Florin, Besides the questions of JB, were you able to reproduce the same behavior with equinox as framework? Cause from this description plus your question at stackoverflow, it gives me the impression that the cache does get corrupted. Regards, Achim sent from mobile device Am 20.01.2014 18:44 schrieb "Jean-Baptiste Onofré" <[hidden email]>:
Hi Florin, |
@jb
webconsole: I'm not sure i understand you correctly. If i edit the location of webconsole in the org.apache.karaf.feaures.cfg, it changes nothing. I have the same problem, it does not matter if webconsole is at the beginning of featuresBoot, at the middle or at the end. Should I edit the standard-3.0.0-features.xml? Sorry if this question is really stupid :). featuresBootAsynchonous is set to false. bundle cache: switching the framework container to equinox seems to help. I ran a couple of test, trying manual file install via the "bundle:install file://"- command and installing bundles via the deploy folder, which worked with equinox and did not with felix, error was always like this: ERROR: Error reloading cached bundle, removing it: /srv/karaf-3.0.0/data/cache/bundle135 (java.lang.NullPointerException) java.lang.NullPointerException at org.apache.felix.framework.cache.BundleArchive.createRevisionFromLocation(BundleArchive.java:869) at org.apache.felix.framework.cache.BundleArchive.reviseInternal(BundleArchive.java:550) at org.apache.felix.framework.cache.BundleArchive.<init>(BundleArchive.java:226) at org.apache.felix.framework.cache.BundleCache.getArchives(BundleCache.java:247) at org.apache.felix.framework.Felix.init(Felix.java:705) at org.apache.karaf.main.Main.launch(Main.java:238) at org.apache.karaf.main.Main.main(Main.java:172) Like i said, using the deploy folder for bundle installation, i got the same results. Working with Equinox, not working with felix. I ran every test by force shutdown of the virtual machine on which karaf runs and manually starting karaf. I have not tested how things behave when using the service wrapper but will later today or tomorrow. After the forced shutdown i restarted the vm, and started karaf without clearing any cache. In between test i cleared the cache. Ace: I have just started with the provisioning part, and i'm not forced to use ACE. I got the idea from the book Enterprise OSGI in Action, and it sounded like exactly what i want: Provisioning and administering multiple targets from a central server. If there are better provisioning frameworks for my purpose I will try them out, thanks for your suggestions. I just thought since it is Apache, too, and kind of built for OSGi bundles, it seemed like a nice solution. I don't want something very complex, i have 1..n remote targets that should be provisioned with bundles from the same server. But i have to admit my knowledge about provisioning mechanisms in the OSGI World is very limited, i just wanted to try out and play around with the managementagent and the ace-server. For use in the production environment, I will have to spend a lot more time experimenting and upping my knowledge. The main problem is not the amount of bundles i want to provision, since for the foreseeable future, it will not be more than 5-10. But the amount of targets could become something in the hundreds, so if you have some more suggestions, I'm all open for it. @Achim: Seems Equinox works much better for me Regards Florin |
Florin, thanks for the testing with equinox, I think we might have an issue with the felix framework then. regards, Achim 2014/1/21 F.Aubele <[hidden email]> @jb Apache Karaf <http://karaf.apache.org/> Committer & PMC OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer & Project Lead OPS4J Pax for Vaadin <http://team.ops4j.org/wiki/display/PAXVAADIN/Home> Commiter & Project Lead blog <http://notizblog.nierbeck.de/> |
I agree. I know that a new Felix framework release is planned very soon.
I will try to reproduce Florin's issue. Regards JB On 01/21/2014 03:28 PM, Achim Nierbeck wrote: > Florin, > > thanks for the testing with equinox, I think we might have an issue with > the felix framework then. > > regards, Achim > > > 2014/1/21 F.Aubele <[hidden email] > <mailto:[hidden email]>> > > @jb > webconsole: > I'm not sure i understand you correctly. If i edit the location of > webconsole in the org.apache.karaf.feaures.cfg, it changes nothing. > I have > the same problem, it does not matter if webconsole is at the > beginning of > featuresBoot, at the middle or at the end. Should I edit the > standard-3.0.0-features.xml? Sorry if this question is really stupid :). > featuresBootAsynchonous is set to false. > > bundle cache: > switching the framework container to equinox seems to help. > I ran a couple of test, trying manual file install via the > "bundle:install > file://"- command and installing bundles via the deploy folder, > which worked > with equinox and did not with felix, error was always like this: > > ERROR: Error reloading cached bundle, removing it: > /srv/karaf-3.0.0/data/cache/bundle135 (java.lang.NullPointerException) > java.lang.NullPointerException > at > org.apache.felix.framework.cache.BundleArchive.createRevisionFromLocation(BundleArchive.java:869) > at > org.apache.felix.framework.cache.BundleArchive.reviseInternal(BundleArchive.java:550) > at > org.apache.felix.framework.cache.BundleArchive.<init>(BundleArchive.java:226) > at > org.apache.felix.framework.cache.BundleCache.getArchives(BundleCache.java:247) > at org.apache.felix.framework.Felix.init(Felix.java:705) > at org.apache.karaf.main.Main.launch(Main.java:238) > at org.apache.karaf.main.Main.main(Main.java:172) > > Like i said, using the deploy folder for bundle installation, i got > the same > results. Working with Equinox, not working with felix. I ran every > test by > force shutdown of the virtual machine on which karaf runs and manually > starting karaf. I have not tested how things behave when using the > service > wrapper but will later today or tomorrow. After the forced shutdown i > restarted the vm, and started karaf without clearing any cache. In > between > test i cleared the cache. > > Ace: > I have just started with the provisioning part, and i'm not forced > to use > ACE. I got the idea from the book Enterprise OSGI in Action, and it > sounded > like exactly what i want: > Provisioning and administering multiple targets from a central > server. If > there are better provisioning frameworks for my purpose I will try > them out, > thanks for your suggestions. I just thought since it is Apache, too, and > kind of built for OSGi bundles, it seemed like a nice solution. I > don't want > something very complex, i have 1..n remote targets that should be > provisioned with bundles from the same server. But i have to admit my > knowledge about provisioning mechanisms in the OSGI World is very > limited, i > just wanted to try out and play around with the managementagent and the > ace-server. For use in the production environment, I will have to > spend a > lot more time experimenting and upping my knowledge. The main problem is > not the amount of bundles i want to provision, since for the foreseeable > future, it will not be more than 5-10. But the amount of targets could > become something in the hundreds, so if you have some more > suggestions, I'm > all open for it. > > @Achim: Seems Equinox works much better for me > > Regards > Florin > > > > -- > View this message in context: > http://karaf.922171.n3.nabble.com/Problems-with-webconsole-and-bundle-cache-tp4031218p4031237.html > Sent from the Karaf - User mailing list archive at Nabble.com. > > > > > -- > > Apache Karaf <http://karaf.apache.org/> Committer & PMC > OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer > & Project Lead > OPS4J Pax for Vaadin <http://team.ops4j.org/wiki/display/PAXVAADIN/Home> > Commiter & Project Lead > blog <http://notizblog.nierbeck.de/> -- Jean-Baptiste Onofré [hidden email] http://blog.nanthrax.net Talend - http://www.talend.com |
Seems i have the same problem with equinox now, too, so maybe it is not felix dependend, but has something to do with the bundles, even if i am not sure what could be the cause. I will try to experiment some more.
|
Did you kill the Karaf Java process ?
Or just do a shutdown in the console ? Regards JB On 02/28/2014 01:01 PM, F.Aubele wrote: > Seems i have the same problem with equinox now, too, so maybe it is not > felix dependend, but has something to do with the bundles, even if i am not > sure what could be the cause. I will try to experiment some more. > > > > -- > View this message in context: http://karaf.922171.n3.nabble.com/Problems-with-webconsole-and-bundle-cache-tp4031218p4031978.html > Sent from the Karaf - User mailing list archive at Nabble.com. > -- Jean-Baptiste Onofré [hidden email] http://blog.nanthrax.net Talend - http://www.talend.com |
I killed (force shutdown) the virtual machine karaf is running on as service
|
So, you "stopped" the Windows service, right ?
Are you able to reproduce the problem if you start Karaf with bin/karaf and "cleanly" shutdown using system:shutdown ? Regards JB On 02/28/2014 01:42 PM, F.Aubele wrote: > I killed (force shutdown) the virtual machine karaf is running on as service > > > > -- > View this message in context: http://karaf.922171.n3.nabble.com/Problems-with-webconsole-and-bundle-cache-tp4031218p4031980.html > Sent from the Karaf - User mailing list archive at Nabble.com. > -- Jean-Baptiste Onofré [hidden email] http://blog.nanthrax.net Talend - http://www.talend.com |
I don't know if stopped is the right expression, i just kill the linux virtual machine, its like pulling out the power cord on the computer, sudden death so to speak. The problem only exists when doing a forced shutdown, normal system shutdown an startup are working fine.
|
Catcha,
and it makes sense. I'm able to reproduce the problem only at least by killing the JVM (brute kill ;)). Anyway, it's not a clean shutdown. I gonna take a look if I can improve it somehow in Felix Framework. Regards JB On 02/28/2014 02:30 PM, F.Aubele wrote: > I don't know if stopped is the right expression, i just kill the linux > virtual machine, its like pulling out the power cord on the computer, sudden > death so to speak. The problem only exists when doing a forced shutdown, > normal system shutdown an startup are working fine. > > > > -- > View this message in context: http://karaf.922171.n3.nabble.com/Problems-with-webconsole-and-bundle-cache-tp4031218p4031982.html > Sent from the Karaf - User mailing list archive at Nabble.com. > -- Jean-Baptiste Onofré [hidden email] http://blog.nanthrax.net Talend - http://www.talend.com |
I know its not a clean shutdown, but its super important for me that the system and bundles restart correctly after something like system reboot caused by power loss. if you could look into it would be greatly appreciated.
|
Actually, it's not really a Karaf issue, it's more an OSGi framework issue.
I understand your point. I will take a look on Felix framework. I keep you posted. Regards JB On 02/28/2014 02:49 PM, F.Aubele wrote: > I know its not a clean shutdown, but its super important for me that the > system and bundles restart correctly after something like system reboot > caused by power loss. if you could look into it would be greatly > appreciated. > > > > -- > View this message in context: http://karaf.922171.n3.nabble.com/Problems-with-webconsole-and-bundle-cache-tp4031218p4031984.html > Sent from the Karaf - User mailing list archive at Nabble.com. > -- Jean-Baptiste Onofré [hidden email] http://blog.nanthrax.net Talend - http://www.talend.com |
What is very strange is that i now did a clean install of karaf again, installed needed features, deployed all bundles via deploy folder, did a force shutdown and everything works fine after a restart (using equinox as framework). i can't really reproduce it, seems the bundle cache does not get corrupted everytime. just wanted to let you know.
|
It seems that Equinox is more "flexible" in term of "brute shutdown"
than Felix. Regards JB On 02/28/2014 03:01 PM, F.Aubele wrote: > What is very strange is that i now did a clean install of karaf again, > installed needed features, deployed all bundles via deploy folder, did a > force shutdown and everything works fine after a restart (using equinox as > framework). i can't really reproduce it, seems the bundle cache does not get > corrupted everytime. just wanted to let you know. > > > > -- > View this message in context: http://karaf.922171.n3.nabble.com/Problems-with-webconsole-and-bundle-cache-tp4031218p4031986.html > Sent from the Karaf - User mailing list archive at Nabble.com. > -- Jean-Baptiste Onofré [hidden email] http://blog.nanthrax.net Talend - http://www.talend.com |
Sadly I was using equinox before, too, so just switching the framework impl is not working. That is what i did in January, and till today i was thinking it had something to do with felix and using equinox would solve the problem, but nope. Seems like its a general osgi issue, like you said.
|
It could have to do with maybe write caching of changes to disk. Buffers maybe get flushed more often than one than the other. Either way, it's virtually impossible to prevent corruption in these circumstances unless you can put a UPC on the server. Otherwise, taking the stacktrace, determining the type of issue that occurred and taking corre tive action is the only option. Maybe I'll take a look at it for fun... if someone else solves it first then at least I'm more familiar with Felix, otherwise, maybe I can make another contribution. Ryan On Feb 28, 2014 9:18 AM, "F.Aubele" <[hidden email]> wrote:
Sadly I was using equinox before, too, so just switching the framework impl |
Free forum by Nabble | Edit this page |