Bug 1010

Summary: statically linked programs crash when ldap is used in nsswitch
Product: Sisyphus Reporter: den <denf>
Component: nss_ldapAssignee: Serge A. Volkov <vserge>
Status: CLOSED FIXED QA Contact:
Severity: critical    
Priority: P4 CC: boyarsh, imz, klark, ldv, shaba, slev, vitty, viy
Version: unstable   
Hardware: all   
OS: Linux   
Attachments:
Description Flags
0001010-getpwuid.c none

Description den 2002-06-17 12:45:47 MSD
rpm падает независимо от параметров когда в /etc/nsswitch.conf
passwd:     ldap files nisplus nis
shadow:     ldap tcb files nisplus nis
group:      ldap files nisplus nis

сам ldap при этом работает, и другие программы использующие его (ls, например) работают правильно
система - Master 2.0
---

---

Comment 1 Anton Farygin 2002-06-17 12:48:18 MSD
Присоединяюсь. Ошибка тянется уже почти год. Повторяется 100%.
Comment 2 Anton Farygin 2002-06-17 12:48:18 MSD
Присоединяюсь. Ошибка тянется уже почти год. Повторяется 100%.
Comment 3 Alexey Voinov 2002-06-17 20:22:39 MSD
В качестве workaround могу посоветовать запустить nscd.
Падения пропадают.

(А ошибка есть. Подтверждаю :))
Comment 4 Alexey Voinov 2002-06-17 20:22:39 MSD
В качестве workaround могу посоветовать запустить nscd.
Падения пропадают.

(А ошибка есть. Подтверждаю :))
Comment 5 Dmitry V. Levin 2002-06-17 21:07:54 MSD
Будьте добры backtrace.
По той информации, которая приведена, вообще ничего сказать нельзя.
Comment 6 Dmitry V. Levin 2002-06-17 21:07:54 MSD
Будьте добры backtrace.
По той информации, которая приведена, вообще ничего сказать нельзя.
Comment 7 den 2002-06-18 11:49:57 MSD
пересобрал nss_ldap с --enable-debugging
вот что получается:

Starting program: /bin/rpm 
[New Thread 1024 (LWP 19814)]
nss_ldap: ==&gt; _nss_ldap_enter
nss_ldap: &lt;== _nss_ldap_leave
nss_ldap: ==&gt; _nss_ldap_getbyname
nss_ldap: ==&gt; _nss_ldap_search_s
nss_ldap: ==&gt; do_open
nss_ldap: ==&gt; do_close_no_unbind
nss_ldap: &lt;== do_close_no_unbind (connection was not open)
nss_ldap: ==&gt; ldap_initialize

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1024 (LWP 19814)]
0x2adec64a in ?? ()
(gdb) bt
#0  0x2adec64a in ?? ()
#1  0x2aded020 in ?? ()
#2  0x2acdaa8f in ?? ()
#3  0x2adf1b83 in ?? ()
#4  0x2acdaf6e in ?? ()
#5  0x2acdbcc1 in ?? ()
#6  0x2adf1b83 in ?? ()
#7  0x2acdbc70 in ?? ()
#8  0x2acdbd66 in ?? ()
#9  0x2acbe5cf in ?? ()
#10 0x2acbded6 in ?? ()
#11 0x2acbfd5c in ?? ()
#12 0x2acc17be in ?? ()
#13 0x2aaf3857 in ?? ()
#14 0x2aaf3a17 in ?? ()
#15 0x2aaf2ba2 in ?? ()
#16 0x2aae1401 in ?? ()
#17 0x2aae1599 in ?? ()
#18 0x2aac6cdc in ?? ()
#19 0x2aac8189 in ?? ()
#20 0x2aac85d4 in ?? ()
#21 0x2aac9331 in ?? ()
#22 0x0815b7d9 in getpwuid_r ()
#23 0x0815b341 in getpwuid ()
#24 0x0806f6b5 in rpmSetDefaults () at rpmrc.c:497
#25 0x08071701 in rpmReadRC (rcfiles=0x0) at rpmrc.c:1594
#26 0x08071a7e in rpmReadConfigFiles (file=0x0, target=0x0) at rpmrc.c:1681
#27 0x0804854d in main (argc=1, argv=0x7ffff974) at rpmqv.c:401
#28 0x0812aaf0 in __libc_start_main ()
Comment 8 den 2002-06-18 11:49:57 MSD
пересобрал nss_ldap с --enable-debugging
вот что получается:

Starting program: /bin/rpm 
[New Thread 1024 (LWP 19814)]
nss_ldap: ==&gt; _nss_ldap_enter
nss_ldap: &lt;== _nss_ldap_leave
nss_ldap: ==&gt; _nss_ldap_getbyname
nss_ldap: ==&gt; _nss_ldap_search_s
nss_ldap: ==&gt; do_open
nss_ldap: ==&gt; do_close_no_unbind
nss_ldap: &lt;== do_close_no_unbind (connection was not open)
nss_ldap: ==&gt; ldap_initialize

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1024 (LWP 19814)]
0x2adec64a in ?? ()
(gdb) bt
#0  0x2adec64a in ?? ()
#1  0x2aded020 in ?? ()
#2  0x2acdaa8f in ?? ()
#3  0x2adf1b83 in ?? ()
#4  0x2acdaf6e in ?? ()
#5  0x2acdbcc1 in ?? ()
#6  0x2adf1b83 in ?? ()
#7  0x2acdbc70 in ?? ()
#8  0x2acdbd66 in ?? ()
#9  0x2acbe5cf in ?? ()
#10 0x2acbded6 in ?? ()
#11 0x2acbfd5c in ?? ()
#12 0x2acc17be in ?? ()
#13 0x2aaf3857 in ?? ()
#14 0x2aaf3a17 in ?? ()
#15 0x2aaf2ba2 in ?? ()
#16 0x2aae1401 in ?? ()
#17 0x2aae1599 in ?? ()
#18 0x2aac6cdc in ?? ()
#19 0x2aac8189 in ?? ()
#20 0x2aac85d4 in ?? ()
#21 0x2aac9331 in ?? ()
#22 0x0815b7d9 in getpwuid_r ()
#23 0x0815b341 in getpwuid ()
#24 0x0806f6b5 in rpmSetDefaults () at rpmrc.c:497
#25 0x08071701 in rpmReadRC (rcfiles=0x0) at rpmrc.c:1594
#26 0x08071a7e in rpmReadConfigFiles (file=0x0, target=0x0) at rpmrc.c:1681
#27 0x0804854d in main (argc=1, argv=0x7ffff974) at rpmqv.c:401
#28 0x0812aaf0 in __libc_start_main ()
Comment 9 Dmitry V. Levin 2002-06-18 13:51:29 MSD
It looks like nss_ldap problem...
Comment 10 Dmitry V. Levin 2002-06-18 13:51:29 MSD
It looks like nss_ldap problem...
Comment 11 den 2002-06-18 13:57:47 MSD
не исключено, конечно.. но ведь ВСЁ остальное как-то работает.. может ему все-таки какие-то параметры неправильно передаются?
Comment 12 den 2002-06-18 13:57:47 MSD
не исключено, конечно.. но ведь ВСЁ остальное как-то работает.. может ему все-таки какие-то параметры неправильно передаются?
Comment 13 Dmitry V. Levin 2002-06-18 14:18:52 MSD
Какие еще аргументы - судя по backtrace\'у, там ведь простой вызов getpwuid ().
Единственное отличие /bin/rpm от большинства других программ - он statically linked.

Попробуйте собрать (attached) тестовый файл getpwuid.c:
gcc getpwuid.c -o getpwuid -static
И проверить, работает ли в той же конфигурации, когда не работает rpm.
Comment 14 Dmitry V. Levin 2002-06-18 14:18:52 MSD
Какие еще аргументы - судя по backtrace\'у, там ведь простой вызов getpwuid ().
Единственное отличие /bin/rpm от большинства других программ - он statically linked.

Попробуйте собрать (attached) тестовый файл getpwuid.c:
gcc getpwuid.c -o getpwuid -static
И проверить, работает ли в той же конфигурации, когда не работает rpm.
Comment 15 den 2002-06-18 14:28:02 MSD
мало ли какие аргументы, environment, например.. вам виднее :)
аттач забыли прицепить
Comment 16 den 2002-06-18 14:28:02 MSD
мало ли какие аргументы, environment, например.. вам виднее :)
аттач забыли прицепить
Comment 17 den 2002-06-18 15:34:29 MSD
тест тоже падает
Comment 18 den 2002-06-18 15:34:29 MSD
тест тоже падает
Comment 19 Dmitry V. Levin 2002-06-18 18:50:13 MSD
Отлично, значит, rpm тут не причем, и к тому же найден простой тест.
За сим оставляю эту пробему mainainer\'у пакета nss_ldap.
Comment 20 Dmitry V. Levin 2002-06-18 18:50:13 MSD
Отлично, значит, rpm тут не причем, и к тому же найден простой тест.
За сим оставляю эту пробему mainainer\'у пакета nss_ldap.
Comment 21 Serge A. Volkov 2002-06-24 16:38:39 MSD
Сообщите пожалуйста версии пакетов, установленных в системе так как эта ошибка у меня не возобнивилась
Comment 22 Serge A. Volkov 2002-06-24 16:38:39 MSD
Сообщите пожалуйста версии пакетов, установленных в системе так как эта ошибка у меня не возобнивилась
Comment 23 den 2002-06-24 16:53:46 MSD
пробовал пакеты (openldap &amp; nss_ldap) из мастера и последние из сизифа, все одинаково.
Comment 24 den 2002-06-24 16:53:46 MSD
пробовал пакеты (openldap &amp; nss_ldap) из мастера и последние из сизифа, все одинаково.
Comment 25 Serge A. Volkov 2002-06-26 17:02:44 MSD
список пакето на моей машине:
glibc-nss-2.2.5-alt9
nss_ldap-194-alt1
nss_tcb-0.9.7.1-alt1
nscd-2.2.5-alt9
rpm-4.0.4-alt0.7
rpm-utils-0.4.3-alt1
rpm-build-4.0.4-alt0.7
librpm-4.0.4-alt0.7

результат работы тестовой программы :
# ll
-rwxr-xr-x    1 vserge   vserge     473857 Jun 24 16:35 getpwuid
drwxr-xr-x    2 vserge   vserge        104 Jun 24 16:35 ./
-rw-r--r--    1 vserge   vserge        155 Jun 24 16:34 getpwuid.c
# ./getpwuid 
getpwuid(0) = 0x80a5a20

Соответственно мне возпроизвести не удалось. 
Comment 26 Serge A. Volkov 2002-06-26 17:02:44 MSD
список пакето на моей машине:
glibc-nss-2.2.5-alt9
nss_ldap-194-alt1
nss_tcb-0.9.7.1-alt1
nscd-2.2.5-alt9
rpm-4.0.4-alt0.7
rpm-utils-0.4.3-alt1
rpm-build-4.0.4-alt0.7
librpm-4.0.4-alt0.7

результат работы тестовой программы :
# ll
-rwxr-xr-x    1 vserge   vserge     473857 Jun 24 16:35 getpwuid
drwxr-xr-x    2 vserge   vserge        104 Jun 24 16:35 ./
-rw-r--r--    1 vserge   vserge        155 Jun 24 16:34 getpwuid.c
# ./getpwuid 
getpwuid(0) = 0x80a5a20

Соответственно мне возпроизвести не удалось. 
Comment 27 den 2002-06-27 15:30:51 MSD
nss_ldap тот же, glibc-2.2.5-alt8, openldap-2.0.25-alt1
повторяемость 100%, но только при выключенном nscd, может он у вас запущен?
Comment 28 den 2002-06-27 15:30:51 MSD
nss_ldap тот же, glibc-2.2.5-alt8, openldap-2.0.25-alt1
повторяемость 100%, но только при выключенном nscd, может он у вас запущен?
Comment 29 Serge A. Volkov 2002-07-11 14:58:30 MSD
Не удалось возпроизвести.
Comment 30 Serge A. Volkov 2002-07-11 14:58:30 MSD
Не удалось возпроизвести.
Comment 31 Serge A. Volkov 2002-11-05 08:53:08 MSK
Удалось получит необходимую тестовую ситуацию!!!

Даже больше удалось создать такую конфигурацию, при которой система не дает возможности сделать login при этом nscd не запускается !!!
Comment 32 Serge A. Volkov 2002-11-05 08:53:08 MSK
Удалось получит необходимую тестовую ситуацию!!!

Даже больше удалось создать такую конфигурацию, при которой система не дает возможности сделать login при этом nscd не запускается !!!
Comment 33 Serge A. Volkov 2003-01-04 17:30:14 MSK
По документации параметр ldap в /etc/nssswitch.conf должен стоять вторым!!!

Проверьте пожалуйста работу системы с новым пакетом nss_ldap-203-alt2
Comment 34 Serge A. Volkov 2003-01-04 17:30:14 MSK
По документации параметр ldap в /etc/nssswitch.conf должен стоять вторым!!!

Проверьте пожалуйста работу системы с новым пакетом nss_ldap-203-alt2
Comment 35 Serge A. Volkov 2003-02-03 22:20:14 MSK
Внимательно записывайте параметры в nsswitch.conf
Comment 36 Serge A. Volkov 2003-02-03 22:20:14 MSK
Внимательно записывайте параметры в nsswitch.conf
Comment 37 Vano 2004-08-03 13:21:35 MSD
login,ls,vi,rpm,sudo crashed with

symbol lookup error: /lib/libnss_ldap.so.2: undefined symbol: __db185_open


-------------nsswitch.conf-------
passwd:     ldap files                                                         
              
shadow:     ldap tcb files                                                     
              
group:      ldap files                                                         
              
----------------------------------
nscd -- off
----------------------------------
nss_tcb-0.9.8.8-alt1
nss_ldap-220-alt1
glibc-nss-2.3.3.200406160000-alt1
glibc-nss-debug-2.3.3.200406160000-alt1
Comment 38 Vano 2004-08-03 20:47:57 MSD
Problem resolved 
when recompiled libdb4.2 with enabled %def_enable compat185

Comment 39 Serge A. Volkov 2004-08-05 12:06:49 MSD
Так у Вас что пакет libdb4.2 собственной сборки или из Сизифа?
Если из Сизифа, тогда имеет смыл отправить вопрос ldv?!