Project

General

Profile

Segnalazione #250

OctoNet - Scheda "Samba Service" crash

Added by Paolo Baratta about 4 years ago. Updated almost 4 years ago.

Status:
Chiuso
Priority:
Bassa
Start date:
05/08/2017
Due date:
% Done:

0%


Description

Ciao Christofer
Come richiesto, ecco qui sotto l'esito del debug relativo alla scheda "Samba service"

Environment:

Request Method: GET
Request URL: http://localhost:13402/samba/

Django Version: 1.8.16
Python Version: 3.4.2
Installed Applications:
['django.contrib.sessions',
'django.contrib.messages',
'whitenoise.runserver_nostatic',
'django.contrib.staticfiles',
'octonet',
'hostqueue.apps.HostQueue',
'firewall.apps.Firewall',
'dhcp.apps.Dhcp',
'dansguardian.apps.DansGuardian',
'host.apps.Host',
'polygen.apps.Polygen',
'upgrade.apps.Upgrade',
'asterisk.apps.Asterisk',
'samba.apps.Samba',
'users.apps.Users',
'script.apps.Script',
'quota.apps.Quota',
'printers.apps.Printers',
'auth.apps.Auth']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.middleware.locale.LocaleMiddleware',
'octonet.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']

Traceback:
File "/usr/lib/python3/dist-packages/django/core/handlers/base.py" in get_response
132. response = wrapped_callback(request, callback_args, **callback_kwargs)
File "/usr/lib/python3/dist-packages/django/views/generic/base.py" in view
71. return self.dispatch(request, *args, **kwargs)
File "/usr/share/octonet/octonet/mixins.py" in dispatch
105. return super().dispatch(request, *args, **kw)
File "/usr/lib/python3/dist-packages/django/views/generic/base.py" in dispatch
89. return handler(request, *args, **kwargs)
File "/usr/lib/python3/dist-packages/django/views/generic/base.py" in get
158. context = self.get_context_data(
*kwargs)
File "/usr/share/octonet/octonet/mixins.py" in get_context_data
72. ctx = super().get_context_data(**kw)
File "/usr/share/octonet/samba/views.py" in get_context_data
24. shares = tree.lget([])
File "/usr/lib/python3/dist-packages/octofuss/tree.py" in lget
157. return self.tree.lget(self.root + path, **kw)
File "/usr/lib/python3/dist-packages/octofuss/xmlrpc.py" in lget
94. return self._wrap_call(self.server.get, "/".join(path))
File "/usr/lib/python3/dist-packages/octofuss/xmlrpc.py" in _wrap_call
78. raise exception_serializer.from_dict(res["exc"])

Exception Type: Exception at /samba/
Exception Value: Bad parameter name! [SERVERROLE]

History

#1 Updated by Christopher R. Gabriel about 4 years ago

  • Assignee set to Simone Piccardi

#2 Updated by Simone Piccardi about 4 years ago

  • Status changed from Nuovo to In elaborazione
  • Assignee changed from Simone Piccardi to Christopher R. Gabriel

Nel file:

/usr/lib/python3/dist-packages/octofuss/samba/parameters.py

(installato da python3-octofuss) manca la definizione nella parm_table di SERVERROLE che mappa la direttiva server role che è nuova.

Il file (a quanto scritto nella intestazione) viene generato con un comando generate_parm_table dal file loadparm.c di samba. Non so come è stato generato quello attuale, ma credo sia necessaria una definizione della tabella dei parametri che corrisponda alla versione di samba installata.

#3 Updated by Christopher R. Gabriel about 4 years ago

  • Assignee changed from Christopher R. Gabriel to Simone Piccardi

Lo script generate_parm_table e' questo:

https://github.com/jdkoftinoff/mb-linux-msli/blob/master/uClinux-dist/user/samba/examples/scripts/shares/python/generate_parm_table.py

Se puoi fornirmi il valore per la parm_table di SERVERROLE, lo aggiungo.

#4 Updated by Simone Piccardi about 4 years ago

  • Assignee changed from Simone Piccardi to Christopher R. Gabriel

A giudicare dal resto del contenuto del file /usr/lib/python3/dist-packages/octofuss/samba/parameters.py la riga da aggiungere dentro la definizione di parm_table è:

"SERVERROLE"        : ("server role", SambaParmString, P_GLOBAL, "auto"),

l'ho provato ed ottengo un altro errore per un altro parametro.

Mi par di capire che quel file viene generato a partire dall'elenco degli argomenti possibili, e che poi octofussd lo usa quando legge smb.conf e guarda se dentro c'è il corrispondente nella tabella cercando come chiave il nome della direttiva (nel caso "server role") messo in maiuscolo dopo aver tolto gli spazi.

La riga sopra l'ho ricostruita guardando il tipo di parametro, il problema è che anche a ripeterlo ed aggiungerlo manualmente per quelli che trova nell'smb.conf attuale, resta il problema che se cambi una configurazione e ne usi uno che non è presente sei da capo, occorrerebbe appunto generare la tabella per la lista completa, che è quello che dovrebbe fare il programma generate_parm_table, ottenendo le informazioni dalle definizioni nel codice di samba.

Quel programma l'ho trovato anche nel pacchetto samba-doc, installato come /usr/share/doc/samba-doc/examples/scripts/shares/python/generate_parm_table.py.gz, è lo stesso che segnalavi sopra. Però non mi è chiaro a quale loadparam.c faccia riferimento. Nei sorgenti di samba, presi con apt-get source samba, ne ho trovati 5, e tutti, passati dallo script, generano una tabella vuota. A quanto pare è cambiato qualcosa nel codice con Samba4 e generate_parm_table.py non funziona (ho dato un'occhiata al codice, e per quel po' che capisco cerca delle definizioni che in quei file non ci sono). La sola cosa che ssembra contenerle è il file samba-4.2.14+dfsg/lib/param/param_table.c che non viene gestito da quel programma.

A parte iterare la definizione manuale per mettere i valori che mancano per la configurazione attuale (che non è una vera soluzione) o provare a riscrivere generate_parm_table per guardare param_table.c non saprei che fare.

Ma non mi è chiaro comunque lo scopo del parsing completo della configurazione di samba, mi pareva di ricordare che questa funzionalità servisse ad aggiungere degli share, cosa che si può fare generando il contenuto del file /etc/samba/shares.conf incluso in coda a /etc/samba/smb.conf senza stare a toccare quest'ultimo.

#5 Updated by Christopher R. Gabriel about 4 years ago

  • Status changed from In elaborazione to Commenti
  • Assignee changed from Christopher R. Gabriel to Paolo Baratta

Visto il fatto che samba ora gestisce le configurazioni tramite file esterno, ho eliminato l'uso del parsing del smb.conf globale, limitandomi a lavorare sul file di share. Non c'e' bisogno di riavvio del servizio in quanto samba rilegge automaticamente la configurazione dopo la modifica.

uploadato, servono:

octofussd 8.0.26
octonet 0.2.8

#6 Updated by Christopher R. Gabriel about 4 years ago

  • Project changed from fuss-server to octonet

#7 Updated by Paolo Baratta almost 4 years ago

  • Assignee changed from Paolo Baratta to Christopher R. Gabriel

Ciao Christofer.
Ti chiedo comunque conferma: la segnalazione è stata spostata in un altro progetto. Posso quindi chiudere questa?

#8 Updated by Christopher R. Gabriel almost 4 years ago

  • Assignee changed from Christopher R. Gabriel to Paolo Baratta

E' stata spostata nel progetto giusto, riguardava octonet ( come da oggetto ) ma era stata aperta sul pacchetto fuss-server.

Se per te che hai aperto la segnalazione la cosa e' risolta, si, assolutamente da chiudere. Vedi la nota numero 5 qui nel ticket per le indicazioni su come verificare.

#9 Updated by Paolo Baratta almost 4 years ago

  • Assignee changed from Paolo Baratta to Christopher R. Gabriel
  • Priority changed from Normale to Alta

Non ho ancora eseguito il test, perché vorrei segnalare che dopo l'upgrade il pacchetto octofussd è stato aggiornato alla versione 8.0.30-1, mentre octonet NON si è aggiornato. Per aggiornarlo ho dovuto installarlo e, solo dopo, si trova alla versione 0.2.14-1

#10 Updated by Christopher R. Gabriel almost 4 years ago

  • Assignee changed from Christopher R. Gabriel to Paolo Baratta

Paolo Baratta ha scritto:

Non ho ancora eseguito il test, perché vorrei segnalare che dopo l'upgrade il pacchetto octofussd è stato aggiornato alla versione 8.0.30-1, mentre octonet NON si è aggiornato. Per aggiornarlo ho dovuto installarlo e, solo dopo, si trova alla versione 0.2.14-1

Se hai dovuto installarlo significa che non lo era (questo non so perche'), quindi e' normale che non venga aggiornato. Se e' alla versione 0.2.14 allora puoi testare la cosa in ogni caso.

#11 Updated by Paolo Baratta almost 4 years ago

  • Assignee changed from Paolo Baratta to Christopher R. Gabriel

Confermo che il pacchetto era già preesistente, altrimenti come avrei fatto a far partire il tool omonimo di amministrazione e mandare in crash Samba?!
La versione preesistente era esattamente la 0.2.6-1 in uno dei due server su cui faccio i test e la 0.2.7-1 sull'altro. Dopo il lancio del comando apt install octonet si è presentata la proposta di aggiornamento, che ho eseguito con successo.

#12 Updated by Christopher R. Gabriel almost 4 years ago

  • Assignee changed from Christopher R. Gabriel to Paolo Baratta

Paolo Baratta ha scritto:

Confermo che il pacchetto era già preesistente, altrimenti come avrei fatto a far partire il tool omonimo di amministrazione e mandare in crash Samba?!

Non saprei, come dicevo sopra hai scritto "ho dovuto installarlo" che per me implica il fatto che non era installato :)

La versione preesistente era esattamente la 0.2.6-1 in uno dei due server su cui faccio i test e la 0.2.7-1 sull'altro. Dopo il lancio del comando apt install octonet si è presentata la proposta di aggiornamento, che ho eseguito con successo.

Capito, forse sara' stato per via della nuova dipendenza, ma per avere certezza bisognerebbe avere l'output della proposta di apt.

Ad ogni modo, esula da questo ticket, ora che hai installata 0.2.14 puoi verificarlo.

#13 Updated by Paolo Baratta almost 4 years ago

Infatti. Cosa faccio? Spostiamo il ticket nel progetto Samba?

#14 Updated by Christopher R. Gabriel almost 4 years ago

E' gia' nel progetto giusto (il progetto Samba non esiste), l'ho spostato io sul progetto Octonet perche' prima era su fuss-server, ma il problema riguarda octonet.

L'unica cosa da fare e' dirmi se per te ora il problema segnalato e' risolto o meno, e poi chiuderlo nel caso.

#15 Updated by Paolo Baratta almost 4 years ago

  • Assignee changed from Paolo Baratta to Christopher R. Gabriel
  • Priority changed from Alta to Bassa

OK!
1. Creata cartella /home/AACondivisioni/samba_1
2. Modificati permessi di AACondivisioni e samba_1
3. Agito con il tool samba per creare la share che punta su samba_1
4. Tolto il flag Read only
5. Attribuito al gruppo di test i permessi Read list e Write list
Testata la share con una macchina Windows: la share funziona!!

#16 Updated by Paolo Baratta almost 4 years ago

  • Status changed from Commenti to Chiuso

#17 Updated by Christopher R. Gabriel almost 4 years ago

Ottimo! Grazie

Also available in: Atom PDF