Bug 20471

Summary: sets SOCK_CLOEXEC flag unconditionally thus breaking apps running on old kernels
Product: Sisyphus Reporter: Konstantin A Lepikhov (L.A. Kostis) <lakostis>
Component: libneonAssignee: Valery Inozemtsev <shrek>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: critical    
Priority: P3 CC: enp, george, shrek
Version: unstableKeywords: relnote
Hardware: all   
OS: Linux   
Attachments:
Description Flags
failed log none

Description Konstantin A Lepikhov (L.A. Kostis) 2009-06-17 00:42:35 MSD
see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=531338 for details - we have the similar situation now. BTW suggested workaround didn't help - I'm still unable to checkout anything.

example svn command:

[lakostis@svn]$ rpm -qa|fgrep subversion
subversion-1.6.0-alt3
subversion-perl-1.6.0-alt3
libsubversion-1.6.0-alt3
[lakostis@svn]$ rpm -qa|fgrep libneon
libneon-0.28.4-alt1
[lakostis@svn]$ svn co http://madwifi-project.org/svn/madwifi/branches/madwifi-hal-0.10.5.6 madwifi
svn: OPTIONS of 'http://madwifi-project.org/svn/madwifi/branches/madwifi-hal-0.10.5.6': could not connect to server (http://madwifi-project.org)

under i586 all working perfectly, so it's x86_64-specific bug.
Comment 1 Afanasov Dmitry 2009-06-17 01:08:58 MSD
к сожалению, у меня нет под рукой x86_64 для проверки, потому нужна будет помощь. пока буду пытать googe да trunk, вдруг зафиксили.
Comment 2 Konstantin A Lepikhov (L.A. Kostis) 2009-06-18 00:29:36 MSD
Increase priority according bug severity policy.
Comment 3 Mikhail Gusarov 2009-06-18 01:19:57 MSD
-> cri, per policy
Comment 4 Andrey Rahmatullin 2009-06-26 13:50:52 MSD
*** Bug 20597 has been marked as a duplicate of this bug. ***
Comment 5 enp 2009-06-26 14:59:34 MSD
Кстати, у меня это не x86_64-specific, на i586 воспроизвелось точно так же
Comment 6 Afanasov Dmitry 2009-06-26 15:25:21 MSD
что характерно, баги почему-то не наблюдаю:

$ rpm -qa | grep subversion
subversion-python-1.6.0-alt3    
libsubversion-1.6.0-alt3
subversion-1.6.0-alt3

$ rpm -q libneon           
libneon-0.28.4-alt1

по сути - сизиф от сегодняшнего числа

$ uname -m
x86_64
 
svn прекрасно отрабатывает:

$ svn co http://madwifi-project.org/svn/madwifi/branches/madwifi-hal-0.10.5.6 madwifi
A    madwifi/net80211/_ieee80211.h
A    madwifi/net80211/ieee80211_node.c
A    madwifi/net80211/ieee80211.h
...
Comment 7 Valery Inozemtsev 2009-06-26 15:29:13 MSD
i586. аналогично
Comment 8 enp 2009-06-26 16:29:35 MSD
и с http://svn.callweaver.org/callweaver/branches/rel/1.2/ тоже все утягивается?
Comment 9 Konstantin A Lepikhov (L.A. Kostis) 2009-06-26 16:45:50 MSD
[lakostis@virtualbox Documents]$ svn co http://madwifi-project.org/svn/madwifi/branches/madwifi-hal-0.10.5.6 madwifi
svn: OPTIONS of 'http://madwifi-project.org/svn/madwifi/branches/madwifi-hal-0.10.5.6': could not connect to server (http://madwifi-project.org)
[lakostis@virtualbox Documents]$ rpm -qa|fgrep libneon
libneon-0.28.4-alt1
[lakostis@virtualbox Documents]$ rpm -qa|fgrep subversion
subversion-1.6.0-alt3
libsubversion-1.6.0-alt3
[lakostis@virtualbox Documents]$ uname -m
x86_64
Comment 10 Afanasov Dmitry 2009-06-26 20:09:46 MSD
(В ответ на комментарий №8)
> и с http://svn.callweaver.org/callweaver/branches/rel/1.2/ тоже все
> утягивается?

да, и это тоже.

пока я не понимаю, в чем проблема :(
Comment 11 Valery Inozemtsev 2009-06-26 21:08:01 MSD
версии ядра и glibc какие?
Comment 12 Konstantin A Lepikhov (L.A. Kostis) 2009-06-26 23:40:26 MSD
(В ответ на комментарий №11)
> версии ядра и glibc какие?

[lakostis@yalt64 ~]$ rpm -qa|fgrep glibc
glibc-devel-2.10.1-alt4
glibc-core-2.10.1-alt4
glibc-preinstall-2.10.1-alt4
glibc-utils-2.10.1-alt4
glibc-nss-2.10.1-alt4
glibc-timezones-2.10.1-alt4
glibc-locales-2.10.1-alt4
glibc-2.10.1-alt4
glibc-kernheaders-2.6.29-alt3
glibc-pthread-2.10.1-alt4
glibc-gconv-modules-2.10.1-alt4
[lakostis@yalt64 ~]$ uname -a
Linux yalt64.vps 2.6.24-23-openvz #1 SMP Thu Apr 2 00:25:58 UTC 2009 x86_64 GNU/Linux
Comment 13 enp 2009-06-27 09:06:40 MSD
[enp@devel-i586 ~]$ rpm -qa | grep glibc
glibc-timezones-2.10.1-alt3
glibc-nss-2.10.1-alt3
glibc-kernheaders-2.6.29-alt3
glibc-preinstall-2.10.1-alt3
glibc-gconv-modules-2.10.1-alt3
glibc-locales-2.10.1-alt3
glibc-devel-2.10.1-alt3
glibc-doc-2.10.1-alt3
glibc-core-2.10.1-alt3
glibc-pthread-2.10.1-alt3
glibc-utils-2.10.1-alt3
glibc-2.10.1-alt3
[enp@devel-i586 ~]$ uname -r
2.6.18-ovz-smp-alt26.M40.2
[enp@devel-i586 ~]$ rpm -qa | grep subversion
subversion-perl-1.6.0-alt3
libsubversion-1.6.0-alt3
subversion-1.6.0-alt3
[enp@devel-i586 ~]$ rpm -qa | grep libneon
libneon-0.28.3-alt2

Последнюю уже откатил, ибо надо же как-то работать ...
Comment 14 Dmitry V. Levin 2009-06-27 14:31:09 MSD
Решил протестировать на текущем Сизифе:

$ uname -rm
2.6.18-ovz-rhel-alt7 x86_64
$ hsh --ini && hsh-install subversion && hsh-run -- sh -c 'cd && svn co http://madwifi-project.org/svn/madwifi/branches/madwifi-hal-0.10.5.6'
<13>Jun 27 10:19:56 rpmi: setup-2.2.12-alt1 installed
[...]
<13>Jun 27 10:20:41 rpmi: libneon-0.28.4-alt1 installed
[...]
<13>Jun 27 10:20:41 rpmi: subversion-1.6.0-alt3 installed
A    madwifi-hal-0.10.5.6/regression
[...]
Checked out revision 4066.

Т.е. с первого раза воспроизвести не удалось.
Comment 15 Konstantin A Lepikhov (L.A. Kostis) 2009-06-27 15:56:40 MSD
(В ответ на комментарий №14)
> Решил протестировать на текущем Сизифе:
> 
> $ uname -rm
> 2.6.18-ovz-rhel-alt7 x86_64
> $ hsh --ini && hsh-install subversion && hsh-run -- sh -c 'cd && svn co
> http://madwifi-project.org/svn/madwifi/branches/madwifi-hal-0.10.5.6'
> <13>Jun 27 10:19:56 rpmi: setup-2.2.12-alt1 installed
> [...]
> <13>Jun 27 10:20:41 rpmi: libneon-0.28.4-alt1 installed
> [...]
> <13>Jun 27 10:20:41 rpmi: subversion-1.6.0-alt3 installed
> A    madwifi-hal-0.10.5.6/regression
> [...]
> Checked out revision 4066.
> 
> Т.е. с первого раза воспроизвести не удалось.
$ hsh --ini && hsh-install subversion && hsh-run -- sh -c 'cd && svn co http://madwifi-project.org/svn/madwifi/branches/madwifi-hal-0.10.5.6'
...
<13>Jun 27 11:53:48 rpmi: libneon-0.28.4-alt1 installed
...
<13>Jun 27 11:53:48 rpmi: libsubversion-1.6.0-alt3 installed
<13>Jun 27 11:53:48 rpmi: subversion-1.6.0-alt3 installed
svn: OPTIONS of 'http://madwifi-project.org/svn/madwifi/branches/madwifi-hal-0.10.5.6': could not connect to server (http://madwifi-project.org)

$ uname -rm
2.6.26-ovz-smp-alt4 x86_64

Ща проверим и 2.6.27 из свежего сизифа.
Comment 16 Konstantin A Lepikhov (L.A. Kostis) 2009-06-27 16:10:25 MSD
(В ответ на комментарий №15)
> 
> Ща проверим и 2.6.27 из свежего сизифа.
На 2.6.27-ovz-smp-alt7 не воспроизводится. Будем вешать баг в bugzilla.openvz.org
Comment 17 Konstantin A Lepikhov (L.A. Kostis) 2009-06-27 16:34:25 MSD
Нет, похоже, баг все-таки в коде libneon - http://groups.google.com/group/linux.debian.bugs.dist/browse_thread/thread/2c2b252043a2618b/d11973af4f852a22?lnk=raot&pli=1
Comment 18 Valery Inozemtsev 2009-06-27 17:13:21 MSD
я не зря спрашивал версии ядра/glibc. могу положить в people src.rpm на попробовать
Comment 19 Dmitry V. Levin 2009-06-27 17:21:11 MSD
(In reply to comment #18)
> я не зря спрашивал версии ядра/glibc. могу положить в people src.rpm на
> попробовать

Давай ссылку на предполагаемый фикс, я посмотрю.
Comment 20 Dmitry V. Levin 2009-06-27 17:34:56 MSD
(In reply to comment #18)
> я не зря спрашивал версии ядра/glibc. могу положить в people src.rpm на
> попробовать

Если дело в SOCK_CLOEXEC, то его обычно тестирует и выставляет glibc'шный код.

К сожалению, у меня под рукой нет ядра без поддержки SOCK_CLOEXEC, чтобы проверить.

Нужен вывод команды
$ strace -esocket svn co http://madwifi-project.org/svn/madwifi/branches/madwifi-hal-0.10.5.6 >/dev/null
на ядре без поддержки SOCK_CLOEXEC
Comment 22 Dmitry V. Levin 2009-06-27 17:52:13 MSD
(In reply to comment #21)
> http://git.altlinux.org/people/shrek/packages/?p=neon.git;a=commitdiff;h=94cb410a51a288249a29d8ea88a743252fbedc3a

В libneon'овом svn в бранче 0.28.x есть 2 правдоподобных коммита на эту тему.
Думаю что лучше взять оба.
Comment 23 Dmitry V. Levin 2009-06-27 17:56:15 MSD
(In reply to comment #20)
> (In reply to comment #18)
> > я не зря спрашивал версии ядра/glibc. могу положить в people src.rpm на
> > попробовать
> 
> Если дело в SOCK_CLOEXEC, то его обычно тестирует и выставляет glibc'шный код.

В данном случае это самодеятельность libneon, исправленная в их svn.
Comment 24 Konstantin A Lepikhov (L.A. Kostis) 2009-06-27 19:19:08 MSD
(В ответ на комментарий №20)
> (In reply to comment #18)
> > я не зря спрашивал версии ядра/glibc. могу положить в people src.rpm на
> > попробовать
> 
> Если дело в SOCK_CLOEXEC, то его обычно тестирует и выставляет glibc'шный код.
> 
> К сожалению, у меня под рукой нет ядра без поддержки SOCK_CLOEXEC, чтобы
> проверить.
> 
> Нужен вывод команды
> $ strace -esocket svn co
> http://madwifi-project.org/svn/madwifi/branches/madwifi-hal-0.10.5.6 >/dev/null
> на ядре без поддержки SOCK_CLOEXEC
$ strace -esocket svn co http://madwifi-project.org/svn/madwifi/branches/madwifi-hal-0.10.5.6 > /dev/null
socket(PF_INET6, SOCK_STREAM, IPPROTO_IP) = 3
socket(PF_NETLINK, SOCK_RAW, 0)         = 3
socket(PF_FILE, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = -1 EINVAL (Invalid argument)
socket(PF_FILE, SOCK_STREAM, 0)         = 3
socket(PF_FILE, SOCK_STREAM, 0)         = 3
socket(PF_INET, SOCK_DGRAM|SOCK_NONBLOCK, IPPROTO_IP) = -1 EINVAL (Invalid argument)
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3
socket(PF_INET, SOCK_STREAM|SOCK_CLOEXEC, IPPROTO_TCP) = -1 EINVAL (Invalid argument)
svn: OPTIONS of 'http://madwifi-project.org/svn/madwifi/branches/madwifi-hal-0.10.5.6': could not connect to server (http://madwifi-project.org)
Comment 25 Repository Robot 2009-06-27 19:30:22 MSD
libneon-0.28.4-alt2 -> sisyphus:

* Sat Jun 27 2009 Valery Inozemtsev <shrek@altlinux> 0.28.4-alt2

- fixed forward compat with new-glibc/old kernel cases (closes: #20471)
Comment 26 Konstantin A Lepikhov (L.A. Kostis) 2009-06-27 20:31:51 MSD
Not too fast:

$ strace -esocket svn co http://madwifi-project.org/svn/madwifi/branches/madwifi-hal-0.10.5.6 > /dev/null
socket(PF_INET6, SOCK_STREAM, IPPROTO_IP) = 3
socket(PF_NETLINK, SOCK_RAW, 0)         = 3
socket(PF_FILE, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = -1 EINVAL (Invalid argument)
socket(PF_FILE, SOCK_STREAM, 0)         = 3
socket(PF_FILE, SOCK_STREAM, 0)         = 3
socket(PF_INET, SOCK_DGRAM|SOCK_NONBLOCK, IPPROTO_IP) = -1 EINVAL (Invalid argument)
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3
socket(PF_INET, SOCK_STREAM|SOCK_CLOEXEC, IPPROTO_TCP) = -1 EINVAL (Invalid argument)
svn: OPTIONS of 'http://madwifi-project.org/svn/madwifi/branches/madwifi-hal-0.10.5.6': could not connect to server (http://madwifi-project.org)
$ rpm --lastchange libneon
* Сбт Июн 27 2009 Valery Inozemtsev <shrek@altlinux.ru> 0.28.4-alt2
- fixed forward compat with new-glibc/old kernel cases (closes: #20471)
$ uname -mr
2.6.24-23-openvz x86_64
Comment 27 Dmitry V. Levin 2009-06-27 21:50:24 MSD
(In reply to comment #26)
> Not too fast:
> 
> $ strace -esocket svn co
> http://madwifi-project.org/svn/madwifi/branches/madwifi-hal-0.10.5.6 >
> /dev/null
> socket(PF_INET6, SOCK_STREAM, IPPROTO_IP) = 3
> socket(PF_NETLINK, SOCK_RAW, 0)         = 3
> socket(PF_FILE, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = -1 EINVAL (Invalid
> argument)
> socket(PF_FILE, SOCK_STREAM, 0)         = 3
> socket(PF_FILE, SOCK_STREAM, 0)         = 3
> socket(PF_INET, SOCK_DGRAM|SOCK_NONBLOCK, IPPROTO_IP) = -1 EINVAL (Invalid
> argument)
> socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3

This output definitely comes from libneon.

> socket(PF_INET, SOCK_STREAM|SOCK_CLOEXEC, IPPROTO_TCP) = -1 EINVAL (Invalid
> argument)

This output does not look like libneon's.
What about more detailed strace log?
Comment 28 Konstantin A Lepikhov (L.A. Kostis) 2009-06-28 00:06:50 MSD
Created attachment 3625 [details]
failed log
Comment 29 Konstantin A Lepikhov (L.A. Kostis) 2009-06-28 00:07:45 MSD
(В ответ на комментарий №28)
> Created an attachment (id=3625) [details]
> failed log

Attached detailed strace output.
Comment 30 Dmitry V. Levin 2009-06-28 00:36:18 MSD
It's still libneon error.
2shrek: Somehow you failed to apply the patch in specfile.
Comment 31 Konstantin A Lepikhov (L.A. Kostis) 2009-06-28 02:13:10 MSD
Fixed in 0.28.4-alt3.