Segnalare un bug

Linee guida generali su come segnalare i bug di MariaDB.

Se si desidera discutere un problema o una nuova funzionalità con gli sviluppatori di MariaDB, è possibile usare i forum e le mailing list elencati a questa pagina.

Il bug è già noto?

Prima di tutto, si controlli se il bug è già presente nel database dei bug di MariaDB o nel database dei bug di MySQL (se il bug è già stato segnalato per MySQL, non c'è alcun bisogno di segnalarlo per MariaDB).

Se si trova il bug in uno dei due database, per favore si aggiunga un commento per dire che si è riscontrato il bug, insieme a qualsiasi informazione aggiuntiva che possa aiutarci a risolvere il problema.

Se il bug non è stato ancora segnalato, allora si inserisca una segnalazione.

Bug Report (segnalazione di bug) o Feature Request (richiesta di funzionalità)?

Le richieste di nuove funzionalità non sono bug report. Esse devono essere inserite nel JIRA.

Si veda anche plans for next release per sapere quali funzionalità dovrebbero essere nella prossima versione di MariaDB.

Come posso segnalare un bug?

Ecco le informazioni di cui abbiamo bisogno per poter correggere un bug. Più informazioni abbiamo, più sarà facile riprodurre il bug, più velocemente potremo correggerlo.

Una buona segnalazione contiene:

  1. L'ambiente (Sistema operativo, hardware e versione di MariaDB) nel quale si è verificato l'errore.
  2. Qualsiasi errore o warning nel file hostname.err. Normalmente si trova nella directory del database.
  3. Qualsiasi informazione di contorno (stack trace, tabelle...).
  4. Un test case o un altro modo per riprodurre il bug. Questo dovrebbe essere, se possibile, nel formato di mysqltest. Si veda mysqltest/README per ulteriori informazioni.
  5. Se non è possibile fornire un test case, sarebbe di grande aiuto fornire un core dump e il binario corrispondente.

Se il bug è presente solo in MariaDB, lo si segnali nel database dei bug di MariaDB.

Se invece è anche in MySQL, lo si archivi anche nel database dei bug di MySQL.

Stato del bug

In launchpad, i vari stati che un bug può assumere sono:

StatoDescrizione
IncompleteSi necessitano ulteriori informazioni per risolvere il problema
InvalidNon è un bug (Feature request?)
Won't FixIl bug non verrà risolto
In ProgressUno sviluppatore sta già lavorando concretamente per risolverlo
Fix CommittedIl fix è stato inserito in un branch principale
Fix ReleasedIl fix è stato inserito in un branch principale

Il normale processo di soluzione dei bug è il seguente:

"In Progress" -> "Fix Released"

Gli sviluppatori che desiderano distinguere se il bug è stato solo inserito in un branch principale, o se invece è già stato rilasciato in un binario, possono usare:

"In Progress" -> "Fix Committed" -> "Fix Released"

Tuttavia in questo caso lo sviluppatore deve assicurarsi che quando un binario viene rilasciato lo stato del bug venga aggiornato.

Come compilare un server MariaDB che contenga informazioni di debug

Ecco le istruzioni su come compilare mysqld in modo tale che contenga tutte le informazioni di cui gli sviluppatori necessitano per risolvere il problema: (Una spiegazione più dettagliata si trova a questa pagina.)

  • Si aggiunga l'opzione --core-file al file /.my.cnf o /etc/my.cnf sotto l'etichetta [mysqld].
  • Si scarichi il codice di MariaDB più recente da GitHub.
  • Si compili MariaDB con il flag di compilazione -g (su Unix). Gli script nella directory di BUILD lo fanno automaticamente.
  • Si arresti il vecchio server mysqld
  • Si installi il mysqld appena compilato
  • Si riavvii mysqld

Compilare con il flag -g non dovrebbe causare rallentamenti sensibili nel server.

Esempio di un build di debug

Ecco un esempio di come compilare (presumendo che si stia utilizzando hardware AMD o Intel):

cd directory-sorgenti-mariadb
./BUILD/compile-pentium-max
make
./client/mysqladmin shutdown
mv directory-installazione-mariadb/mysqld directory-installazione-mariadb/mysqld-old
cp sql/mysqld directory-installazione-mariadb/mysqld
 
'restart mysqld'

Naturalmente si può anche usare il comando make install, ma usando il modo qui riportato sarà possibile ritornare al vecchio binario.

Se si ottengono errori riguardanti un numero errato di messaggi di errore, si può risolvere il problema copiando il file della lingua da sql/share al posto di quello in uso (è un'operazione ragionevolmente sicura).

cp sql/share/english/* mariadb-install-dir/share/mysql/english

Cosa fare se dopo aver installato un binario di debug si ottiene un crash

I passaggi sono i seguenti:

  • Si crei un file README che descriva il problema. (Si può usare lo script mysqlbug, che genera un modello da usare).
  • Si crei un file tar che contiene il core, il binario mysqld e il file README. Se possibile, si aggiunga qualsiasi file del database che possa aiutare a riprodurre l'errore!
sh> tar cvfz /tmp/mariadb-bug-'descrizione-breve'.tgz mariadb-data-dir/core* mariadb-install-dir/libexec/mysqld README
  • Lo si invii sul nostro server ftp sicuro:
sh> ftp -a ftp.askmonty.org
ftp> cd private
ftp> binary
ftp> put /tmp/mariadb-bug-'descrizione-breve'.tgz
ftp> quit
  • Per poter seguire gli sviluppi, si crei anche una segnalazione su JIRA. Dovrebbe essere facile, basandosi sulle informazioni nel file README.

Se si necessita di aiuto durante queste operazioni, se ci si vuole assicurare che il bug venga risolto con un'alta priorità, o se si desidera che qualcuno acceda al proprio sistema per individuare il problema, è possibile acquistare un contratto di supporto da SkySQL o utilizzare i loro servizi di consulenza.

Commenti

Sto caricando i commenti......
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.