Re: [Talk-it] errore xsltproc

2012-03-22 Per discussione Fabrizio Carrai
Per completezza, non sono riuscito a far girare fino in fondo xsltproc con
i dati forniti.
Anche a me riporta diversi out of memory error dopo aver processato la
linea 2940283 di veneto.osm, ma il programma continua a girare.
Alla fine però esce con un unable to parse veneto.osm.

Putroppo gli switch di xsltproc non aiutano.

Alla prossima
Fabrizio



Il giorno 21 marzo 2012 21:35, Fabrizio Carrai
fabrizio.car...@gmail.comha scritto:

 Ho fatto una prova con Ubuntu su Virtualbox. mentre xsltproc girava in un
 finestra ho lanciato top in un altra.
 Si vedeva chiaramente che il processo prima consumava tutta la memoria
 fisica, quindi anche lo swap space diminuiva progressivamente.
 Quando stava per arrivare a 0, il processo terminava con un laconico
 messaggio Ucciso ().

 Da questo posso dedurre che il programma carica tutti i dati in memoria (a
 conferma di quanto già detto in lista). Provo a modificare un pò di
 parametri sulla macchina virtuale e ti faccio sapere.

 F.

 Il giorno 19 marzo 2012 13:40, emmexx emm...@tiscalinet.it ha scritto:

 Il 03/19/2012 01:30 PM, Fabrizio Carrai scrisse:
  Mi dai anche il link al file dati (esattamente quello che stai usando
 tu) ?
  Sono d'accordo sul capire il limite che impedisce il processamento.

 http://download.gfoss.it/osm/osm/regioni/veneto.osm.bz2

 La copia che sto usando risale a qualche giorno fa ma non credo faccia
 differenza.

 ciao
maxx



___
Talk-it mailing list
Talk-it@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-it


Re: [Talk-it] errore xsltproc

2012-03-22 Per discussione emmexx
Il 03/22/2012 06:46 PM, Fabrizio Carrai scrisse:
 Per completezza, non sono riuscito a far girare fino in fondo xsltproc
 con i dati forniti.
 Anche a me riporta diversi out of memory error dopo aver processato la
 linea 2940283 di veneto.osm, ma il programma continua a girare.
 Alla fine però esce con un unable to parse veneto.osm.
 
 Putroppo gli switch di xsltproc non aiutano.

Ti suggerisco di passare a xalan che sembra esente dai problemi di
memoria di libxml.

grazie per i test

maxx

___
Talk-it mailing list
Talk-it@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-it


Re: [Talk-it] errore xsltproc

2012-03-21 Per discussione Fabrizio Carrai
Ho fatto una prova con Ubuntu su Virtualbox. mentre xsltproc girava in un
finestra ho lanciato top in un altra.
Si vedeva chiaramente che il processo prima consumava tutta la memoria
fisica, quindi anche lo swap space diminuiva progressivamente.
Quando stava per arrivare a 0, il processo terminava con un laconico
messaggio Ucciso ().

Da questo posso dedurre che il programma carica tutti i dati in memoria (a
conferma di quanto già detto in lista). Provo a modificare un pò di
parametri sulla macchina virtuale e ti faccio sapere.

F.

Il giorno 19 marzo 2012 13:40, emmexx emm...@tiscalinet.it ha scritto:

 Il 03/19/2012 01:30 PM, Fabrizio Carrai scrisse:
  Mi dai anche il link al file dati (esattamente quello che stai usando
 tu) ?
  Sono d'accordo sul capire il limite che impedisce il processamento.

 http://download.gfoss.it/osm/osm/regioni/veneto.osm.bz2

 La copia che sto usando risale a qualche giorno fa ma non credo faccia
 differenza.

 ciao
maxx

___
Talk-it mailing list
Talk-it@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-it


Re: [Talk-it] errore xsltproc

2012-03-20 Per discussione emmexx
Il 03/19/2012 12:24 PM, emmexx scrisse:
 Cercando di usare una procedura xsl su un file osm (il veneto) ottengo
 un errore che credo sia dovuto al fatto che il file e' molto grande
 (quasi 2 GB).

Ho fatto alcuni esperimenti per cercare di venirne a capo.

Ho provato ad eseguire la stessa procedura su un netbook usando una
distribuzione live e il pc e' andato in crash :-(

Sul mio pc ho creato un nuovo file di swap da 20 GB.
Controllando con top l'utilizzo dello swap durante l'esecuzione della
procedura, si vede che la procedura va in errore al raggiungimento dei
2GB di swap.

Credo quindi che si tratti di un errore/limite di xsltproc e/o di libxml.
Qui mi sa che siamo gia' OT da un pezzo...

ciao
maxx

___
Talk-it mailing list
Talk-it@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-it


Re: [Talk-it] errore xsltproc

2012-03-20 Per discussione Matteo Gottardi
Il 19 marzo 2012 13:24, emmexx emm...@tiscalinet.it ha scritto:
 Devo recuperare i nodi di una relazione.
[]

Per una cosa del genere potresti usare stx (guarda
http://joost.sourceforge.net/ ).
Pero' mi sai che fai prima a farti un parser sax...

-- 
* Matteo Gottardi | matg...@tin.it
* ICQ UIN 20381372
* Linux - the choice of a GNU generation
* GPG Fingerprint:
* B9EE 108F 52C8 D50C B667 B1F2 AB56 8A01 BA3D 36A1

___
Talk-it mailing list
Talk-it@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-it


Re: [Talk-it] errore xsltproc

2012-03-20 Per discussione Federico Cozzi
2012/3/20 emmexx emm...@tiscalinet.it:
 Controllando con top l'utilizzo dello swap durante l'esecuzione della
 procedura, si vede che la procedura va in errore al raggiungimento dei
 2GB di swap.
 Credo quindi che si tratti di un errore/limite di xsltproc e/o di libxml.

Che processore hai e come hai compilato il kernel?
Se hai un processore a 32 bit lo spazio di memoria indirizzabile da un
singolo processo è 2gb o 3gb a seconda di come hai compilato il
kernel, anche se hai molto più swap.
Per vedere benefici dovresti avere un processore a 64bit e un kernel a 64bit

Ciao,
Federico

___
Talk-it mailing list
Talk-it@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-it


Re: [Talk-it] errore xsltproc

2012-03-20 Per discussione emmexx
Il 03/20/2012 12:28 PM, Matteo Gottardi scrisse:
 Il 19 marzo 2012 13:24, emmexx emm...@tiscalinet.it ha scritto:
 Devo recuperare i nodi di una relazione.
 []
 
 Per una cosa del genere potresti usare stx (guarda
 http://joost.sourceforge.net/ ).
 Pero' mi sai che fai prima a farti un parser sax...
 

Non credo. ;-)

Comunque ho installato qualcosa di simile, Xalan. E' l'equivalente di
xsltproc ed usa le librerie sax2 xercesc, le stesse usate da joost.
Sino ad ora non e' andato in errore, la ventola ed il disco non
sbuffano, ram e swap sono normalissimi. Vediamo se arriva alla fine...

grazie
maxx

___
Talk-it mailing list
Talk-it@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-it


Re: [Talk-it] errore xsltproc

2012-03-20 Per discussione emmexx
Il 03/20/2012 12:28 PM, Federico Cozzi scrisse:
 Che processore hai e come hai compilato il kernel?

Ho un processore che sarebbe il caso di cambiare, insieme al resto del
notebook. ;-)
Ma sono affezionato e non ho voglia di perdere settimane a reinstallare
e riconfigurare tutto per bene.
Comunque il processore e' un celeron 530  @ 1.73GHz
Il kernel e' uno di quelli originali di slackware 12.1

 Se hai un processore a 32 bit lo spazio di memoria indirizzabile da un
 singolo processo è 2gb o 3gb a seconda di come hai compilato il
 kernel, anche se hai molto più swap.

Non avevo pensato a questo fatto.
Nel frattempo ho fatto una prova anche con un vecchio file della regione
lombardia, piu' piccolo di quello del veneto (1,1 GB) ed e' addirittura
andato in segmentation fault.
Anche xmllint ha lo stesso problema. Deve essere il modo in cui e' stata
fatta la libreria libxml.

 Per vedere benefici dovresti avere un processore a 64bit e un kernel a 64bit

Appena mi faccio coraggio e vado ad acquistare un nuovo notebook! :-)

Come ho scritto in ml, Xalan e xercesc sembrano funzionare.

grazie
maxx

___
Talk-it mailing list
Talk-it@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-it


[Talk-it] errore xsltproc

2012-03-19 Per discussione emmexx
Cercando di usare una procedura xsl su un file osm (il veneto) ottengo
un errore che credo sia dovuto al fatto che il file e' molto grande
(quasi 2 GB).

La procedura lavora per un po' (non troppo) e poi si interrompe con
questo messaggio:

*** glibc detected *** xsltproc: munmap_chunk(): invalid pointer:
0x08085414 ***
Aborted

La stessa procedura su un file decisamente piu' piccolo va a buon fine.

Avete idea se e' possibile risolvere. Ovviamente non suggeritemi di
triplicare la ram, comprare un nuovo pc, ecc. :-)

grazie
maxx

___
Talk-it mailing list
Talk-it@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-it


Re: [Talk-it] errore xsltproc

2012-03-19 Per discussione Fabrizio Carrai
Il file che funziona, oltre ad essere più piccolo, avrà dati differenti. Il
problema potrebbe anche essere li.
Se dici come riprodurre il problema, magari potrei esserti di aiuto.

Fab

Il giorno 19 marzo 2012 12:24, emmexx emm...@tiscalinet.it ha scritto:

 Cercando di usare una procedura xsl su un file osm (il veneto) ottengo
 un errore che credo sia dovuto al fatto che il file e' molto grande
 (quasi 2 GB).

 La procedura lavora per un po' (non troppo) e poi si interrompe con
 questo messaggio:

 *** glibc detected *** xsltproc: munmap_chunk(): invalid pointer:
 0x08085414 ***
 Aborted

 La stessa procedura su un file decisamente piu' piccolo va a buon fine.

 Avete idea se e' possibile risolvere. Ovviamente non suggeritemi di
 triplicare la ram, comprare un nuovo pc, ecc. :-)

 grazie
maxx

 ___
 Talk-it mailing list
 Talk-it@openstreetmap.org
 http://lists.openstreetmap.org/listinfo/talk-it

___
Talk-it mailing list
Talk-it@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-it


Re: [Talk-it] errore xsltproc

2012-03-19 Per discussione emmexx
Il 03/19/2012 01:10 PM, Fabrizio Carrai scrisse:
 Il file che funziona, oltre ad essere più piccolo, avrà dati differenti.
 Il problema potrebbe anche essere li.
 Se dici come riprodurre il problema, magari potrei esserti di aiuto.

Devo recuperare i nodi di una relazione.
La relazione (una ciclovia bicitalia) occupa un bbox praticamente grande
come tutto il veneto (il veneto e' 1,9 gb, il bbox e' 1,6 gb).
Il file piu' piccolo e' un'estrazione dal file del veneto. Invece
dell'intera regione, il file e' un'estrazione di un singolo comune fatta
con osmosis.
La procedura semplificata e' banalissima: un ciclo sulle way
appartenenti alla relazione, per ogni way output dell'id della way.

La  ia impressione e' che il mio pc non ce la faccia a gestire la
lettura di un file cosi' grosso. Il pc ha 2gb di ram e 2gb di swap.
Appena faccio partire la procedura il disco comincia a frullare alla grande.

Potrei creare un poligono intorno alla relazione ed estrarre con osmosis
solo i dati di quel poligono. pero' bisognerebbe capire quale e' il
limite della mia macchina, nel senso che magari comunque anche questo
file sarebbe troppo grande.

grazie
maxx

xsl:template match=osm/relation[@id='1742549']
xsl:apply-templates select=member mode=relazioni /
/xsl:template

xsl:template match=member mode=relazioni  
xsl:variable name=refxsl:value-of select=@ref
disable-output-escaping=yes //xsl:variable
xsl:call-template name=ways
xsl:with-param name=id select=$ref/
/xsl:call-template
/xsl:template

xsl:template name=ways
  xsl:param name=id/
  xsl:value-of select=$id/
/xsl:template


___
Talk-it mailing list
Talk-it@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-it


Re: [Talk-it] errore xsltproc

2012-03-19 Per discussione Fabrizio Carrai
Mi dai anche il link al file dati (esattamente quello che stai usando tu) ?
Sono d'accordo sul capire il limite che impedisce il processamento.

Ciao!
Fabrizio

Il giorno 19 marzo 2012 13:24, emmexx emm...@tiscalinet.it ha scritto:

 Il 03/19/2012 01:10 PM, Fabrizio Carrai scrisse:
  Il file che funziona, oltre ad essere più piccolo, avrà dati differenti.
  Il problema potrebbe anche essere li.
  Se dici come riprodurre il problema, magari potrei esserti di aiuto.

 Devo recuperare i nodi di una relazione.
 La relazione (una ciclovia bicitalia) occupa un bbox praticamente grande
 come tutto il veneto (il veneto e' 1,9 gb, il bbox e' 1,6 gb).
 Il file piu' piccolo e' un'estrazione dal file del veneto. Invece
 dell'intera regione, il file e' un'estrazione di un singolo comune fatta
 con osmosis.
 La procedura semplificata e' banalissima: un ciclo sulle way
 appartenenti alla relazione, per ogni way output dell'id della way.

 La  ia impressione e' che il mio pc non ce la faccia a gestire la
 lettura di un file cosi' grosso. Il pc ha 2gb di ram e 2gb di swap.
 Appena faccio partire la procedura il disco comincia a frullare alla
 grande.

 Potrei creare un poligono intorno alla relazione ed estrarre con osmosis
 solo i dati di quel poligono. pero' bisognerebbe capire quale e' il
 limite della mia macchina, nel senso che magari comunque anche questo
 file sarebbe troppo grande.

 grazie
maxx

 xsl:template match=osm/relation[@id='1742549']
xsl:apply-templates select=member mode=relazioni /
 /xsl:template

 xsl:template match=member mode=relazioni
xsl:variable name=refxsl:value-of select=@ref
 disable-output-escaping=yes //xsl:variable
xsl:call-template name=ways
xsl:with-param name=id select=$ref/
/xsl:call-template
 /xsl:template

 xsl:template name=ways
  xsl:param name=id/
  xsl:value-of select=$id/
 /xsl:template


___
Talk-it mailing list
Talk-it@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-it


Re: [Talk-it] errore xsltproc

2012-03-19 Per discussione emmexx
Il 03/19/2012 01:30 PM, Fabrizio Carrai scrisse:
 Mi dai anche il link al file dati (esattamente quello che stai usando tu) ?
 Sono d'accordo sul capire il limite che impedisce il processamento.

http://download.gfoss.it/osm/osm/regioni/veneto.osm.bz2

La copia che sto usando risale a qualche giorno fa ma non credo faccia
differenza.

ciao
maxx

___
Talk-it mailing list
Talk-it@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-it


Re: [Talk-it] errore xsltproc

2012-03-19 Per discussione Federico Cozzi
2012/3/19 emmexx emm...@tiscalinet.it:
 La  ia impressione e' che il mio pc non ce la faccia a gestire la
 lettura di un file cosi' grosso. Il pc ha 2gb di ram e 2gb di swap.
 Appena faccio partire la procedura il disco comincia a frullare alla grande.

Non conosco XSLT...
C'entra qualcosa il problema DOM vs SAX?
Con DOM carichi tutto in RAM per farne una rappresentazione ad albero,
con SAX scorri il file riga per riga
Secondo me la query che hai in mente tu dovrebbe richiedere di
scorrere il file riga per riga (e quindi la dimensione del file non ha
impatti sulla RAM necessaria), eppure sembra che debba essere caricato
tutto in RAM.
E' possibile riscrivere il tuo programmino XSLT, oppure usare un'altra
tecnologia XML, in modo da non caricare tutto il file in RAM ma
processarlo sequenzialmente?

Ciao

___
Talk-it mailing list
Talk-it@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-it


Re: [Talk-it] errore xsltproc

2012-03-19 Per discussione emmexx
Il 03/19/2012 02:20 PM, Federico Cozzi scrisse:
 Non conosco XSLT...
 C'entra qualcosa il problema DOM vs SAX?

Diciamo che non mi ero ancora posto il problema in questi termini. :-)

 Con DOM carichi tutto in RAM per farne una rappresentazione ad albero,
 con SAX scorri il file riga per riga

libxml in teoria usa sax.

 Secondo me la query che hai in mente tu dovrebbe richiedere di
 scorrere il file riga per riga (e quindi la dimensione del file non ha
 impatti sulla RAM necessaria), eppure sembra che debba essere caricato
 tutto in RAM.

Dipende. Puo' essere che venga fatto caching del file o che vengano
tenuti in memoria nodi xml che possono tornare utili durante il
processing del file.

 E' possibile riscrivere il tuo programmino XSLT, oppure usare un'altra
 tecnologia XML, in modo da non caricare tutto il file in RAM ma
 processarlo sequenzialmente?

Se non c'e' altra soluzione ovviamente provero' in altro modo. Volevo
solo evitare di riscrivere e testare del codice gia' usato in altri
contesti (con file al max di 100 MB).

grazie
maxx

___
Talk-it mailing list
Talk-it@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-it


Re: [Talk-it] errore xsltproc

2012-03-19 Per discussione emmexx
Il 03/19/2012 12:24 PM, emmexx scrisse:
 La procedura lavora per un po' (non troppo) e poi si interrompe con
 questo messaggio:

Scusate ma mi sono accorto adesso che non avevo copiato tutto il
messaggio d'errore:

parser error : out of memory error
veneto.osm:2943702: error: (null) timestamp=2011-03-22T08:41:58Z
changeset=7634833 uid=10740 user=oscar_f

   ^
*** glibc detected *** xsltproc: munmap_chunk(): invalid pointer:
0x08062d1f ***
Aborted

ciao
maxx

___
Talk-it mailing list
Talk-it@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-it