Closed GoogleCodeExporter closed 8 years ago
The real issue at hand here is that the kernel support was added based on the
original streaming format. When lz4c dropped the -l flag, it effectively broke
an existing user. I realize that its also possible for the kernel to update to
the newer streaming format, but removing the possibility of using the legacy
format when existing users are still prevalent seems short sighted.
So, this "bug" ends up being more like a feature request. Would you be willing
to provide the legacy encoder in newer lz4 until the kernel code is consuming
the newer format?
Original comment by d...@falconindy.com
on 21 Dec 2013 at 3:47
I also got a kernel panic after Syslinux bootloader. I'm using kernel 3.13-rc4.
Original comment by serdotli...@gmail.com
on 22 Dec 2013 at 1:28
It works when the additional and undocumented compression option "-l" (legacy?)
is used for lz4 in the mkinitcpio.conf. I'm using Kernel 3.12.6 and lz4 109-2.
See: https://bbs.archlinux.org/viewtopic.php?pid=1362909#p1362909
Original comment by thorsten...@gmail.com
on 22 Dec 2013 at 2:28
There may be some confusion here.
lz4 (and lz4c) have always and still support the -l command.
-l is not documented, because it's not supposed to be used by "normal" (command
line) users.
I was under the expectation that Linux Kernel compression was done by scripts,
so the user should not need to manipulate directly this command.
Now, if not documenting the -l command is part of the reason for this
confusion, maybe this choice could be revisited.
Original comment by yann.col...@gmail.com
on 22 Dec 2013 at 4:18
Kernel compression isn't the issue at hand here. Rather, it's initramfs
creation. I'll point to mkinitcpio, dracut, and initramfs-tools. All of these
are shell-based programs to create initramfs images and, when combined, cover a
large number of popular linux distros -- Fedora, Ubuntu, Debian, OpenSUSE, and
Arch Linux, among them.
I think the major point of confusion here has been that the development of
kernel support appears to have been independent of this lz4 tools project. It's
unfortunate that there wasn't collaboration between the two camps. I'm not
trying to blame anyone or point fingers. It simply means we've found ourselves
in a less than ideal situation and now we need to address it in a way that,
hopefully, keeps everyone happy.
To that end, documenting the -l option would be fantastic for the sake of
giving it some sort of permanence. I realize that some day it should very well
go away, but unfortunately I suspect you're going to be stuck "maintaining" it
as long as the kernel can't consume the newer format. I'd like to see the
warnings that the -l option currently prints as documentation as well, rather
than runtime warnings.
Original comment by d...@falconindy.com
on 22 Dec 2013 at 6:27
I'll look into it
Original comment by yann.col...@gmail.com
on 22 Dec 2013 at 6:32
The following attached file is an early release candidate for r110
which integrates the comments from this thread.
- -l command is documented
+ in the advanced section of help within command line tool
+ in the man page
- associated warning message is only displayed in verbose mode
provided here for tests and comments
Original comment by yann.col...@gmail.com
on 22 Dec 2013 at 11:54
Looks good to me.
There's an entirely unrelated segfault due to an invalid use of free at
lz4cli.c:1252. The victim char* is never pointing to a heap allocation. This is
simple enough to trigger with 'lz4 infile outfile'.
Original comment by d...@falconindy.com
on 23 Dec 2013 at 12:17
Thanks for the test.
Indeed, I made the wrong assumption that using free() on an invalid pointer was
harmless.
The version in attached file should correct that.
Original comment by yann.col...@gmail.com
on 23 Dec 2013 at 12:32
Attachments:
-l switch documented into r110
Original comment by yann.col...@gmail.com
on 30 Dec 2013 at 5:23
Original issue reported on code.google.com by
stjohn.j...@gmail.com
on 21 Dec 2013 at 2:36