[CONTROLLER-1389] Leveldbjni not available on ARM Created: 09/Jul/15 Updated: 25/Jul/23 Resolved: 15/Mar/19 |
|
| Status: | Resolved |
| Project: | controller |
| Component/s: | clustering |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | ||
| Reporter: | Jan-Simon Moeller | Assignee: | Unassigned |
| Resolution: | Duplicate | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Environment: |
Operating System: All |
||
| Issue Links: |
|
||||||||||||||||||||||||
| External issue ID: | 3973 | ||||||||||||||||||||||||
| Description |
|
odl-akka-leveldb pulls in leveldb which pulls in mvn:org.fusesource.leveldbjni/leveldbjni-all/1.8 This dependency fails with: As there is no nativ build for arm 32 and 64 bit available. This blocks deployment on non x86 machines like ARM 64 bit servers. See this entry: And this ML post: It is possible to compile for arm as this page shows: Its a feature request in the end - and for a external dependency. But it shows that we need to be careful with our dependencies! |
| Comments |
| Comment by Florin Dumitrascu [ 06/Oct/15 ] |
|
Hi Jan and all, Thanks for filling in this entry. Since then I have been able to build leveldb and corresponding JNI library on aarch64 target. It has been successfully tested in the last couple of months, running ODL Lithium on an APM server as part of a basic ARM 64bit OPNFV test lab (OpenStack controller including ODL + 3 compute nodes). I would gladly help to upstream this support, however I need some guidance on the release procedure (releasing leveldjni to Maven Central and integration with ODL). Looking forward to sync with you on this. Also, please add me to the CC list (in case Bugzilla will not do it). Best Regards, |
| Comment by Jan-Simon Moeller [ 28/Oct/15 ] |
|
@Florin: See https://git.opendaylight.org/gerrit/#/c/25693/ The infra is there, ping the RELENG/IT to make it happen. |
| Comment by Gary Wu [ 03/Nov/15 ] |
|
I've also added a commit that shows how to turn on the Java-only |
| Comment by Florin Dumitrascu [ 04/Nov/15 ] |
|
(In reply to Jan-Simon Moeller from comment #2) Many thanks Jan, I'll have a look at the Solaris example for reference. |
| Comment by Moiz Raja [ 04/Nov/15 ] |
|
Gary, To get leveldb java to work in karaf don't we need to also have the leveldb java bundle installed? Were you able to verify that leveldb java was used when we change the configuration? |
| Comment by Gary Wu [ 04/Nov/15 ] |
|
Hi Moiz, Yes, I did verify (via stack traces) that the Java-only leveldb was being used when the option is set. It looks like the Java-only leveldb (https://github.com/dain/leveldb) is already included by the Akka Persistence default plugin for leveldb. So, we don't need to package any additional bundles ourselves. |
| Comment by Moiz Raja [ 04/Nov/15 ] |
|
Thanks for confirming that Gary. |
| Comment by Jan-Simon Moeller [ 27/Nov/15 ] |
|
@Florin: just provide the instructions on how to build leveldbjni for arm here. IT can pick it up here and create the package. @Moiz/Gary: |
| Comment by Thanh Ha (zxiiro) [ 27/Nov/15 ] |
|
FWIW leveldbjni upstream project recently accepted our Solaris patch [1] which tells me they aren't completely dead. Just really slow. I think it'd be worth providing patches to them in hopes that they'll merge it and release a version we can consume in the future. To not block our own development though IT can rebuild and publish a custom version on nexus.opendaylight.org we just need instructions on how to build it as well as the source since we have to release source.jars with anything we push to Nexus, please provide that detail here. Once that's done I'd recommend opening a helpdesk ticket by sending email to helpdesk@opendaylight.org with a link back to this bug so that we can see the build instructions and history. |
| Comment by Gary Wu [ 01/Dec/15 ] |
|
We discussed this today at the Clustering Hackers Meeting. The consensus is that the right way to deal with the karaf feature dependency issue is with karaf 4.0 version which has the necessary features to address this type of dependency requirements. There is a pre-existing bug logged for the karaf upgrade here: Due to the time constraint and the potential impact, the karaf upgrade will likely be done in the Boron release. |
| Comment by Jan-Simon Moeller [ 03/Nov/16 ] |
|
Whats the status of this bug ? I see there is movement on the karaf front. Do we have a leveldbjni with arm meantime ? |
| Comment by Florin Dumitrascu [ 04/Nov/16 ] |
|
Hi Jan, Unfortunately I did not have the bandwidth to follow up on pushing leveldbjni for ARM (same as it was done for Solaris). In the meantime OPNFV for ARM builds it locally. |
| Comment by Michael Vorburger [ 06/Feb/17 ] |
|
> I would gladly help to upstream this support, however I need some Any such work would have to at least initially start via a Pull Request over on https://github.com/fusesource/leveldbjni, not here... You could jump on https://github.com/fusesource/leveldbjni/issues/76. But see also > how to turn on the Java-only implementation of leveldb, Do any of you actually use this alternative implemementation? To me, both the comment you put in c/29217 and looking myself at "dain/leveldb" doesn't look very serious... "currently the code base is basically functional, but only trivially tested" - if any of you have tested ODL with this, do let us know here please. |
| Comment by Robert Varga [ 14/Nov/18 ] |
|
I agree, there are a bunch of architectures supported upstream. ariel.adam, is there interest to support ARM on RH? If so, we really need an update to upstream and then we can pull the arches we need. |
| Comment by Stephen Kitt [ 14/Nov/18 ] |
|
For Red Hat products we rebuild from source anyway, so our downstream support doesn’t depend on the availability of binaries upstream. Currently we ship leveldbjni on ppc64le and x86_64. |