Hi, Thanks for reporting this.
It was clearly not intentional, LXC's policy with regard to liblxc is that we will add new symbols and append struct members but we will not modify or remove symbols nor add stuff in the middle of existing structs. Clearly we failed with regard to the lxc_container struct. Fixing the ordering in there will also unfortunately cause some additional breakage for people using LXC 1.1 but given it's still a reasonably recent release it's probably the least damaging solution. I'll send a patch to the list to fix lxc_container and add sufficiently clear comments in there that this hopefully won't happen again. As for downgrades, we don't really support those. Our intent is that something built against 1.0 will keep on working until 2.0 but if you're building on 1.1, then you're getting the new symbols from that release and the code won't work on 1.0 anymore. Linking against liblxc.so.1.1.0 specifically in that case is preferred. On Fri, May 29, 2015 at 04:34:18PM +0200, Lukasz Pawelczyk wrote: > Hi, > > We're using LXC in some of our projects and we've found that ABI gets > broken without soname changes. And I don't mean extended (where > versioning would be enough), I mean broken. > > Eg. this commit: > > 18aa217bb187b551206fe66075229ba382a1dbe4 > > It adds destroy_with_snapshots() function pointer inside a lxc_container > struct effectively breaking every application that's been linked with a > previous version and use pointers below that function. > > A quick diff between 1.0.0 and 1.1.2 shows that 2 functions in total has > been added in the middle of a struct: > destroy_with_snapshots() > snapshot_destroy_all() > > and 4 others at the end (that will cause problems in case of downgrades > without ABI versioning). > > The soname between 1.0 and 1.1 has not changed as far as I can see. > > Does this mean that LXC ABI is unreliable and can't be trusted? > > > -- > Lukasz Pawelczyk > Samsung R&D Institute Poland > Samsung Electronics -- Stéphane Graber Ubuntu developer http://www.ubuntu.com
signature.asc
Description: Digital signature
_______________________________________________ lxc-devel mailing list lxc-devel@lists.linuxcontainers.org http://lists.linuxcontainers.org/listinfo/lxc-devel