[Fedora-livecd-list] "Input/output error" and/or "Bus error" for most commands
Frederick Grose
fgrose at gmail.com
Fri Mar 8 23:55:19 UTC 2013
On Thu, Mar 7, 2013 at 10:41 AM, <John.Florian at dart.biz> wrote:
> > From: Frederick Grose <fgrose at gmail.com>
> > On Wed, Mar 6, 2013 at 3:59 PM, <John.Florian at dart.biz> wrote:
> <snip>
> > root at aos-61:46 # # Lets now make it all go wonky:
> > root at aos-61:46 # time dd if=/dev/zero of=/foo
> > Bus error
> >
> > real 1m15.775s
> > user 0m2.818s
> > sys 0m24.129s
> > root at aos-61:46 #
> > root at aos-61:46 # ls /root
> > -bash: /bin/ls: Input/output error
> > root at aos-61:46 # df -h
> > -bash: /usr/bin/df: Input/output error
> >
> > root at aos-61:46 # mount
> >
> > -bash: /usr/bin/mount: Input/output error
> >
> > root at aos-61:46 # cat /proc/meminfo
> >
> > -bash: /usr/bin/cat: Input/output error
> >
> >
> > Is this expected? Is there anything I can do, e.g., configuration-
> > wise, that can prevent this? Ideally this would fail much like any
> > other full disk situation. I understand that the overlay consumes
> > space, i.e., memory, for this file growth, including file removals,
> > but I'd at least like to be able to remotely reboot a system when in
> > this state, however I can't even do that because the reboot command
> > will either return the same I/O error or it may succeed but get the
> > I/O error when systemd tries to read
> /usr/lib/systemd/system/reboot.target.
> >
> > I dug around in bugzilla, but found nothing there. I can file a
> > bug, but which package is likely at fault here?
> > --
> > John Florian
> >
> > See https://fedoraproject.org/wiki/LiveOS_image for some background
> > and potential workarounds.
> >
> > --Fred --
>
>
> There's really not much on that page that helps me here. I'm trying to
> use Live images for a mostly-stateless embedded appliance OS deployed to
> hundreds or thousands of devices. I realize that the COW design is always
> going to be limited, but a more graceful failure mode is really needed,
> somehow. For our use, the biggest gain in stability here actually comes
> from systemd's journal with its trim-before-write approach instead of the
> legacy write now, trim asynchronously approach we used to have. However,
> that only covers one specific use case: logging. Writing to proper
> persistent storage allows me to avoid the root file system overlay, but
> most of these embedded devices use CF or SD cards for storage, which have
> limited write cycles that must be respected.
>
> Is there a way to implement an artificial capacity limit that would
> prevent processes from exhausting the overlay so that the reserve might be
> used for recording the event and rebooting back to a safer state?
>
> At the very least, I think this page could benefit from a little stronger,
> more explicit wording of this failure case. While it talks a little about
> some work-arounds, it actually says very little about why they are needed.
> Only in the "Overlay Recovery" section does it hint at the crash potential.
>
> --
> John Florian
>
Thank you for the review! I've updated the wiki page based on your
comments,
https://fedoraproject.org/wiki/LiveOS_image
Documenting that a temporary overlay is a 0.5 GiB sparse file in a RAM
filesystem gave me the idea to try using an overlay size greater than
available memory, and hope that kernel out-of-memory warnings would
intervene before the device-mapper filesystem invalidation.
I modified /usr/sbin/dmsquash-live-root in the initramfs to create a
temporary 500 GiB sparse overlay:
dd if=/dev/null of=/overlay bs=1024 count=1 seek=$((512*1024*1024)) 2>
/dev/null
Then after booting an updated, Fedora 18 Live desktop, LiveUSB read only
and running your failure demo,
time dd if=/dev/zero of=/foo
I got out-of-memory warnings after a file of about 450 MiB was written and
the command returned--no crash!
Some post test output:
[root at localhost ~]# dmsetup status
live-osimg-min: 0 8388608 snapshot 2584/2584 24
live-rw: 0 8388608 snapshot 921720/1073741824 3600
top - 18:11:53 up 17 min, 3 users, load average: 0.68, 0.75, 0.57
Tasks: 182 total, 2 running, 180 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.6 us, 1.6 sy, 0.0 ni, 96.5 id, 0.0 wa, 0.2 hi, 0.0 si,
0.0 st
KiB Mem: 3339812 total, 3260284 used, 79528 free, 316384 buffers
KiB Swap: 3341308 total, 0 used, 3341308 free, 1948108 cached
You might test this method in your systems and let us know how it works.
--Fred
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.fedoraproject.org/pipermail/livecd/attachments/20130308/309a3708/attachment.html>
More information about the livecd
mailing list