From: "Andrew V. Samoilov" <kai@cmail.ru>
To: Jamie Lokier <lk@tantalophile.demon.co.uk>,
"Andrew V. Samoilov" <kai@cmail.ru>,
linux-kernel@vger.kernel.org
Subject: Re: mmap successed but SIGBUS generated on access
Date: Wed, 19 Sep 2001 20:57:25 +0400 [thread overview]
Message-ID: <200109191657.f8JGvPJ06663@cmail.ru> (raw)
Hi, Jamie!
Thanks for an answer!
>> I have bad CD-R with a some number of unreadable
files.
>>
>> Then user-space program use mmap system it returns ok
but any
>> attempt to access a memory pointed by this system
call finishes
>> with SIGBUS. So Midnight Commander internal file
viewer faults.
>
>You can get the same problem even without read errors
with some
>configurations of NFS. (root mmaps a file owned by
someone else, but
>cannot read the file due to `root_squash' on server).
>
>It's not an error, it's standard behaviour.
Well.
>> Is there any way to detect such problem in user-space
without signal
>> handlers ?
>
>I don't think there is any way without a signal
handler.
>
>It is possible to do something useful with a signal
handler sometimes.
>For example, you can mmap() a zero page into the
offending page once
>you've got the fault address, or read() a zero page if
you did
>MAP_PRIVATE (this produces fewer VMAs), set a flag, and
let the program
>continue until it checks the flag and aborts the
parsing or whatever
>operation it's doing.
So, I must read all of the mapped area and even this
does not saves me of faulting next time if somebody
change file permission. Does I understand this situation
right?
>Unfortunately I don't think the signal handler's
si_errno is set
>properly to indicate the error. So another thing to
try is read() of
>the offending page, to get a useful error code. (And
if the read
>succeeds, that's ok because you did it at the correct
address so the
>program can proceed anyway).
>
>Fwiw, unfortunately not all versions of the kernel, or
all
>architectures, set si_addr properly for SIGBUS.
It's pity. But thanks again.
--
Regards,
Andrew.
____________________________________________
Играй в шахматы в Интернет на InstantChess.com!
Play chess on InstantChess.com !
www.instantchess.com
next reply other threads:[~2001-09-19 16:59 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-09-19 16:57 Andrew V. Samoilov [this message]
2001-09-19 22:51 ` Jamie Lokier
-- strict thread matches above, loose matches on Subject: below --
2001-09-19 10:36 Andrew V. Samoilov
2001-09-19 13:00 ` Jamie Lokier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200109191657.f8JGvPJ06663@cmail.ru \
--to=kai@cmail.ru \
--cc=linux-kernel@vger.kernel.org \
--cc=lk@tantalophile.demon.co.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®