[samba-jp:19846] Re: winbindのメモリリークについて

c-ssugimoto @ hitachijoho.com c-ssugimoto @ hitachijoho.com
2007年 11月 16日 (金) 17:17:47 JST


小田切様レスポンスありがとうございます。
「top」コマンドで確認してみると、winbinddのプロセスだけが日々メモリ使用量が増加していました。また、「valgrind」ツールを使ったメモリリーク検出テストを行ってみたところ、メモリリークのバグがあることを検出しました。

話は変わりますが、11月15日付けで、Red Hat Networkのエラータでsambaの新しいバージョンがリリースされました。
公開されたのは以下のバージョンです。
 ・samba-3.0.25b-1.el4_6.2
 ・samba-common-3.0.25b-1.el4_6.2
 ・samba-client-3.0.25b-1.el4_6.2

ChangeLog に以下のようにありましたので、お客様にはメモリリークの問題があったと説明ができます。
* when "security = ads" was enabled, a memory leak caused the winbindd
process to consume memory until out-of-memory errors killed the windbind
process. Other processes may have been killed.

早速、検証マシンでsambaのバージョンを上げてみたところ、Windows ADドメインに参加できませんでした。大変未熟で申し訳ありませんが、どこが問題なのか解決ができませんのでお知恵を拝借したく。設定ファイルとログを記載しておきます。

【/etc/samba/smb.conf】
[global]
   workgroup = HITACHIINTRA
   log file = /var/log/samba/%m.log
   max log size = 50
   security = ADS
   password server = ad.mydomain.com 
   encrypt passwords = yes
   socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
   dns proxy = no 
   idmap uid = 10000-50000
   idmap gid = 10000-50000
   idmap backend = idmap_rid:MYDOMAIN=10000-50000
   allow trusted domains = no
   template shell = /bin/false
   winbind use default domain = yes
   realm = MYDOMAIN.COM
   netbios name = pop
   winbind cache time = 900
   winbind separator = @
   template homedir = /home/%U
   Obey pam restrictions = yes

【/etc/krb5.conf】
[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log
[libdefaults]
 default_realm = MYDOMAIN.COM
 dns_lookup_realm = false
 dns_lookup_kdc = false
[realms]
 MYDOMAIN.COM = {
  kdc = ad.mydomain.com
  admin_server = ad.mydomain.com
  default_domain = mydomain.com
 }
[domain_realm]
 .mydomain.com = MYDOMAIN.COM
 mydomain.com = MYDOMAIN.COM
[kdc]
 profile = /var/kerberos/krb5kdc/kdc.conf
[appdefaults]
 pam = {
   debug = false
   ticket_lifetime = 36000
   renew_lifetime = 36000
   forwardable = true
   krb4_convert = false
 }


【/etc/nsswitch.conf】
passwd:     files winbind
shadow:     files winbind
group:      files winbind
hosts:      files dns
bootparams: nisplus [NOTFOUND=return] files
ethers:     files
netmasks:   files
networks:   files
protocols:  files
rpc:        files
services:   files
netgroup:   files
publickey:  nisplus
automount:  files
aliases:    files nisplus




【samba 3.0.10-1.4E.12.2 でADドメインに参加した場合】
※問題なくドメイン参加でき、wbinfo -u でユーザ情報も取得できます。 
[root @ pop /]# service winbind start
Starting Winbind services:                                 [  OK  ]
[root @ pop /]# ntpdate ad.mydomain.com
16 Nov 16:20:22 ntpdate[5578]: adjust time server xxx.xxx.xxx.xxx offset -0.074711 sec
[root @ pop /]# kinit administrator @ MYDOMAIN.COM
Password for administrator @ MYDOMAIN.COM: xxxxxxxx
[root @ pop /]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator @ MYDOMAIN.COM
Valid starting     Expires            Service principal
11/16/07 16:20:22  11/17/07 02:53:29  krbtgt/MYDOMAIN.COM @ MYDOMAIN.COM
        renew until 11/17/07 16:20:22
Kerberos 4 ticket cache: /tmp/tkt0
klist: You have no tickets cached
[root @ pop /]# net ads join
Using short domain name -- MYDOMAIN
Joined 'pop' to realm 'MYDOMAIN.COM'

上記環境でのシステムログです。
Nov 16 16:20:22 pop winbind: winbindd startup succeeded
Nov 16 16:20:22 pop winbindd[5222]: [2007/11/16 16:20:22, 0] libsmb/cliconnect.c:cli_session_setup_spnego(764) 
Nov 16 16:20:22 pop winbindd[5222]:   Kinit failed: Client not found in Kerberos database 
Nov 16 16:20:22 pop winbindd[5222]: [2007/11/16 16:20:22, 0] libads/kerberos.c:ads_kinit_password(146) 
Nov 16 16:20:22 pop winbindd[5222]:   kerberos_kinit_password host/POP @ MYDOMAIN.COM failed: Client not found in Kerberos database 



【samba 3.0.25b-1.el4_6.2 でADドメインに参加した場合】
※エラーが出力されて、ドメインに参加できません。
 [root @ pop /]# service winbind start
Starting Winbind services:                                 [  OK  ]
[root @ pop /]# service winbind status
winbindd (pid 5333 5332) is running...
[root @ pop /]# ntpdate ad.mydomain.com
16 Nov 16:26:46 ntpdate[5344]: adjust time server xxx.xxx.xxx.xxx offset 0.014874 sec
[root @ pop /]# kinit administrator @ MYDOMAIN.COM
Password for administrator @ MYDOMAIN.COM: xxxxxxxx
[root @ pop /]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator @ MYDOMAIN.COM
Valid starting     Expires            Service principal
11/16/07 16:26:57  11/17/07 02:27:00  krbtgt/MYDOMAIN.COM @ MYDOMAIN.COM
        renew until 11/17/07 16:26:57
Kerberos 4 ticket cache: /tmp/tkt0
klist: You have no tickets cached
[root @ pop /]# net ads join
Password: xxxxxxxx
[2007/11/16 16:27:12, 0] libsmb/cliconnect.c:cli_session_setup_spnego(853)
  Kinit failed: Client not found in Kerberos database
Failed to join domain: Improperly formed account name

上記環境でのシステムログです。
Nov 16 16:26:31 pop winbindd[5332]: [2007/11/16 16:26:31, 0] nsswitch/winbindd_cache.c:initialize_winbindd_cache(2221) 
Nov 16 16:26:31 pop winbindd[5332]:   initialize_winbindd_cache: clearing cache and re-creating with version number 1 
Nov 16 16:26:31 pop winbind: winbindd startup succeeded
Nov 16 16:26:32 pop winbindd[5333]: [2007/11/16 16:26:32, 0] libsmb/cliconnect.c:cli_session_setup_spnego(853) 
Nov 16 16:26:32 pop winbindd[5333]:   Kinit failed: Client not found in Kerberos database 
Nov 16 16:26:32 pop winbindd[5332]: [2007/11/16 16:26:32, 0] libsmb/cliconnect.c:cli_session_setup_spnego(853) 
Nov 16 16:26:32 pop winbindd[5332]:   Kinit failed: Client not found in Kerberos database 
Nov 16 16:26:32 pop winbindd[5333]: [2007/11/16 16:26:32, 0] libads/kerberos.c:ads_kinit_password(228) 
Nov 16 16:26:32 pop winbindd[5333]:   kerberos_kinit_password POP$@MYDOMAIN.COM failed: Client not found in Kerberos database 
Nov 16 16:27:12 pop net: [2007/11/16 16:27:12, 0] libsmb/cliconnect.c:cli_session_setup_spnego(853) 
Nov 16 16:27:13 pop net:   Kinit failed: Client not found in Kerberos database




samba-jp メーリングリストの案内