1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00
LVM2 mirror repository https://sourceware.org/lvm2/
Go to file
Petr Rockai 9b2800e861 Fix a double close in clvmd.
The management threads (main_loop, the socket thread) could close a single fd
twice in a row sometimes. At least one other thread can be running at the same
time as the threads doing the double close. That one running thread also
happens to do some IO (namely, open /proc/devices, read from it, close it). If
there was enough "demand" for the local socket, this could happen:

- a connection to clvmd is about to finish, let's say the fd is 13 (it often
  happens to be in my test script, don't ask why)
- the local_sock thread calls close(13)
- the lvm thread calls open("/proc/devices"...) and gets 13
- the main_loop thread calls close(13) [OOPS!]
- new connection arrives, and is accept'd by a (new) local_sock thread
- the accept gives an fd of 13 (since it's the lowest free fd at this point)
- the lvm thread gets around to read from it's /proc/devices handle... 13,
  again
- the lvm thread hangs forever trying to read from the socket instead of
  /proc/devices

Signed-off-by: Petr Rockai <prockai@redhat.com>
Reviewed-by: Milan Broz <mbroz@redhat.com>
2010-10-27 09:13:37 +00:00
autoconf extended configure with --enable-profiling for compiling code with gcov info 2008-06-27 15:35:09 +00:00
daemons Fix a double close in clvmd. 2010-10-27 09:13:37 +00:00
doc Add global/metadata_read_only to use unrepaired metadata in read-only cmds. 2010-10-25 11:20:54 +00:00
include Refactor metadata.[ch] into lv.[ch] for lv functions. 2010-09-30 13:05:45 +00:00
lib Macro uninitialized_var gives warnings in static analysis 2010-10-26 10:04:34 +00:00
libdm Use static indentifier for internal functions 2010-10-26 08:59:05 +00:00
liblvm Add lvm_lv_get_property() generic function to obtain value of any lv propert 2010-10-25 14:09:08 +00:00
man Fixes for the devices/disable_after_error_count documentation. 2010-10-15 16:24:00 +00:00
old-tests Move tests from old-tests/regex to unit-tests/regex. unit-tests will 2010-07-20 15:18:57 +00:00
po INSTALL rules updates 2010-04-09 21:42:48 +00:00
report-generators add copyright notices to new files 2010-07-28 12:20:38 +00:00
reports [REPORT-GENERATORS] cut down stylsheet.css to what we actually use 2010-07-21 10:00:38 +00:00
scripts Add support for noninterctive shell execution 2010-10-08 15:02:05 +00:00
test Use a more generous timeout for dmeventd in t-lvconvert-repair-dmeventd. 2010-10-26 12:53:07 +00:00
tools Fix vgchange to process -a, --refresh, --monitor and --poll like lvchange. 2010-10-26 01:37:59 +00:00
udev Fix udev rules to support udev database content generated by older rules. 2010-08-12 13:41:18 +00:00
unit-tests [MM] Make valgrind aware of the pool allocators 2010-08-09 10:56:01 +00:00
configure Update configure after last change. 2010-08-23 13:44:31 +00:00
configure.in Don't use floor() in _bitset_with_random_bits 2010-10-13 12:18:53 +00:00
COPYING Outline docs 2001-12-31 16:12:40 +00:00
COPYING.LIB Fix inconsistent licence notices: executables are GPLv2; libraries LGPLv2.1. 2007-08-20 20:55:30 +00:00
INSTALL quick review of docs 2008-11-04 17:49:22 +00:00
make.tmpl.in Allow CC to be overridden at build time (for 'scan-build make'). 2010-10-07 16:33:34 +00:00
Makefile.in [MM] Make valgrind aware of the pool allocators 2010-08-09 10:56:01 +00:00
README quick review of docs 2008-11-04 17:49:22 +00:00
VERSION post-release 2010-10-25 16:38:20 +00:00
VERSION_DM post-release 2010-10-25 16:38:20 +00:00
WHATS_NEW Fix NULL pointer dereference for too large MDA error path 2010-10-26 09:13:13 +00:00
WHATS_NEW_DM post-release 2010-10-25 16:38:20 +00:00

This tree contains the LVM2 and device-mapper tools and libraries.

For more information about LVM2 read the changelog in the WHATS_NEW file.
Installation instructions are in INSTALL.

There is no warranty - see COPYING and COPYING.LIB.

Tarballs are available from:
  ftp://sources.redhat.com/pub/lvm2/

To access the CVS tree use:
  cvs -d :pserver:cvs@sources.redhat.com:/cvs/lvm2 login
  CVS password: cvs
  cvs -d :pserver:cvs@sources.redhat.com:/cvs/lvm2 co LVM2

Mailing list for general discussion related to LVM2:
  linux-lvm@redhat.com
  Subscribe from https://www.redhat.com/mailman/listinfo/linux-lvm

Mailing list for LVM2 development, patches and commits:
  lvm-devel@redhat.com
  Subscribe from https://www.redhat.com/mailman/listinfo/linux-lvm

Mailing list for device-mapper development, including kernel patches
and multipath-tools:
  dm-devel@redhat.com
  Subscribe from https://www.redhat.com/mailman/listinfo/dm-devel