[Mixminion-it] Compilazione Mixminion

dirtydog a autistici.org dirtydog a autistici.org
Ven 5 Nov 2010 00:46:57 CET


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


Ciao,

> [...]
>> Subito prima dell'output riportato da te io ho
>>
>> ERROR: test_clearableQueue (mixminion.test.MiscTests)
>> Traceback (most recent call last):
>>
>>  File "build/lib.linux-i686-2.6/mixminion/test.py", line 787, in
>> test_clearableQueue
>>
>>    q.clear()
>>
>>  File "build/lib.linux-i686-2.6/mixminion/ThreadUtils.py", line 51, in
>> clear
>>
>>    if self._empty(): return
>>
>> AttributeError: ClearableQueue instance has no attribute '_empty'
> [...]
>> Potrebbe essere qui la causa? Da quel che ho capito la classe
>> ClearableQueue deriva dalla classe (standard?) Queue. Questa non ha il
>> metodo _empty(), bensi` empty(). Un typo? E` cambiata la classe Queue?
>>

ho scoperto che _empty() e` un metodo privato della classe base Queue
[1], che non viene visto dalla classe derivata a causa di come python
tratta i _ .
Purtroppo empty() blocca un mutex e per qualche strano motivo questo
mette in deadlock alcuni dei test, il primo e` "test_clearableQueue".

Copiando la definizione di _empty() tutti i test sono andati a buon fine.

In allegato la patch.

Lorenzo

[1]
http://svn.python.org/projects/python/branches/release21-maint/Lib/Queue.py

> 
> Da quello che ho capito io, nella Queue originale della versione di
> python su cui stavano sviluppando,
> non esistevano ne la possibilità di cancellare tutta la coda in un
> colpo solo ne quella di impostare un timeout,
> per cui hanno creato due classi: ClearableQueue e TimeoutQueue per farlo.
> Non riesco a capire se siano subclass della classe Queue originale o
> meno, perché
> quello che avviene è questo:
> 
> # Imported here so we can get it in mixminion.server without being shadowed
> # by the old Queue.py file.
> from Queue import Queue, Empty
> MessageQueue = Queue
> QueueEmpty = Empty
> del Queue
> del Empty
> 
> ma non so che effetto abbia il comando "del Classe"
> tuttavia, nelle versioni attuali di Python, il modulo Queue gestisce
> sicuramente il timeout, mentre
> non sono sicuro della cancellazione della coda, idealmente si potrebbe
> fare a meno delle classi speciali
> create da mixminion e usare quelle standard.
> 
> Ho anche cercato il metodo _emtpy e in effetti non esiste in
> ThreadUtils, ma purtroppo per noi questa volta non credo si tratti di
> un typo,
> perché rinominandolo in empty il test rimane appeso con questo output:
> 
> 
> running run
> running build
> running build_py
> running build_ext
> running build_scripts
> copying and adjusting build/mixminion -> build/scripts-2.6
> copying and adjusting build/mixminiond -> build/scripts-2.6
> ....
> 
> siamo ad un punto morto :P
> 
> Luigi
> _______________________________________________
> Mixminion-it mailing list
> Mixminion-it a winstonsmith.org
> http://lists.winstonsmith.org/mailman/listinfo/mixminion-it
> 

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkzTRecACgkQj5JKviTtwDw6lwCdE/mrFZds86IT03GX4pUfw6Fy
NjwAmgPqCNCCvnfOqCHVhaMpk9VI2EH+
=CV+m
-----END PGP SIGNATURE-----
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome:        ThreadUtils.py.patch
Tipo:        text/x-patch
Dimensione:  124 bytes
Descrizione: non disponibile
URL:         <http://lists.winstonsmith.org/pipermail/mixminion-it/attachments/20101105/243511f0/attachment.bin>
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome:        ThreadUtils.py.patch.sig
Tipo:        application/pgp-signature
Dimensione:  72 bytes
Descrizione: non disponibile
URL:         <http://lists.winstonsmith.org/pipermail/mixminion-it/attachments/20101105/243511f0/attachment.pgp>


More information about the Mixminion-it mailing list