Migrazione applicativo

Ciao a tutti, ho un problemino che spero qualcuno mi possa aiutare a
risolvere. devo portare un’applicazione scritta in ruby on rails da un
server ad un altro (suse 10.2).
ho installato le stesse componenti sui due server (almeno credo di aver
installato tutto). l’applicativo usa :
ruby 1.8.6
rails 1.2.3
mongrel cluster 1.0.2 (per l’avvio).
l’applicativo non e stato scritto da me (ho pochissima esperienza con
ruby), ma da un collega che ha lasciato la compagnia ed ora il capo lo
vuole su un nuovo server ed io sono nella…
dopo aver copiato tutti i files sul nuovo server se lancio il comando :
mongrel_rails cluster::start
ottengo un messaggio di errore:
** Starting Mongrel listening at 0.0.0.0:4001
** Starting Rails with production environment…
/usr/lib64/ruby/gems/1.8/gems/erubis-2.4.0/lib/erubis/helpers/rails_helper.rb:112:
uninitialized constant ActionView (NameError)
from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:32:in
gem_original_require' from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:32:inrequire’
from /srv/www/htdocs/pmt/config/environment.rb:15
from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
gem_original_require' from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:inrequire’
from
/usr/lib64/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/rails.rb:155:in
rails' from /usr/lib64/ruby/gems/1.8/gems/mongrel-1.0.1/bin/mongrel_rails:112:incloaker_’
from
/usr/lib64/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/configurator.rb:138:in
call' ... 6 levels... from /usr/lib64/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/command.rb:211:inrun’
from
/usr/lib64/ruby/gems/1.8/gems/mongrel-1.0.1/bin/mongrel_rails:243
from /usr/bin/mongrel_rails:16:in `load’
from /usr/bin/mongrel_rails:16

se commento la linea :

require ‘erubis/helpers/rails_helper’

nel file di configurazione
Environment.rb
l’applicativo parte, ma poi quando cerco di fare il login mi dice sempre
“login errato” (nessun messaggio di errore specifica niente altro in
nessun log).
Qualche lume??
Grazie a tutti per l’aiuto

Il 26 novembre 2008 15.59, Tommaso P. [email protected] ha
scritto:

[…]
/usr/lib64/ruby/gems/1.8/gems/erubis-2.4.0/lib/erubis/helpers/rails_helper.rb:112:
[…]
sono entrambi 64bit?
in entrambi rails è stato installato nello stesso modo?

quando crei un’istanza di rails con rails percorso, l’istanza fa
riferimento alla corrente installazione di rails; se la copi su un
altro computer con un’installazione diversa, i percorsi cambiano e
l’istanza non funziona.

la cosa più veloce, se hai installato tutto sul nuovo computer,
è:* creare una nuova istanza, con rails nomeistanza

  • copiare /app, /db, /lib, /vendor etc. etc. nella nuova istanza.

Pietro G. wrote:

Il 26 novembre 2008 15.59, Tommaso P. [email protected] ha
scritto:

[…]
/usr/lib64/ruby/gems/1.8/gems/erubis-2.4.0/lib/erubis/helpers/rails_helper.rb:112:
[…]
sono entrambi 64bit?
in entrambi rails � stato installato nello stesso modo?

quando crei un’istanza di rails con rails percorso, l’istanza fa
riferimento alla corrente installazione di rails; se la copi su un
altro computer con un’installazione diversa, i percorsi cambiano e
l’istanza non funziona.

la cosa pi� veloce, se hai installato tutto sul nuovo computer,
�:* creare una nuova istanza, con rails nomeistanza

  • copiare /app, /db, /lib, /vendor etc. etc. nella nuova istanza.

Innanzitutto grazie per la prnta risposta.
Si sono entrambi sistemi a 64 bit.
Si ho fatto come dici tu, ho ricreato l’istanza con ruby
/percorso/applicazione e quindi copiato le varie directory nella nuova.
(ed ho fatto lo stesso anche con il DB facendone un dump e
reimportandolo poi sul secondo server.

AIUTOOOO!! :wink:

se commento la linea :
require ‘erubis/helpers/rails_helper’

nel file di configurazione
Environment.rb
l’applicativo parte, ma poi quando cerco di fare il login mi dice sempre
“login errato” (nessun messaggio di errore specifica niente altro in
nessun log).

Ho fatto qualche ricerca e sembra si tratti di un bug che era stato
trovato
su Rails. Dovrebbe essere stato risolto con le nuove versioni, ma dubito
tu
possa fare un upgrade della versione di Rails. Un’altra strada potrebbe
essere aggiornare ad aggiornare la versione di eRubis, giusto per
provare a
vedere che succede.

Facci sapere.


Andrea R., http://mikamai.com
Writing http://sensejs.wordpress.com/
Collaborating http://therubymine.it
Reading http://stacktrace.it

Dovresti freezare le gemme nell’applicativo rails sul vecchio server,
copiare la cartella con il classico scp -r poi configurare i permessi
sulle cartelle log/ tmp/ ed attivare l’esecuzione del dispatch.*
e commentare la riga per erubis, ed entrera’ in funzione eruby,
vedi la configurazione per la connessione al db(potresti impostare
sempre il vecchio host in modo da essere sicuro) e poi nei
log dovresti poter vedere quello che succede.
Questo e’ il processo che di solito io faccio ma non uso mongrel
e ho migrato app da rails 1.2.x a 2.x su macchine diverse.
facci sapere

claudio

Innanzitutto grazie ad entrambi per le risposte.
Proveró ad aggiornare erubis anche se penso che (ditemi se mi sbaglio vi
prego) se tutto funzina con questa configurazione sul vecchio serer
dovrebbe anche funzionare sul uovo.

Claudio perdonami ma come ho detto prima, la mia esperienza con Ruby é
limitatissima quasi nulla, dimmi per favore se ho ben capito:

Claudio F. wrote:

Dovresti freezare le gemme nell’applicativo rails sul vecchio server,

se ho ben capito devo stoppare il server mongrel giuisto?

copiare la cartella con il classico scp -r poi configurare i permessi
sulle cartelle log/ tmp/
ho copiato il tutto e imposato i permessi come sull’originale

ed attivare l’esecuzione del dispatch.*
aiuto qui si comincia con l’arabo per me…:wink: cosa intendi con questa
frase?

e commentare la riga per erubis, ed entrera’ in funzione eruby,
se commento la riga erubis non viene chiamato giusto?

vedi la configurazione per la connessione al db(potresti impostare
sullo stesso server ho giá ripristinato un’installazione di server Wiki
con MySql e funziona bene, credevo che questo fosse la prova che la
connessione con il DB dovrebbe funzionare, mi sbaglio?

Se bypasso la riga che fa riferimento a eruby (in environment.rb) il
server parte, e la prima schermata di login viene aperta, purtroppo
anche immettendo nome utente e pwd corrette (ho verificato su MySQL e
sul vecchio server) mi dice sempre LOGIN UNSUCCESSFUL e nel log trovo
questo:

Processing UserController#home (for 3.183.252.251 at 2008-11-26
21:06:16) [GET]
Session ID: 4eab64950868a0c856919f7fb00fbff9
Parameters: {“action”=>“home”, “controller”=>“user”}
Redirected to http://3.249.237.170:4000/user/login
Filter chain halted as [authorize_action] returned false
Completed in 0.00424 (235 reqs/sec) | DB: 0.00346 (81%) | 302 Found
[http://3.249.237.170/]
Processing UserController#login (for 3.183.252.251 at 2008-11-26
21:06:16) [GET]
Session ID: 4eab64950868a0c856919f7fb00fbff9
Parameters: {“action”=>“login”, “controller”=>“user”}
Rendering within layouts/default
Rendering user/login
Completed in 0.01541 (64 reqs/sec) | Rendering: 0.01014 (65%) | DB:
0.00457 (29%) | 200 OK [http://3.249.237.170/user/login]
Processing ThemeController#stylesheets (for 3.183.252.251 at 2008-11-26
21:06:17) [GET]
Session ID: 4eab64950868a0c856919f7fb00fbff9
Parameters: {“theme”=>“ge”, “action”=>“stylesheets”,
“controller”=>“theme”, “filename”=>[“ge-10.css”]}
Sending file
/srv/www/htdocs/pmt/config/…/themes/ge/stylesheets/ge-10.css
Completed in 0.00086 (1165 reqs/sec) | Rendering: 0.00005 (5%) | DB:
0.00000 (0%) | 200 OK
[http://3.249.237.170/themes/ge/stylesheets/ge-10.css?]
Processing UserController#login (for 3.183.252.251 at 2008-11-26
21:06:33) [POST]
Session ID: 4eab64950868a0c856919f7fb00fbff9
Parameters: {“user”=>{“login”=>“100028499”, “password”=>“fr31s1ng”},
“commit”=>“Login”, “action”=>“login”, “controller”=>“user”}
Rendering within layouts/default
Rendering user/login
Completed in 0.01681 (59 reqs/sec) | Rendering: 0.01038 (61%) | DB:
0.00505 (30%) | 200 OK [http://3.249.237.170/user/login]
Processing ThemeController#stylesheets (for 3.183.252.251 at 2008-11-26
21:06:33) [GET]
Session ID: 4eab64950868a0c856919f7fb00fbff9
Parameters: {“theme”=>“ge”, “action”=>“stylesheets”,
“controller”=>“theme”, “filename”=>[“ge-10.css”]}
Sending file
/srv/www/htdocs/pmt/config/…/themes/ge/stylesheets/ge-10.css
Completed in 0.00087 (1146 reqs/sec) | Rendering: 0.00004 (5%) | DB:
0.00000 (0%) | 200 OK
[http://3.249.237.170/themes/ge/stylesheets/ge-10.css?]

Avete altre idee?? grazie in anticipo, meno male che ho trovato questo
gruppo cominciavo a sentirmi perso!!!

Attendo fiducioso aiuto!

Ciao

sempre il vecchio host in modo da essere sicuro) e poi nei
log dovresti poter vedere quello che succede.
Questo e’ il processo che di solito io faccio ma non uso mongrel
e ho migrato app da rails 1.2.x a 2.x su macchine diverse.
facci sapere

claudio

Ciao Claudio, graze ancora per le risposte. Non abbastanza pratica per
poter disabilitare il login purtroppo, quinndi ho provato altre due cose
da te inspirate non so se possono aiutare:

1 - ho provato a lanciare rake test RAILS_ENV=production per vedere se
tutto era ok, ed il risultto é stato:
Liquid doesn’t seem to be loaded… uninitialized constant Liquid
/usr/bin/ruby -Ilib:test
“/usr/lib64/ruby/gems/1.8/gems/rake-0.7.2/lib/rake/rake_test_loader.rb”
“test/functional/dataflow_controller_test.rb”
“test/functional/project_controller_test.rb”
“test/functional/status_otr_controller_test.rb”
“test/functional/status_installation_controller_test.rb”
“test/functional/status_iv_installation_controller_test.rb”
“test/functional/activity_controller_test.rb”
“test/functional/stype_controller_test.rb”
“test/functional/scheduler_controller_test.rb”
“test/functional/status_if_financial_controller_test.rb”
“test/functional/stop_reason_controller_test.rb”
“test/functional/status_license_controller_test.rb”
“test/functional/metric_controller_test.rb”
“test/functional/pole_controller_test.rb”
“test/functional/service_report_controller_test.rb”
“test/functional/country_controller_test.rb”
“test/functional/product_controller_test.rb”
“test/functional/admin/mailer_controller_test.rb”
“test/functional/admin/version_controller_test.rb”
“test/functional/admin/system_controller_test.rb”
“test/functional/admin/general_controller_test.rb”
“test/functional/service_controller_test.rb”
“test/functional/status_if_installation_controller_test.rb”
“test/functional/hcat_controller_test.rb”
“test/functional/comment_controller_test.rb”
“test/functional/notice_controller_test.rb”
“test/functional/report_controller_test.rb”
“test/functional/remote_controller_test.rb”
“test/functional/entitlement_controller_test.rb”
“test/functional/region_controller_test.rb”
Liquid doesn’t seem to be loaded… uninitialized constant Liquid

2 - come faccio a dire a rake di lanciare :
rake bootstrap
su database di produzione? (ho provato con RAILS_ENV=production ma non
funziona), puó darsi che abbia qualcosa a che fare con questo? (se
lancio il comando mi dá:
Skipping integrity check. You have no system roles set up; once your
database tables are set up, run rake bootstrap to create the basic
roles.
/usr/lib64/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/connection_adapters/mysql_adapter.rb:330:in
`real_connect’: Unknown database ‘pmt_test’ (Mysql::Error)

3 - Ho notato che anche se non riempio la password o ne metto una a
caso, il log di produzione mi ritorna sempre lo stesso :

Processing UserController#login (for 3.87.248.1 at 2008-11-26 23:13:44)
[POST]
Session ID: 4eab64950868a0c856919f7fb00fbff9
Parameters: {“user”=>{“login”=>“100028499”, “password”=>“”},
“commit”=>“Login”, “action”=>“login”, “controller”=>“user”}
Rendering within layouts/default
Rendering user/login
Completed in 0.01849 (54 reqs/sec) | Rendering: 0.01021 (55%) | DB:
0.00501 (27%) | 200 OK [http://3.249.237.170/user/login]
Processing ThemeController#stylesheets (for 3.87.248.1 at 2008-11-26
23:13:44) [GET]
Session ID: 4eab64950868a0c856919f7fb00fbff9
Parameters: {“theme”=>“ge”, “action”=>“stylesheets”,
“controller”=>“theme”, “filename”=>[“ge-10.css”]}
Sending file
/srv/www/htdocs/pmt/config/…/themes/ge/stylesheets/ge-10.css
Completed in 0.00085 (1172 reqs/sec) | Rendering: 0.00005 (5%) | DB:
0.00000 (0%) | 200 OK
[http://3.249.237.170/themes/ge/stylesheets/ge-10.css?]
Puó darsi che non elabori per niente il codice? come mai mi carica la
pagina iniziale?

GRazie ancora per l’aiuto.

On Wed, 2008-11-26 at 23:30 +0100, Tommaso P. wrote:

Ciao Claudio, graze ancora per le risposte. Non abbastanza pratica per
poter disabilitare il login purtroppo, quinndi ho provato altre due cose
da te inspirate non so se possono aiutare:

non so che applicazione e’ quella che stai migrando ma posso dirti che
se e’ stata sviluppata utilizzando alcune comode features di rails, e
non solo, basta che apri, con un editor, un controller x vedere se trovi
una riga del tipo:
before_filter :login_required

questa istruzione tende ad eseguire ogni invocazione del controller, ove
presente, della funzione login_required, che in questo caso verifica
se l’utente e’ loggato correttamente, N.B. login_required puo’ essere
scritta anche in altri modi( login_check, check_auth ecc…) quindi
adesso sei tu che devi individuarla e la commenti ponendo un #
all’inizio della riga.

“test/functional/status_iv_installation_controller_test.rb”
“test/functional/product_controller_test.rb”
“test/functional/remote_controller_test.rb”
“test/functional/entitlement_controller_test.rb”
“test/functional/region_controller_test.rb”
Liquid doesn’t seem to be loaded… uninitialized constant Liquid

i test funzionano solo se sono stati sviluppati

2 - come faccio a dire a rake di lanciare :
rake bootstrap
su database di produzione? (ho provato con RAILS_ENV=production ma non
funziona), puó darsi che abbia qualcosa a che fare con questo? (se
lancio il comando mi dá:
Skipping integrity check. You have no system roles set up; once your
database tables are set up, run rake bootstrap to create the basic
roles.
/usr/lib64/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/connection_adapters/mysql_adapter.rb:330:in
`real_connect’: Unknown database ‘pmt_test’ (Mysql::Error)

questa riga e’ causata poiche’ per fare i test hai bisogno di un
database pmt_test…fare i test sul db in produzione e’
pericoloso:)!!!

3 - Ho notato che anche se non riempio la password o ne metto una a
caso, il log di produzione mi ritorna sempre lo stesso :

eseguire il comando anche senza i parametri

23:13:44) [GET]
Session ID: 4eab64950868a0c856919f7fb00fbff9
Parameters: {“theme”=>“ge”, “action”=>“stylesheets”,
“controller”=>“theme”, “filename”=>[“ge-10.css”]}
Sending file
/srv/www/htdocs/pmt/config/…/themes/ge/stylesheets/ge-10.css
Completed in 0.00085 (1172 reqs/sec) | Rendering: 0.00005 (5%) | DB:
0.00000 (0%) | 200 OK
[http://3.249.237.170/themes/ge/stylesheets/ge-10.css?]
Puó darsi che non elabori per niente il codice? come mai mi carica la
pagina iniziale?

lo elabora, lo elabora!!!

nel enviroment.rb trovi tra le prime righe:
RAILS_ENV ||= ‘production’

puoi commentarla sempre che gia’ non lo sia? e vedere cosa succede nei
log quando fai la login?

naturalmete devi riavviare il web server ogni volta che modifichi
qualsiasi file dentro un applicativo rails(questa riga andrebbe spiegata
meglio, ma per ora rimaniamo cosi…)

On Wed, 2008-11-26 at 21:25 +0100, Tommaso P. wrote:

se ho ben capito devo stoppare il server mongrel giuisto?
In ruby e’ stato implementato un comando molto simile a Make
solo fatto totalmente in ruby e si chiama, manco a dirlo, Rake.
Rails incorpora gia’ un lista di tasks, se dalla root dell’applicativo
esegui il comando rake --tasks avrai una lista di funzioni che ti
permettono di gestire il tuo applicativo a livello sistemistico e non
solo. A questo punto troverai un comando:
rake rails:freeze:gems
che copia la versione delle gemme di rails, nel tuo caso 1.2.3,
e le posiziona dentro vendor/rails in questo modo non devi reinstallare
sulla nuova macchina quella versione di rails e sei sicuro che non
e’ quello il tuo problema.

copiare la cartella con il classico scp -r poi configurare i permessi
sulle cartelle log/ tmp/
ho copiato il tutto e imposato i permessi come sull’originale

ed attivare l’esecuzione del dispatch.*
aiuto qui si comincia con l’arabo per me…:wink: cosa intendi con questa
frase?

intendo dare i giusti permessi al file dispatch che utilizzi(non
so se con mongrel ci sono cose particolari sotto questo punto di vista)
poiche’ lavora in modalita’ cgi

e commentare la riga per erubis, ed entrera’ in funzione eruby,
se commento la riga erubis non viene chiamato giusto?
esatto e rails utilizza quello che usa di default e cioe’ eruby, in
questo modo levi un po’ di carne dal fuoco.

vedi la configurazione per la connessione al db(potresti impostare
sullo stesso server ho giá ripristinato un’installazione di server Wiki
con MySql e funziona bene, credevo che questo fosse la prova che la
connessione con il DB dovrebbe funzionare, mi sbaglio?

se l’applicativo parte significa che la connessione e’ ok.

Se bypasso la riga che fa riferimento a eruby (in environment.rb) il
server parte, e la prima schermata di login viene aperta, purtroppo
anche immettendo nome utente e pwd corrette (ho verificato su MySQL e
sul vecchio server) mi dice sempre LOGIN UNSUCCESSFUL e nel log trovo
questo:

Credo che erubis non abbia niente a che fare con il fatto che
non riesci ad entrare nell’applicativo, anche perche’ erubis serve solo
per parsare ed invocare il codice ruby presente nelle pagine rhtml
dentro app/views/ e non viene mai utilizzato dai controller oppure nei
modelli, quindi dovresti provare a fare un po’ di debug con il codice
tipo disabilitare l’autenticazione e fare diverse prove.

21:06:16) [GET]
“controller”=>“theme”, “filename”=>[“ge-10.css”]}
Rendering within layouts/default
Completed in 0.00087 (1146 reqs/sec) | Rendering: 0.00004 (5%) | DB:
0.00000 (0%) | 200 OK
[http://3.249.237.170/themes/ge/stylesheets/ge-10.css?]

Tutto questo risultato dei log va bene, ma hai postato
anche username e password in chiaro, quindi la prossima volta
ti consiglio di cancellare la riga con i parametri in url.

On Thu, 2008-11-27 at 00:31 +0100, Tommaso P. wrote:

Ciao Claudio, allora ecco un po’ piú di informazioni.
1 - nello user_controller.rb ho trovato:

The action used to log a user in. If the user was redirected to the

login page

by the login_required method, they should be sent back to the page

they were

trying to access. If not, they will be sent to “/user/home”.

def login
return if generate_blank

se mi dici che nel log development.log ottieni le stesse righe
allora probabilmente non viene effettuata la query e questo lo
si puo’ notare anche da questa riga:

Completed in 0.00085 (1172 reqs/sec) | Rendering: 0.00005 (5%) | DB:
0.00000 (0%) | 200 OK

come vedi DB: 0%

quindi commenta la riga ‘return if gene…’ con il solito # e vedi cosa
accade, se cambia qualcosa allora bisogna esaminare quel generate_blank

end

end
a quanto pare mi blocco dopo questa istruzione;

2 - questo messaggio c’é anche nel log di Mongrel, puó essere un
indizio?
:

Liquid doesn’t seem to be loaded… uninitialized constant Liquid

Liquid e’ una gemma che per il rendering dei template

quindi sul vecchio server dove gira senza problemi l’applicativo lancia
la lista delle gemme:
gem list
e vedi se trovi liquid
se e’ cosi’ allora lo devi installare anche sul nuovo server, nel caso
in cui e’ gia’ installato anche sul nuovo…allora bisogna vedere come
attivarlo nel codice.

“controller”=>“theme”, “filename”=>[“ge-10.css”]}

Vabbé intanto ti ringrazio per il super aiuto e le super spiegazioni!
Lentamente mi é un po’ pi´chiaro cosa succede in questa applicazione!
(anche se ancora sono in alo mare!).

Spero che ti vengano altre idee, io devo andare a letto (a malincuore
devo dire) ma domani devo lavorare, fammi sapere se ti viene in mente
qualcos’altro!!!
GRazie e buona notte a domani

claudio

Buongiorno Claudio, buongiorno forum. Allora ecco i passi che ho
intrapreso:
come da tuo suggerimento ho confrontato la lista di gem installate sulle
due macchine ed ho notato che FCGI mancava slla nuova, quindi prima ho
installato fastcgi e quindi la gemma.
Liquid non era presente nel vecchio server, ma per prova l’ho instalalto
sul nuovo ed effettivamente ora l’errore indicante la mancanza di Liquid
non appare piú nel log di Mongrel. Quello che ancora appare:

** Rails signals registered. HUP => reload (without restart). It might
not work well.

ho letto da qualche parte potrebbe avere a che fare con il
reindirizzamento dell’IP, e questo potrebbe anche coincidere con il
comportamento dell’applictivo, puó essere? avete esperienza con questo
messaggio?

Claudio F. wrote:

On Thu, 2008-11-27 at 00:31 +0100, Tommaso P. wrote:

Ciao Claudio, allora ecco un po’ piú di informazioni.
1 - nello user_controller.rb ho trovato:

The action used to log a user in. If the user was redirected to the

login page

by the login_required method, they should be sent back to the page

they were

trying to access. If not, they will be sent to “/user/home”.

def login
return if generate_blank

se mi dici che nel log development.log ottieni le stesse righe
allora probabilmente non viene effettuata la query e questo lo
si puo’ notare anche da questa riga:

Completed in 0.00085 (1172 reqs/sec) | Rendering: 0.00005 (5%) | DB:
0.00000 (0%) | 200 OK

come vedi DB: 0%

quindi commenta la riga ‘return if gene…’ con il solito # e vedi cosa
accade, se cambia qualcosa allora bisogna esaminare quel generate_blank

allora ho provato a commentare la rga ‘return if…’ come hai indicato
tu, ed effettivamente qualcosa succede ma non in senso positivo.
Commentandola non riesco ad accedere neanche alla pagina di login
infatti ottengo una pagina :
“Application Error (rails)”
ed il log dell’applicativo mi presenta queste righe:

Processing UserController#home (for 3.87.248.1 at 2008-11-27 09:36:24)
[GET]
Session ID: 7e9ad39851380df7e7e50e789b2708ce
Parameters: {“action”=>“home”, “controller”=>“user”}
Redirected to http://3.249.237.170:4000/user/login
Filter chain halted as [authorize_action] returned false
Completed in 0.02599 (38 reqs/sec) | DB: 0.02289 (88%) | 302 Found
[http://3.249.237.170/]

Processing UserController#login (for 3.87.248.1 at 2008-11-27 09:36:25)
[GET]
Session ID: 7e9ad39851380df7e7e50e789b2708ce
Parameters: {“action”=>“login”, “controller”=>“user”}
NoMethodError (undefined method []' for nil:NilClass): /app/controllers/user_controller.rb:212:in login’
/usr/lib64/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/base.rb:941:in
send' /usr/lib64/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/base.rb:941:in perform_action_without_filters’
/usr/lib64/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/filters.rb:368:in
perform_action_without_benchmark' /usr/lib64/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/benchmarking.rb:69:in perform_action_without_rescue’
/usr/lib64/ruby/1.8/benchmark.rb:293:in measure' /usr/lib64/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/benchmarking.rb:69:in perform_action_without_rescue’
/usr/lib64/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/rescue.rb:82:in
perform_action' /usr/lib64/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/base.rb:408:in send’
/usr/lib64/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/base.rb:408:in
process_without_filters' /usr/lib64/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/filters.rb:377:in process_without_session_management_support’
/usr/lib64/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/session_management.rb:117:in
process' /usr/lib64/ruby/gems/1.8/gems/rails-1.1.6/lib/dispatcher.rb:38:in dispatch’
/usr/lib64/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/rails.rb:78:in
process' /usr/lib64/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/rails.rb:76:in synchronize’
/usr/lib64/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/rails.rb:76:in
process' /usr/lib64/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:618:in process_client’
/usr/lib64/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:617:in
each' /usr/lib64/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:617:in process_client’
/usr/lib64/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:736:in
run' /usr/lib64/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:736:in initialize’
/usr/lib64/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:736:in
new' /usr/lib64/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:736:in run’
/usr/lib64/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:720:in
initialize' /usr/lib64/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:720:in new’

Se ho ben capito questo mi dice che la riga 212 nel controller
user_controller.rb :

if session[:user] = User.authenticate(params[:user][:login],
params[:user][:password])

ha chiamato un parametro con ‘[]’ nil puó essere?

Ciao per ora, fammi sapere se ti viene in mente qualcosa altro, io
purtropo sono arenato.
Grazie per l’aiuto

Ciao Claudio, allora ecco un po’ piú di informazioni.
1 - nello user_controller.rb ho trovato:

The action used to log a user in. If the user was redirected to the

login page

by the login_required method, they should be sent back to the page

they were

trying to access. If not, they will be sent to “/user/home”.

def login
return if generate_blank
@user = User.new(params[:user])
if session[:user] = User.authenticate(params[:user][:login],
params[:user][:password])
session[:user].logged_in_at = Time.now
session[:user].save
flash[:notice] = ‘Login successful’
redirect_to_stored_or_default :action => ‘home’
else
@login = params[:user][:login]
flash.now[:warning] = ‘Login unsuccessful’
end
end
a quanto pare mi blocco dopo questa istruzione;

2 - questo messaggio c’é anche nel log di Mongrel, puó essere un
indizio?
:

Liquid doesn’t seem to be loaded… uninitialized constant Liquid

3 - Anche commentando >

nel enviroment.rb trovi tra le prime righe:
RAILS_ENV ||= ‘production’

ottengo sempre lo stesso log file e lo stesso risultato.

23:13:44) [GET]
Session ID: 4eab64950868a0c856919f7fb00fbff9
Parameters: {“theme”=>“ge”, “action”=>“stylesheets”,
“controller”=>“theme”, “filename”=>[“ge-10.css”]}
Sending file
/srv/www/htdocs/pmt/config/…/themes/ge/stylesheets/ge-10.css
Completed in 0.00085 (1172 reqs/sec) | Rendering: 0.00005 (5%) | DB:
0.00000 (0%) | 200 OK
[http://3.249.237.170/themes/ge/stylesheets/ge-10.css?]
Pu� darsi che non elabori per niente il codice? come mai mi carica la
pagina iniziale?

lo elabora, lo elabora!!!

Vabbé intanto ti ringrazio per il super aiuto e le super spiegazioni!
Lentamente mi é un po’ pi´chiaro cosa succede in questa applicazione!
(anche se ancora sono in alo mare!).

Spero che ti vengano altre idee, io devo andare a letto (a malincuore
devo dire) ma domani devo lavorare, fammi sapere se ti viene in mente
qualcos’altro!!!

GRazie e buona notte a domani!

Buongiorno,
allora come avevamo visto non avveniva nessuna query in db, prova
a dare un’occhiatina al routes.rb oppure dentro i template
delle form…metti che ci fosse settato l’ip statico della vecchia
macchina.

On Thu, 2008-11-27 at 10:34 +0100, Tommaso P. wrote:

not work well.

1 - nello user_controller.rb ho trovato:
allora probabilmente non viene effettuata la query e questo lo

Parameters: {“action”=>“home”, “controller”=>“user”}
Redirected to http://3.249.237.170:4000/user/login
Filter chain halted as [authorize_action] returned false
Completed in 0.02599 (38 reqs/sec) | DB: 0.02289 (88%) | 302 Found
[http://3.249.237.170/]

qui una query viene eseguita!

Processing UserController#login (for 3.87.248.1 at 2008-11-27 09:36:25)
[GET]
Session ID: 7e9ad39851380df7e7e50e789b2708ce
Parameters: {“action”=>“login”, “controller”=>“user”}
NoMethodError (undefined method `[]’ for nil:NilClass):

sara’ dovuto che all’interno dell’applicativo bisogna essere
loggati per eseguire varie azioni

Scusatemi un’altra domanda probabilmente molto stupida, analizzando i
due server vedo che entrambi i server girano su Suse 64bit, ma su un
server il tutto é installato sotto
usr/lib/ruby/gems/1.8/…
mentre sull’altro il tutto é installato sotto:
usr/lib64/ruby/gems/1.8/…

domanda é possibile che sul server originale ruby, rails, e gems siano a
32 bit mentre sul secondo server siano a 64 bit?
Scusate la banalitá della domanda ma come detto in precedenza, la mia
conoscenza é molto limitata.
Grazie in anticipo per l’aiuto.

Ciao

Scusatemi un’altra domanda probabilmente molto stupida, analizzando i
due server vedo che entrambi i server girano su Suse 64bit, ma su un
server il tutto é installato sotto
usr/lib/ruby/gems/1.8/…

mentre sull’altro il tutto é installato sotto:
usr/lib64/ruby/gems/1.8/…

domanda é possibile che sul server originale ruby, rails, e gems siano a
32 bit mentre sul secondo server siano a 64 bit?
Scusate la banalitá della domanda ma come detto in precedenza, la mia
conoscenza é molto limitata.
Grazie in anticipo per l’aiuto.

Ciao

Allora rieccomi con lo stomaco pieno ma con poche altre certezze…

Per prima cosa ho installato l’ultima versione di erubis per tentare
anche la strada suggerita da un altro membro del forum, ma anche questa
volta se attivo
#require ‘erubis/helpers/rails_helper’
mi da errore.

Quindi ho attivato:
config.log_level = :debug
sempre in environment.rb per avere un log piú completo che allego in
fondo alla email.
Sembrerebbe che le query vengano eseguite ma non riesce a chiamare
stylesheets/ge-10.css?
non é che devo installare qualcosa di particolare affinché i file .css
vengano interpretati correttamente?

Ho provato a cercare dove potesse essere stato utilizzato l’IP statico,
ma non ho trovato niente, avete idee di dove potrebbe essere?

Quello che veramente non capisco é come sia possibile che su una
macchina Suse il tutto funzioni senza problemi, e su un’altra macchine
Suse con installato (apparentemente) gli stessi pacchetti no!
Oltre ai log di Apache, di Mongrel e dell’applicativo quali altri log
potrebbero dirmi qualcosa?

Grazie

Tommaso

Log di Debug:

Prima chiamata alla pagina:

Logfile created on Thu Nov 27 12:46:18 +0100 2008 by /

^[[4;36;1mRole Columns (0.001111)^[[0m ^[[0;1mSHOW FIELDS FROM
roles^[[0m
^[[4;35;1mSQL (0.000224)^[[0m ^[[0mSELECT count() AS count_all FROM
roles ^[[0m
^[[4;36;1mRole Load (0.000241)^[[0m ^[[0;1mSELECT * FROM roles WHERE
(roles.omnipotent = 1 ) ^[[0m
^[[4;36;1mRole Columns (0.000930)^[[0m ^[[0;1mSHOW FIELDS FROM
roles^[[0m
^[[4;35;1mSQL (0.000177)^[[0m ^[[0mSELECT count(
) AS count_all FROM
roles ^[[0m
^[[4;36;1mRole Load (0.000215)^[[0m ^[[0;1mSELECT * FROM roles WHERE
(roles.omnipotent = 1 ) ^[[0m
^[[4;35;1mSettings Columns (0.000735)^[[0m ^[[0mSHOW FIELDS FROM
settings^[[0m
^[[4;36;1mSettings Load (0.000264)^[[0m ^[[0;1mSELECT * FROM
settings WHERE (settings.var = ‘AETitel’ ) LIMIT 1^[[0m
^[[4;35;1mSQL (0.000080)^[[0m ^[[0mBEGIN^[[0m
^[[4;36;1mSettings Update (0.000213)^[[0m ^[[0;1mUPDATE settings SET
created_at = ‘2007-01-26 15:16:55’, var = ‘AETitel’, value = ‘—
PMT v1.03\n’, updated_at = ‘2008-11-27 12:46:59’ WHERE id =
1^[[0m
^[[4;35;1mSQL (0.005554)^[[0m ^[[0mCOMMIT^[[0m
^[[4;36;1mSettings Load (0.000192)^[[0m ^[[0;1mSELECT * FROM
settings WHERE (settings.var = ‘PageTitel’ ) LIMIT 1^[[0m
^[[4;35;1mSQL (0.000064)^[[0m ^[[0mBEGIN^[[0m
^[[4;36;1mSettings Update (0.000174)^[[0m ^[[0;1mUPDATE settings SET
created_at = ‘2007-01-30 13:43:25’, var = ‘PageTitel’, value =
‘— PMT - Project Management Tracking\n’, updated_at = ‘2008-11-27
12:46:59’ WHERE id = 3^[[0m
^[[4;35;1mSQL (0.000191)^[[0m ^[[0mCOMMIT^[[0m
^[[4;36;1mSettings Load (0.000186)^[[0m ^[[0;1mSELECT * FROM
settings WHERE (settings.var = ‘Footer’ ) LIMIT 1^[[0m
^[[4;35;1mSQL (0.000055)^[[0m ^[[0mBEGIN^[[0m
^[[4;36;1mSettings Update (0.000195)^[[0m ^[[0;1mUPDATE settings SET
created_at = ‘2007-01-26 15:16:55’, var = ‘Footer’, value = ‘—
"©2008 VPService. All Rights Reserved."\n’, updated_at =
‘2008-11-27 12:46:59’ WHERE id = 2^[[0m
^[[4;35;1mSQL (0.000175)^[[0m ^[[0mCOMMIT^[[0m

============> Qui ho cliccato su “Login” dopo aver immesso Username e
Password <========

Processing UserController#login (for 3.87.248.1 at 2008-11-27 12:46:59)
[POST]
Session ID: 7e9ad39851380df7e7e50e789b2708ce
Parameters: {“user”=>{“login”=>“100028499”, “password”=>“fr31s1ng”},
“commit”=>“Login”, “action”=>“login”, “controller”=>“user”}
required_perm is user/login
^[[4;36;1mPermission Load (0.003502)^[[0m ^[[0;1mSELECT DISTINCT
permissions.*
FROM permissions, roles,
permissions_roles
WHERE roles.name = ‘Guest’
AND roles.id = permissions_roles.role_id
AND permissions_roles.permission_id = permissions.id
AND permissions.controller = ‘user’
AND permissions.action = ‘login’
^[[0m
^[[4;35;1mUser Columns (0.001014)^[[0m ^[[0mSHOW FIELDS FROM
users^[[0m
^[[4;36;1mUser Load (0.000316)^[[0m ^[[0;1mSELECT * FROM users WHERE
(login = ‘100028499’ AND verified = 1 AND deleted = 0) LIMIT 1^[[0m
^[[4;35;1mUser Load (0.000514)^[[0m ^[[0mSELECT * FROM users WHERE
(login = ‘100028499’ AND salted_password =
‘3a0d34554fe0016873e5047f8e31e18e844f7b9c’ AND verified = 1) LIMIT
1^[[0m
Rendering within layouts/default
Rendering user/login
^[[4;36;1mSettings Load (0.000192)^[[0m ^[[0;1mSELECT * FROM
settings WHERE (settings.var = ‘PageTitel’ ) LIMIT 1^[[0m
^[[4;35;1mSettings Load (0.000171)^[[0m ^[[0mSELECT * FROM settings
WHERE (settings.var = ‘AETitel’ ) LIMIT 1^[[0m
^[[4;36;1mNotice Load (0.000202)^[[0m ^[[0;1mSELECT * FROM notices
WHERE (cm = ‘userlogin’) ^[[0m
Rendered user/_tabnav_sub (0.00224)
^[[4;35;1mSettings Load (0.000178)^[[0m ^[[0mSELECT * FROM settings
WHERE (settings.var = ‘Footer’ ) LIMIT 1^[[0m
Completed in 0.06857 (14 reqs/sec) | Rendering: 0.03303 (48%) | DB:
0.01574 (22%) | 200 OK [http://3.249.237.170/user/login]

Processing ThemeController#stylesheets (for 3.87.248.1 at 2008-11-27
12:47:01) [GET]
Session ID: 0bf8691ebe0c761d41f058a3ebe4a8b0
Parameters: {“theme”=>“ge”, “action”=>“stylesheets”,
“controller”=>“theme”, “filename”=>[“ge-10.css”]}
Sending file
/srv/www/htdocs/pmt/config/…/themes/ge/stylesheets/ge-10.css
Cached page: /themes/ge/stylesheets/ge-10.css? (0.00038)
Completed in 0.00310 (322 reqs/sec) | Rendering: 0.00005 (1%) | DB:
0.00000 (0%) | 200 OK
[http://3.249.237.170/themes/ge/stylesheets/ge-10.css?]

Processing ThemeController#stylesheets (for 3.87.248.1 at 2008-11-27
12:47:02) [GET]
Session ID: 7e9ad39851380df7e7e50e789b2708ce
Parameters: {“theme”=>“ge”, “action”=>“stylesheets”,
“controller”=>“theme”, “filename”=>[“ge-10.css”]}
Sending file
/srv/www/htdocs/pmt/config/…/themes/ge/stylesheets/ge-10.css
Cached page: /themes/ge/stylesheets/ge-10.css? (0.00037)
Completed in 0.00099 (1010 reqs/sec) | Rendering: 0.00005 (4%) | DB:
0.00000 (0%) | 200 OK
[http://3.249.237.170/themes/ge/stylesheets/ge-10.css?]