Samba 4.1.6 Segfaults em 14.04 LTS

2

Minha pasta de rede Samba se desconecta nas caixas do Windows 7 sempre que eu uso o Windows Explorer para abrir um arquivo. Os ícones da pasta ficam cinza por um minuto, antes de se tornarem disponíveis novamente. No entanto, os mesmos arquivos sempre podem ser lidos programaticamente em scripts Python etc.

Todas as máquinas com o Windows 7 na minha rede são afetadas, exceto por uma VM do VirtualBox do Windows 7 que reside no servidor Ubuntu (que hospeda o Samba). Atualmente não há autenticação, ou seja, todos os hóspedes podem ler e escrever uma vez conectados. A permissão de pasta compartilhada é 777.

O snippet de log do Samba abaixo confirma que recebo segfaults sempre que a unidade de rede é desconectada. Foi-me dito que poderia ser o não resolvido Bug # 913809 , e a descrição mais próxima que eu encontrado é esta discussão holandesa . Definir um nome de host totalmente qualificado não ajuda.

Além disso, em TODAS as caixas do Windows 7 (VM e não-VM), também vejo muitos erros de permissão de permissão do arquivo stat. Eles são aparentemente benignos porque eu ainda os recebo em grande quantidade na VM do Windows 7 que não sofre com o segfault / disconnect. Mas eu não sei se eles estão relacionados aos segfaults. Esses erros são originários de:

../source3/param/loadparm.c:4365(process_usershare_file)

Sem atualizar o 14.04 LTS, qual é o método mais seguro para testar uma versão mais recente do Samba (para ver se o problema desaparece)? Não tenho conhecimento de binários do Samba para download no Ubuntu, e parece que as pessoas apenas desinstalam manualmente o Samba e recompilam a partir do código-fonte?

Para resumir: meu Samba "funciona" a maior parte do tempo até que eu tento dar um clique duplo em um arquivo no Windows Explorer. Navegação e leitura de arquivos programáticos sempre funcionam bem. Samba apenas segfaults em computadores com Windows 7 na rede local que conversam com o servidor Ubuntu / Samba. Ele funciona e nunca segfaults no Windows 7 VM que fica no servidor Ubuntu / Samba, exceto que eu recebo o fluxo desconcertante de stat do arquivo "permissão negada" erros no log.

Aqui está o segfault:

===============================================================
[2015/03/17 11:12:51.861983,  0] ../lib/util/fault.c:73(fault_report)
  INTERNAL ERROR: Signal 11 in pid 10219 (4.1.6-Ubuntu)
  Please read the Trouble-Shooting section of the Samba HOWTO
[2015/03/17 11:12:51.862024,  0] ../lib/util/fault.c:75(fault_report)
  ===============================================================
[2015/03/17 11:12:51.862049,  0] ../source3/lib/util.c:785(smb_panic_s3)
  PANIC (pid 10219): internal error
[2015/03/17 11:12:51.863249,  0] ../source3/lib/util.c:896(log_stack_trace)
  BACKTRACE: 27 stack frames:
   #0 /usr/lib/x86_64-linux-gnu/libsmbconf.so.0(log_stack_trace+0x1a) [0x7f4fb8ffdf3a]
   #1 /usr/lib/x86_64-linux-gnu/libsmbconf.so.0(smb_panic_s3+0x20) [0x7f4fb8ffe010]
   #2 /usr/lib/x86_64-linux-gnu/libsamba-util.so.0(smb_panic+0x2f) [0x7f4fba526c6f]
   #3 /usr/lib/x86_64-linux-gnu/libsamba-util.so.0(+0x1ae86) [0x7f4fba526e86]
   #4 /lib/x86_64-linux-gnu/libpthread.so.0(+0x10340) [0x7f4fba74e340]
   #5 /lib/x86_64-linux-gnu/libc.so.6(strlen+0x2a) [0x7f4fb76ac56a]
   #6 /usr/lib/x86_64-linux-gnu/libsamba-util.so.0(push_ucs2_talloc+0x1e) [0x7f4fba52bc1e]
   #7 /usr/lib/x86_64-linux-gnu/samba/libcliauth.so.0(E_md4hash+0x1e) [0x7f4fb9b198fe]
   #8 /usr/lib/x86_64-linux-gnu/samba/libsmbd_base.so.0(create_volume_objectid+0x3a) [0x7f4fba0e2b7a]
   #9 /usr/lib/x86_64-linux-gnu/samba/libsmbd_base.so.0(+0x1c428b) [0x7f4fba1c528b]
   #10 /usr/lib/x86_64-linux-gnu/samba/libsmbd_base.so.0(smb_vfs_call_fsctl+0x58) [0x7f4fba104c88]
   #11 /usr/lib/x86_64-linux-gnu/samba/libsmbd_base.so.0(smb2_ioctl_filesys+0x76) [0x7f4fba137bb6]
   #12 /usr/lib/x86_64-linux-gnu/samba/libsmbd_base.so.0(smbd_smb2_request_process_ioctl+0x7ee) [0x7f4fba1377ce]
   #13 /usr/lib/x86_64-linux-gnu/samba/libsmbd_base.so.0(smbd_smb2_request_dispatch+0xbcd) [0x7f4fba128f5d]
   #14 /usr/lib/x86_64-linux-gnu/samba/libsmbd_base.so.0(+0x128c8b) [0x7f4fba129c8b]
   #15 /usr/lib/x86_64-linux-gnu/samba/libsmbd_base.so.0(+0x1298fc) [0x7f4fba12a8fc]
   #16 /usr/lib/x86_64-linux-gnu/libsmbconf.so.0(run_events_poll+0x16c) [0x7f4fb90140ac]
   #17 /usr/lib/x86_64-linux-gnu/libsmbconf.so.0(+0x37300) [0x7f4fb9014300]
   #18 /usr/lib/x86_64-linux-gnu/libtevent.so.0(_tevent_loop_once+0x8d) [0x7f4fb79ec5ed]
   #19 /usr/lib/x86_64-linux-gnu/samba/libsmbd_base.so.0(smbd_process+0x9ca) [0x7f4fba1165ca]
   #20 smbd(+0x9fa4) [0x7f4fbab8afa4]
   #21 /usr/lib/x86_64-linux-gnu/libsmbconf.so.0(run_events_poll+0x16c) [0x7f4fb90140ac]
   #22 /usr/lib/x86_64-linux-gnu/libsmbconf.so.0(+0x37300) [0x7f4fb9014300]
   #23 /usr/lib/x86_64-linux-gnu/libtevent.so.0(_tevent_loop_once+0x8d) [0x7f4fb79ec5ed]
   #24 smbd(main+0x13eb) [0x7f4fbab87b8b]
   #25 /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7f4fb7644ec5]
   #26 smbd(+0x6f1d) [0x7f4fbab87f1d]

Este é um exemplo de um arquivo usershares em uso. Acho que foi criado automaticamente pela GUI quando você navega na pasta de destino para ativar o compartilhamento.

$ cat /var/lib/samba/usershares/foobar    
#VERSION 2
path=/data/foobar
comment=
usershare_acl=S-1-1-0:f
guest_ok=y
sharename=foobar

E aqui está o samba.conf padrão.

#=================================================================
[global]

## Browsing/Identification ###
   workgroup = WORKGROUP
    server string = %h server (Samba, Ubuntu)
;   wins server = w.x.y.z
   dns proxy = no

#### Networking ####
;   interfaces = 127.0.0.0/8 eth0
;   bind interfaces only = yes

#### Debugging/Accounting ####
   log file = /var/log/samba/log.%m
   max log size = 1000
   syslog = 0
   panic action = /usr/share/samba/panic-action %d

####### Authentication #######
   server role = standalone server
   passdb backend = tdbsam
   obey pam restrictions = yes
   unix password sync = yes
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
   pam password change = yes
   map to guest = bad user

########## Domains ###########
;   logon path = \%N\profiles\%U
;   logon drive = H:
;   logon script = logon.cmd
; add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u
; add machine script  = /usr/sbin/useradd -g machines -c "%u machine account" -d /var/lib/samba -s /bin/false %u
; add group script = /usr/sbin/addgroup --force-badname %g

############ Misc ############
;   include = /home/samba/etc/smb.conf.%m
;   idmap uid = 10000-20000
;   idmap gid = 10000-20000
;   template shell = /bin/bash
;   usershare max shares = 100
   usershare allow guests = yes

#======================= Share Definitions =======================
;[homes]
;   comment = Home Directories
;   browseable = no
;   read only = yes
;   create mask = 0700
;   directory mask = 0700
;   valid users = %S
;[netlogon]
;   comment = Network Logon Service
;   path = /home/samba/netlogon
;   guest ok = yes
;   read only = yes
;[profiles]
    ;   comment = Users profiles
    ;   path = /home/samba/profiles
    ;   guest ok = no
    ;   browseable = no
    ;   create mask = 0600
    ;   directory mask = 0700

    [printers]
       comment = All Printers
       browseable = no
       path = /var/spool/samba
       printable = yes
       guest ok = no
       read only = yes
       create mask = 0700

    [print$]
       comment = Printer Drivers
       path = /var/lib/samba/printers
       browseable = yes
       read only = yes
       guest ok = no
    ;   write list = root, @lpadmin
    
por Stham 17.03.2015 / 15:07

0 respostas