Quantcast

Vecchio Plone2.1 e indesiderate scritture in lettura...

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Vecchio Plone2.1 e indesiderate scritture in lettura...

SauZheR at gOOgle
Salve a tutti,
dove lavoro abbiamo "ereditato" un portale plone 2.1, fortunatamente da non migrare ma da tenere in produzione.

Il problema che sto riscontrando e' che ci sono certi oggetti che quando vengono visitati, anche da anonimi, generano una scrittura che li riguarda nello zodb. Nella schermata Undo infatti, trovo entry del tipo:

- /Plone/folder/folder/oggetto.AT.2006-09-04.9154063574/view by None

Il risultato e' che il Data.fs che mi hanno consegnato era cresciuto in pochi mesi fino a 80Gb  ma e' bastato un pack per riportarlo a soli 2.

Gli oggetti incriminati sono degli AT che hanno dei campi PloneExFile/AttachmentField  (in modalita' attribute storage). La scrittura avviene solo quando il field contiene in file (ad esempio un pdf) allegato, quindi deve essere qualche bug legato proprio al field.

Quando avviene la scrittura, viene anche aggiornato l'attributo bobobase_modification_time dell'AT proprio al momento dell'accesso view.

Ho provato ad aggiornare AttachmentField e PloneExfile finchè ho potuto ma il comportamento anomalo e' rimasto.

Vorrei capire COSA viene modificato per poi eventualmente intercettare e patchare.
che sembra scritta di proposito un anno fa, pensando a me oggi... ma l'autore non ha fatto caso che io sto usando una versione molto piu' vecchia dello ZODB e la meta' dei metodi su "storage" non e' ancora implementata.

Qualcuno ha qualche idea su come posso fare per venire a capo di 'sta cosa?

Grazie a tutti,
alessandro.

--
    bye
alessandro ceglie (aka SauZheR)
************************************
l'iterazione è umana...
la ricorsione, Divina!
************************************
reply to: sauzher AT gmail DOT com

_______________________________________________
Plone-IT mailing list
[hidden email]
https://lists.plone.org/mailman/listinfo/plone-plone-it
http://plone-regional-forums.221720.n2.nabble.com/Plone-Italy-f221721.html
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Vecchio Plone2.1 e indesiderate scritture in lettura...

Riccardo Lemmi-3
On Thursday 19 May 2016, SauZheR wrote:

> Salve a tutti,
> dove lavoro abbiamo "ereditato" un portale plone 2.1, fortunatamente
> da non migrare ma da tenere in produzione.
>
> Il problema che sto riscontrando e' che ci sono certi oggetti che
> quando vengono visitati, anche da anonimi, generano una scrittura
> che li riguarda nello zodb. Nella schermata Undo infatti, trovo
> entry del tipo:
>
> - /Plone/folder/folder/oggetto.AT.2006-09-04.9154063574/view by
> * None*
> Il risultato e' che il Data.fs che mi hanno consegnato era cresciuto
> in pochi mesi fino a 80Gb  ma e' bastato un pack per riportarlo a
> soli 2.
>
> Gli oggetti incriminati sono degli AT che hanno dei campi
> PloneExFile/AttachmentField  (in modalita' attribute storage). La
> scrittura avviene solo quando il field contiene in file (ad esempio
> un pdf) allegato, quindi deve essere qualche bug legato proprio al
> field.
>
> Quando avviene la scrittura, viene anche aggiornato l'attributo
> bobobase_modification_time dell'AT proprio al momento dell'accesso
> view.
>
> Ho provato ad aggiornare AttachmentField e PloneExfile finchè ho
> potuto ma il comportamento anomalo e' rimasto.
>
> Vorrei capire COSA viene modificato per poi eventualmente
> intercettare e patchare.
> Ho provato a seguire questa cosa
>
>  -
> http://play.pixelblaster.ro/blog/archive/2015/05/05/how-to-read-the-t
> ransaction-pickle-data-for-a-given-transaction
>
> che sembra scritta di proposito un anno fa, pensando a me oggi... ma
> l'autore non ha fatto caso che io sto usando una versione molto piu'
> vecchia dello ZODB e la meta' dei metodi su "storage" non e' ancora
> implementata.
>
> Qualcuno ha qualche idea su come posso fare per venire a capo di 'sta
> cosa?
>
> Grazie a tutti,
> alessandro.
Meglio se verifichi prima se hai lo stesso comportamento con un'altra
vista, magari fatta ad ok e che contenga solo una parte dei field e non
il resto del main template.
In questo modo escludi che sia dovuto al codice della vista, anche un
page template secco può nascondere dei problemi a seconda di cosa
chiama, per esempio le session.

Altra cosa da controllare è se per caso nel codice ci sia una qualche
assegnamento a liste, tuple o dizionari che sono il caso classico di
scrittura su zodb ad ogni visita.

Infine potrebbe essere utile fare un confronto tra prima e dopo la
visita dell'oggetto, una specie di diff che puoi fare salvando l'oggetto
con pickle.

--
Riccardo Lemmi
Über Developer
http://www.reflab.com

_______________________________________________
Plone-IT mailing list
[hidden email]
https://lists.plone.org/mailman/listinfo/plone-plone-it
http://plone-regional-forums.221720.n2.nabble.com/Plone-Italy-f221721.html

signature.asc (205 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Vecchio Plone2.1 e indesiderate scritture in lettura...

Yuri-11
Hai provato a mettere in readonly e vedere dove da l'errore? Magari ti
dice esattamente dov'è il problema, vale la pena provare :-)

Il 19/05/2016 16:35, Riccardo Lemmi ha scritto:

> On Thursday 19 May 2016, SauZheR wrote:
>> Salve a tutti,
>> dove lavoro abbiamo "ereditato" un portale plone 2.1, fortunatamente
>> da non migrare ma da tenere in produzione.
>>
>> Il problema che sto riscontrando e' che ci sono certi oggetti che
>> quando vengono visitati, anche da anonimi, generano una scrittura
>> che li riguarda nello zodb. Nella schermata Undo infatti, trovo
>> entry del tipo:
>>
>> - /Plone/folder/folder/oggetto.AT.2006-09-04.9154063574/view by
>> * None*
>> Il risultato e' che il Data.fs che mi hanno consegnato era cresciuto
>> in pochi mesi fino a 80Gb  ma e' bastato un pack per riportarlo a
>> soli 2.
>>
>> Gli oggetti incriminati sono degli AT che hanno dei campi
>> PloneExFile/AttachmentField  (in modalita' attribute storage). La
>> scrittura avviene solo quando il field contiene in file (ad esempio
>> un pdf) allegato, quindi deve essere qualche bug legato proprio al
>> field.
>>
>> Quando avviene la scrittura, viene anche aggiornato l'attributo
>> bobobase_modification_time dell'AT proprio al momento dell'accesso
>> view.
>>
>> Ho provato ad aggiornare AttachmentField e PloneExfile finchè ho
>> potuto ma il comportamento anomalo e' rimasto.
>>
>> Vorrei capire COSA viene modificato per poi eventualmente
>> intercettare e patchare.
>> Ho provato a seguire questa cosa
>>
>>   -
>> http://play.pixelblaster.ro/blog/archive/2015/05/05/how-to-read-the-t
>> ransaction-pickle-data-for-a-given-transaction
>>
>> che sembra scritta di proposito un anno fa, pensando a me oggi... ma
>> l'autore non ha fatto caso che io sto usando una versione molto piu'
>> vecchia dello ZODB e la meta' dei metodi su "storage" non e' ancora
>> implementata.
>>
>> Qualcuno ha qualche idea su come posso fare per venire a capo di 'sta
>> cosa?
>>
>> Grazie a tutti,
>> alessandro.
> Meglio se verifichi prima se hai lo stesso comportamento con un'altra
> vista, magari fatta ad ok e che contenga solo una parte dei field e non
> il resto del main template.
> In questo modo escludi che sia dovuto al codice della vista, anche un
> page template secco può nascondere dei problemi a seconda di cosa
> chiama, per esempio le session.
>
> Altra cosa da controllare è se per caso nel codice ci sia una qualche
> assegnamento a liste, tuple o dizionari che sono il caso classico di
> scrittura su zodb ad ogni visita.
>
> Infine potrebbe essere utile fare un confronto tra prima e dopo la
> visita dell'oggetto, una specie di diff che puoi fare salvando l'oggetto
> con pickle.
>
>
>
> _______________________________________________
> Plone-IT mailing list
> [hidden email]
> https://lists.plone.org/mailman/listinfo/plone-plone-it
> http://plone-regional-forums.221720.n2.nabble.com/Plone-Italy-f221721.html

_______________________________________________
Plone-IT mailing list
[hidden email]
https://lists.plone.org/mailman/listinfo/plone-plone-it
http://plone-regional-forums.221720.n2.nabble.com/Plone-Italy-f221721.html
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Vecchio Plone2.1 e indesiderate scritture in lettura...

SauZheR at gOOgle
In reply to this post by Riccardo Lemmi-3
Grazie Riccardo per i suggerimenti,


Il giorno 19 maggio 2016 16:35, Riccardo Lemmi <[hidden email]> ha scritto:


Meglio se verifichi prima se hai lo stesso comportamento con un'altra
vista, magari fatta ad ok e che contenga solo una parte dei field e non
il resto del main template.
In questo modo escludi che sia dovuto al codice della vista, anche un
page template secco può nascondere dei problemi a seconda di cosa
chiama, per esempio le session.


fatta vista in cui renderizzo solo un widget.
Se il widget e' del field file (il ploneexfile field) ho la scrittura (che pero' stranamente non viene riportata tra gli undo col path per intero ma solo col nome del portale: "portale/my_view by None"


Altra cosa da controllare è se per caso nel codice ci sia una qualche
assegnamento a liste, tuple o dizionari che sono il caso classico di
scrittura su zodb ad ogni visita.
 
Non son sicuro di aver ben capito... ma L'AT in questione deriva direttamente da PloneExfile, e implementa pochissimi metodi
che comunque non richiamati dalla mia vista e non hanno nulla a che fare con il field. Quindi escluderei...

 

Infine potrebbe essere utile fare un confronto tra prima e dopo la
visita dell'oggetto, una specie di diff che puoi fare salvando l'oggetto
con pickle.

Ok, qui sono sicurissimo di non aver capito :D
Devo entrare in zopectl debug e confrontare l'obj.__getstate__() prima e dopo? ... provo...

alessandro.


 

--
Riccardo Lemmi
Über Developer
http://www.reflab.com

_______________________________________________
Plone-IT mailing list
[hidden email]
https://lists.plone.org/mailman/listinfo/plone-plone-it
http://plone-regional-forums.221720.n2.nabble.com/Plone-Italy-f221721.html



--
    bye
alessandro ceglie (aka SauZheR)
************************************
l'iterazione è umana...
la ricorsione, Divina!
************************************
reply to: sauzher AT gmail DOT com

_______________________________________________
Plone-IT mailing list
[hidden email]
https://lists.plone.org/mailman/listinfo/plone-plone-it
http://plone-regional-forums.221720.n2.nabble.com/Plone-Italy-f221721.html
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Vecchio Plone2.1 e indesiderate scritture in lettura...

SauZheR at gOOgle
In reply to this post by Yuri-11
Grazie,
non ci avevo pensato... pero' in questa versione dello ZODB il readonly era gia' stato deprecato perche' senza piu' effetti... quindi non posso battere il sentiero

alessandro.

Il giorno 19 maggio 2016 17:34, Yuri <[hidden email]> ha scritto:
Hai provato a mettere in readonly e vedere dove da l'errore? Magari ti dice esattamente dov'è il problema, vale la pena provare :-)


Il 19/05/2016 16:35, Riccardo Lemmi ha scritto:
On Thursday 19 May 2016, SauZheR wrote:
Salve a tutti,
dove lavoro abbiamo "ereditato" un portale plone 2.1, fortunatamente
da non migrare ma da tenere in produzione.

Il problema che sto riscontrando e' che ci sono certi oggetti che
quando vengono visitati, anche da anonimi, generano una scrittura
che li riguarda nello zodb. Nella schermata Undo infatti, trovo
entry del tipo:

- /Plone/folder/folder/oggetto.AT.2006-09-04.9154063574/view by
* None*
Il risultato e' che il Data.fs che mi hanno consegnato era cresciuto
in pochi mesi fino a 80Gb  ma e' bastato un pack per riportarlo a
soli 2.

Gli oggetti incriminati sono degli AT che hanno dei campi
PloneExFile/AttachmentField  (in modalita' attribute storage). La
scrittura avviene solo quando il field contiene in file (ad esempio
un pdf) allegato, quindi deve essere qualche bug legato proprio al
field.

Quando avviene la scrittura, viene anche aggiornato l'attributo
bobobase_modification_time dell'AT proprio al momento dell'accesso
view.

Ho provato ad aggiornare AttachmentField e PloneExfile finchè ho
potuto ma il comportamento anomalo e' rimasto.

Vorrei capire COSA viene modificato per poi eventualmente
intercettare e patchare.
Ho provato a seguire questa cosa

  -
http://play.pixelblaster.ro/blog/archive/2015/05/05/how-to-read-the-t
ransaction-pickle-data-for-a-given-transaction

che sembra scritta di proposito un anno fa, pensando a me oggi... ma
l'autore non ha fatto caso che io sto usando una versione molto piu'
vecchia dello ZODB e la meta' dei metodi su "storage" non e' ancora
implementata.

Qualcuno ha qualche idea su come posso fare per venire a capo di 'sta
cosa?

Grazie a tutti,
alessandro.
Meglio se verifichi prima se hai lo stesso comportamento con un'altra
vista, magari fatta ad ok e che contenga solo una parte dei field e non
il resto del main template.
In questo modo escludi che sia dovuto al codice della vista, anche un
page template secco può nascondere dei problemi a seconda di cosa
chiama, per esempio le session.

Altra cosa da controllare è se per caso nel codice ci sia una qualche
assegnamento a liste, tuple o dizionari che sono il caso classico di
scrittura su zodb ad ogni visita.

Infine potrebbe essere utile fare un confronto tra prima e dopo la
visita dell'oggetto, una specie di diff che puoi fare salvando l'oggetto
con pickle.



_______________________________________________
Plone-IT mailing list
[hidden email]
https://lists.plone.org/mailman/listinfo/plone-plone-it
http://plone-regional-forums.221720.n2.nabble.com/Plone-Italy-f221721.html

_______________________________________________
Plone-IT mailing list
[hidden email]
https://lists.plone.org/mailman/listinfo/plone-plone-it
http://plone-regional-forums.221720.n2.nabble.com/Plone-Italy-f221721.html



--
    bye
alessandro ceglie (aka SauZheR)
************************************
l'iterazione è umana...
la ricorsione, Divina!
************************************
reply to: sauzher AT gmail DOT com

_______________________________________________
Plone-IT mailing list
[hidden email]
https://lists.plone.org/mailman/listinfo/plone-plone-it
http://plone-regional-forums.221720.n2.nabble.com/Plone-Italy-f221721.html
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Vecchio Plone2.1 e indesiderate scritture in lettura...

SauZheR at gOOgle
In reply to this post by SauZheR at gOOgle
ok,
obj.__getstate__() e' stato rivelatore.
Il render del widget provoca il popolamento di un attributo nascosto che contiene la preview del file in forma di testo estratto dal binario.

Ora so dove intervenire.

grazie ancora,
alesandro.



Il giorno 19 maggio 2016 17:45, SauZheR <[hidden email]> ha scritto:
Grazie Riccardo per i suggerimenti,


Il giorno 19 maggio 2016 16:35, Riccardo Lemmi <[hidden email]> ha scritto:


Meglio se verifichi prima se hai lo stesso comportamento con un'altra
vista, magari fatta ad ok e che contenga solo una parte dei field e non
il resto del main template.
In questo modo escludi che sia dovuto al codice della vista, anche un
page template secco può nascondere dei problemi a seconda di cosa
chiama, per esempio le session.


fatta vista in cui renderizzo solo un widget.
Se il widget e' del field file (il ploneexfile field) ho la scrittura (che pero' stranamente non viene riportata tra gli undo col path per intero ma solo col nome del portale: "portale/my_view by None"


Altra cosa da controllare è se per caso nel codice ci sia una qualche
assegnamento a liste, tuple o dizionari che sono il caso classico di
scrittura su zodb ad ogni visita.
 
Non son sicuro di aver ben capito... ma L'AT in questione deriva direttamente da PloneExfile, e implementa pochissimi metodi
che comunque non richiamati dalla mia vista e non hanno nulla a che fare con il field. Quindi escluderei...

 

Infine potrebbe essere utile fare un confronto tra prima e dopo la
visita dell'oggetto, una specie di diff che puoi fare salvando l'oggetto
con pickle.

Ok, qui sono sicurissimo di non aver capito :D
Devo entrare in zopectl debug e confrontare l'obj.__getstate__() prima e dopo? ... provo...

alessandro.


 

--
Riccardo Lemmi
Über Developer
http://www.reflab.com

_______________________________________________
Plone-IT mailing list
[hidden email]
https://lists.plone.org/mailman/listinfo/plone-plone-it
http://plone-regional-forums.221720.n2.nabble.com/Plone-Italy-f221721.html



--
    bye
alessandro ceglie (aka SauZheR)
************************************
l'iterazione è umana...
la ricorsione, Divina!
************************************
reply to: sauzher AT gmail DOT com



--
    bye
alessandro ceglie (aka SauZheR)
************************************
l'iterazione è umana...
la ricorsione, Divina!
************************************
reply to: sauzher AT gmail DOT com

_______________________________________________
Plone-IT mailing list
[hidden email]
https://lists.plone.org/mailman/listinfo/plone-plone-it
http://plone-regional-forums.221720.n2.nabble.com/Plone-Italy-f221721.html
Loading...