Re: [Talk-it] errore xsltproc
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
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
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
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
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/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
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
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
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
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
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
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
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/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
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
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