[samba-jp:23144] Re: DebianでSambaを多重起動時に、4個目のSambaを起動すると全てのSambaが動かなくなる。

Hiroo Ono (小野寛生) hiroo.ono+freebsd @ gmail.com
2021年 8月 19日 (木) 00:25:18 JST


小野寛生です。

samba を分ける必要があるならですが(NIC別にドメインを変えたいからでしょうか?)、何かしらのリソース競合が起きているのだと思うので、競合個所を探るよりは、コンテナを複数使って
samba を分離して立ち上げてはどうでしょう。
FreeBSD だと vnet jail で各コンテナに一つずつネットワークデバイスを割り当てればよいのですが、Linux で docker
を使うと検索した限りではなんかもうちょっと面倒くさそうではあります。

では。

2021年8月18日(水) 21:44 shinke1987 <samba @ shinke1987.net>:
>
> 初めて投稿します。
> shinke1987と申します。
> 長文です、すいません。
> もし良ければ一緒に考えて頂けないでしょうか?
>
> 【 目的 】
> スタンドアロンのSambaを10個多重起動して、
> 誰でも読み書きできる共有フォルダを作成する。
> 10個のSambaは各LANポートに紐付けられる。
> (LANポートは10個あり、1個のLANポートに1個のSambaが接続待ちをする)
> LANポート①~⑤はSSD1を読み書き、LANポート⑥~⑩はSSD2を読み書き。
>
> 【 問題の概要 】
> Debian(10.10)でSamba(4.14.6 最新安定版)を多重起動しています。
> 3個目までは無事に多重起動できるのですが、4個目を起動すると
> 1~3個目の起動していたSambaも動かなくなります。
> その時4個目のプロセスは確認できません。
> ※ 【 問題の詳細 】を下に記載しています。
>
> 【 環境 】
> 2TBのSSDが2台、LANポート10個を載せたPC。
> OS:Debian(10.10)
> Samba:4.14.6
> LANポートそれぞれに違うIPアドレスを設定し、
> pingを使用して通信できることを確認済み。
> (192.168.1.80 ~ 192.168.1.89)
>
> 【 Sambaインストール手順と設定内容等 】
> Samba公式サイトのスクリプトを利用して、
> 必要なライブラリ等をaptを利用してインストールしました。
> スクリプトのURLは下記です。
> https://git.samba.org/?p=samba.git;a=blob_plain;f=bootstrap/generated-dists/debian10/bootstrap.sh;hb=v4-14-test
>
> configureは下記の内容で実行しました。
> ./configure --without-winbind --without-ldap --disable-iprint
> --without-pam --without-dnsupdate --without-ad-dc --without-ads
> その後$ make, $ sudo make installを実行し、通常のSambaは起動できました。
>
> それからconfファイルを次の10個用意しました。
> TempFileSrv1.conf
> TempFileSrv2.conf
> TempFileSrv3.conf
> TempFileSrv4.conf
> TempFileSrv5.conf
> TempFileSrv6.conf
> TempFileSrv7.conf
> TempFileSrv8.conf
> TempFileSrv9.conf
> TempFileSrv10.conf
>
> 内容の抜粋は下記の通りです。
> (長文になりすぎないように抜粋しています)
> ========== ここから ==========
> [global]
> netbios name = TempFileSrv1
> lock directory = /var/lock/TempFileSrv1
> pid directory = /var/run/TempFileSrv1
> interfaces = 192.168.1.80/24 eno1
> bind interfaces only = yes
> socket address = 192.168.1.80
> private dir = /usr/local/samba/private1
> workgroup = WORKGROUP1
> log file = /var/log/samba/log.TempFileSrv1.%m
> obey pam restrictions = no
> unix password sync = no
> [TempFileSrv1(SSD1)]
> path = /srv/SSD1/SSD1
> writable = yes
> guest ok = yes
> guest only = no
> ========== ここまで ==========
>
> bind interfaces onlyと
> obey pam restrictionsと
> unix password syncと
> writableと
> guest okと
> guest only以外は、それぞれに対応するものに変更しています。
> (対応する末尾の数値を変更したり、IPアドレスを対応するものにしたり、
> 対応するフォルダを作成・変更したり、pathを【 目的 】に書いてある通りに設
> 定したり。)
>
> 【 起動 】
> $ sudo /usr/local/samba/sbin/smbd -D -s /etc/samba/TempFileSrv1.conf
> $ sudo /usr/local/samba/sbin/smbd -D -s /etc/samba/TempFileSrv2.conf
> $ sudo /usr/local/samba/sbin/smbd -D -s /etc/samba/TempFileSrv3.conf
> $ sudo /usr/local/samba/sbin/smbd -D -s /etc/samba/TempFileSrv4.conf
>
> 【 問題の詳細 】
> 【 問題の概要 】に書いている、「動かなくなる」というのはWindowsから
> 1個目から3個目の共有フォルダへアクセスすると、(「ファイル名を指定して実
> 行」から「\\IPアドレス」を入力してアクセス)
> 「指定されたネットワーク名は使用できません」と表示されることを指します。
>
> 3個目までを起動した状態だと、
> 1個目~3個目までのSambaの共有フォルダをWindowsから確認できます。
> smbd3個分のプロセスが確認できます。
>
> 4個目を起動した後、
> $ ps aux | grep smbd
> で確認すると、4個目のプロセスが確認できません。
> 3個目までのプロセスはこの時点でも確認できます。
>
> /var/lockフォルダにも対応するファイルが4個存在します。
> /var/runフォルダにも対応するファイルが4個存在します。
>
> TempFileSrv[数値]というnetbios名のSambaが10個ありますが、
> それぞれを1個ずつ起動した場合は問題無く起動し、
> Windowsから共有フォルダが確認できます。
> ですが、どの順番で、どのSambaを選択しても、
> 必ず4個目でSambaが動かなくなります。
>
> この時の4個目のSambaのログ(log level = 10)の抜粋は下記の通りです。
> ========== ログここから ==========
> [2021/08/18 20:18:16.444727, 10, pid=999, effective(0, 0), real(0, 0)]
> ../../source3/smbd/smbXsrv_version.c:251(smbXsrv_version
> _global_init)
> [2021/08/18 20:18:16.444731,  1, pid=999, effective(0, 0), real(0, 0),
> class=rpc_parse] ../../librpc/ndr/ndr.c:429(ndr_print_de
> bug)
>         &global_blob: struct smbXsrv_version_globalB
>            version                  : SMBXSRV_VERSION_0 (0)
>            seqnum                   : 0x00000001 (1)
>            info                     : union smbXsrv_version_globalU(case 0)
>            info0                    : *
>                info0: struct smbXsrv_version_global0
>                    db_rec                   : NULL
>                    num_nodes                : 0x00000001 (1)
>                    nodes: ARRAY(1)
>                        nodes: struct smbXsrv_version_node0
>                            server_id: struct server_id
>                                pid                      :
> 0x00000000000003e7 (999)
>                                task_id                  : 0x00000000 (0)
>                                vnn                      : 0xffffffff
> (4294967295)
>                                unique_id                :
> 0xe84c84af2ba1a972 (-1707844270794102414)
>                            min_version              : SMBXSRV_VERSION_0 (0)
>                            max_version              : SMBXSRV_VERSION_0 (0)
>                            current_version          : SMBXSRV_VERSION_0 (0)
> [2021/08/18 20:18:16.445200,  0, pid=999, effective(0, 0), real(0, 0)]
> ../../lib/util/fault.c:172(smb_panic_log)
>    ===============================================================
> [2021/08/18 20:18:16.445209,  0, pid=999, effective(0, 0), real(0, 0)]
> ../../lib/util/fault.c:176(smb_panic_log)
>    INTERNAL ERROR: Signal 7: バスエラー in pid 999 (4.14.6)
> [2021/08/18 20:18:16.445215,  0, pid=999, effective(0, 0), real(0, 0)]
> ../../lib/util/fault.c:181(smb_panic_log)
>    If you are running a recent Samba version, and if you think this
> problem is not yet fixed in the latest versions, please consider
> reporting this bug, see https://wiki.samba.org/index.php/Bug_Reporting
> [2021/08/18 20:18:16.445221,  0, pid=999, effective(0, 0), real(0, 0)]
> ../../lib/util/fault.c:182(smb_panic_log)
>    ===============================================================
> [2021/08/18 20:18:16.445225,  0, pid=999, effective(0, 0), real(0, 0)]
> ../../lib/util/fault.c:184(smb_panic_log)
>    PANIC (pid 999): Signal 7: バスエラー in 4.14.6
> [2021/08/18 20:18:16.445310,  0, pid=999, effective(0, 0), real(0, 0)]
> ../../lib/util/fault.c:245(log_stack_trace)
>    BACKTRACE:
>     #0 log_stack_trace + 0x37 [ip=0x7fec84f1770e] [sp=0x7ffe099a7e60]
>     #1 smb_panic_log + 0x1b1 [ip=0x7fec84f1768a] [sp=0x7ffe099a8770]
>     #2 smb_panic + 0x18 [ip=0x7fec84f176a5] [sp=0x7ffe099a8790]
>     #3 fault_report + 0x8d [ip=0x7fec84f171bd] [sp=0x7ffe099a87b0]
>     #4 sig_fault + 0x15 [ip=0x7fec84f171d2] [sp=0x7ffe099a8860]
>     #5 funlockfile + 0x50 [ip=0x7fec8461b730] [sp=0x7ffe099a8880]
>     #6 pthread_mutex_init + 0x59 [ip=0x7fec84612ee9] [sp=0x7ffe099a8f30]
>     #7 tdb_mutex_init + 0xfc [ip=0x7fec83dd44bc] [sp=0x7ffe099a8f70]
>     #8 tdb_new_database + 0x297 [ip=0x7fec83dcca5c] [sp=0x7ffe099a8fc0]
>     #9 tdb_open_ex + 0x969 [ip=0x7fec83dcd708] [sp=0x7ffe099a9010]
>     #10 tdb_wrap_private_open + 0xd3 [ip=0x7fec837c1617] [sp=0x7ffe099a91e0]
>     #11 tdb_wrap_open + 0xee [ip=0x7fec837c17f5] [sp=0x7ffe099a9250]
>     #12 db_open_tdb + 0x1af [ip=0x7fec83de62be] [sp=0x7ffe099a9290]
>     #13 dbwrap_local_open + 0x4b [ip=0x7fec83de6616] [sp=0x7ffe099a9370]
>     #14 db_open + 0x465 [ip=0x7fec84a57e42] [sp=0x7ffe099a93c0]
>     #15 locking_init_internal + 0xa7 [ip=0x7fec84d24497] [sp=0x7ffe099a9440]
>     #16 locking_init + 0xe [ip=0x7fec84d245fd] [sp=0x7ffe099a9490]
>     #17 main + 0x1028 [ip=0x5598f92aa708] [sp=0x7ffe099a94a0]
>     #18 __libc_start_main + 0xeb [ip=0x7fec8446c09b] [sp=0x7ffe099a9870]
>     #19 _start + 0x2a [ip=0x5598f92a108a] [sp=0x7ffe099a9930]
> [2021/08/18 20:18:16.454287,  0, pid=999, effective(0, 0), real(0, 0)]
> ../../source3/lib/util.c:839(smb_panic_s3)
>    smb_panic(): calling panic action [/usr/share/samba/panic-action 999]
> sh: 1: /usr/share/samba/panic-action: not found
> [2021/08/18 20:18:16.455347,  0, pid=999, effective(0, 0), real(0, 0)]
> ../../source3/lib/util.c:847(smb_panic_s3)
>    smb_panic(): action returned status 127
> [2021/08/18 20:18:16.455366,  0, pid=999, effective(0, 0), real(0, 0)]
> ../../source3/lib/dumpcore.c:315(dump_core)
>    dumping core in /usr/local/samba/var/cores/smbd
> ========== ログここまで ==========
>
> ※ /usr/local/samba/var/cores/smbdフォルダにはログファイルはありませんで
> した。
>
>
> 【 試したこと① 】
> confファイルの[global]に、次の1行を追加して、対応するフォルダを用意した。
> passdb backend = tdbsam:/usr/local/samba/private1/passdb1.tdb
> ※ 数値はそれぞれ変更しています。(例:TempFileSrv3.confなら、private3
> フォルダ、passdb3.tdbファイル。)
> 結果:Internal Error Signal 7: バスエラー、と表示され変わらなかった。
>
> 【 試したこと② 】
> もう1つのSambaを別の場所に(configureのprefixを指定することで)
> インストールして4個目のみ違うSambaを実行してみた。
> # /usr/local/samba/sbin/smbd -D -s /etc/samba/TempFileSrv1.conf
> # /usr/local/samba/sbin/smbd -D -s /etc/samba/TempFileSrv2.conf
> # /usr/local/samba/sbin/smbd -D -s /etc/samba/TempFileSrv3.conf
> # /usr/local/samba2/sbin/smbd -D -s /etc/samba/TempFileSrv4.conf
> とやって起動してみたけど、
> 結果:Internal Error Signal 7: バスエラー、と表示され変わらなかった。
>
> 【 最後に 】
> ログを見ると、Internal Error Signal 7: バスエラー
> と表示されていますが、検索してみても何が悪いのかわかりません。
> 他に試すことも思いつかず、手詰まりの状態です。
> DebianのaptからインストールできるSamba(4.9.5-Debian)でも同じでした。
> これを試してみて、ここを確認してみて、この情報出してみて、等あれば教えて
> 頂けないでしょうか?
> 教えて君で申し訳ないのですが、もしよろしければ一緒に考えて・教えて頂ける
> と助かります。
>
> ※ 下記ページを読むとソースコード読めよ!って書かれてますが、
>    やっぱりそれぐらいやらないとダメなのかな…。解決しなかったら考えよう…。
>   http://www.samba.gr.jp/project/translation/Samba3-HOWTO/cfgsmarts.html


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