On Aug 13, 2:30 am, Jimmy <[email protected]> wrote:
> I'm using an exception notification plugin which sends me an email
> whenever an exception is raised on the rails server. Regularly I'm
> getting exception reports due to raising a PermissionDenied exception
> when a user has no access or because rails complains about an invalid
> authenticity token.
>
> I can never reproduce these. And in 99% of the cases it works fine for
> our users, but there's a 1% for whom it apparently fails.
>
> These exceptions are always due to an action triggered by an ajax
> request.
>
do you have a concurrent request problem ? when you get two
overlapping requests from a single user then changes by one of them to
the session will 'beat' changes by the other one.

Fred


> The content of the exception report is always something like below.
>
> The thing I find odd is that the HTTP_COOKIE indicates the user is
> logged in, but the session section reports a session_id of nil. I.e.,
> the code will see the user as logged out, and raise an access denied
> exception.
>
> In my log I can see that subsequent (non-Ajax) requests from the same
> user do work fine.
>
> I also notice that all exception reports are always from MSIE6.0 and
> MSIE7.0 clients.
>
> I'm using jQuery.
>
> I was wondering if anyone else has seen issues like this. Is there a
> known cause and/or workaround / solution?
>
> Cheers,
> Jimmy
>
> -------------------------------
> Request:
> -------------------------------
>
>   * URL       :http://example.com/ajaxaction
>   * IP address: 165.86.81.25
>   * Parameters: {"format"=>"json", "action"=>"ajaxaction",
> "_method"=>"put", "authenticity_token"=>"/y/
> G2RkIl8kQjgkc934aui8iEvJ1HeOfCY6EnB3/VQs=", "controller"=>"posts",
> "invitation_code"=>"4ba96ffdcb92dc054bbf5fb803099645cc1ce10d"}
>   * Rails root: /var/www/production.example.com/releases/
> 20090812034504
>
> -------------------------------
> Session:
> -------------------------------
>
>   * session id: nil
>   * data: nil
>
> -------------------------------
> Environment:
> -------------------------------
>
>   * CONTENT_LENGTH                              : 83
>   * CONTENT_TYPE                                : application/x-www-
> form-urlencoded
>   * DOCUMENT_ROOT                               : /var/www/
> production.example.com/current/public
>   * HTTP_ACCEPT                                 : application/json,
> text/javascript, */*, text/javascript
>   * HTTP_ACCEPT_LANGUAGE                        : en-au
>   * HTTP_CONNECTION                             : Keep-Alive
>   * HTTP_CONTENT_TYPE                           : application/x-www-
> form-urlencoded
>   * HTTP_COOKIE                                 :
> __utma=136239534.4438442336996744000.1340901452.12403901452.1250110149.2;
> __utmb=133279534.11.30.1230110149;
> __utmz=136279534.1240901452.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=
> (none);
> _example_session=BAh7CjoPc2Vzc2lvbl9pZCIlMWQ3ZWIwYTJlYzRkNGI2OTk0MTVjYWE3NT 
> RhZTJlNzA6EF9jc3JmX3Rva2VuIjEveS9HMlJrS3w4a1FqZ2tjOGk2YXVpOGlFdkoxSGVPZkNZN 
> kVuQjMvVlFzPToMdXNlcl9pZGkCw2o6CHNzaSINLGxpYnJhcnkiCmZsYXNoSUM6J0FjdGlvbkNv 
> bnRyb2xsZXI6OkZsYXNoOjpGbGFz3Ehhc2h7AAY6CkB1c2VkewA
> %3D--9a490353a0b021dead9cbd438fd97997eb22c70a; __utmc=136579534;
> __qca=1242135797-11579318-30372251; __qcb=496730851;
> __gads=ID=4b3d13fa4267a99d:T=1250110172:S=ALNI_MZjarEIGP8SctjtUWhuKtWFvl7Ed g;
> auth_token=; __unam=7659673-12310665fd4-664da270-1
>   * HTTP_HOST                                   : example.com
>   * HTTP_PRAGMA                                 : no-cache
>   * HTTP_REFERER                                :http://example.com/
>   * HTTP_USER_AGENT                             : Mozilla/4.0
> (compatible; MSIE 6.0; Windows NT 5.1; SV1)
>   * HTTP_VIA                                    : 1.0 GWD-BK7-PXY01,
> 1.1 GWD-BK7-PXY03
>   * HTTP_X_NOVINET                              : v1.2
>   * HTTP_X_REQUESTED_WITH                       : XMLHttpRequest
>   * PATH_INFO                                   : /ajaxaction
>   * QUERY_STRING                                :
>   * REMOTE_ADDR                                 : 165.86.81.25
>   * REMOTE_PORT                                 : 41604
>   * REQUEST_METHOD                              : PUT
>   * REQUEST_URI                                 : /ajaxaction
>   * SCRIPT_NAME                                 :
>   * SERVER_ADDR                                 : 100.22.88.200
>   * SERVER_ADMIN                                :
> [email protected]
>   * SERVER_NAME                                 : example.com
>   * SERVER_PORT                                 : 80
>   * SERVER_PROTOCOL                             : HTTP/1.1
>   * SERVER_SOFTWARE                             : Apache/2.2.8
> (Ubuntu) mod_ssl/2.2.8 OpenSSL/0.9.8g Phusion_Passenger/2.2.3
>   * _                                           : _
>   * action_controller.request.path_parameters   :
> formatjsonactionaccept_postscontroller4ba96ffdcb92dc054bbf5fb803099645cc1ce 
> 10d
>   * action_controller.request.query_parameters  :
>   * action_controller.request.request_parameters: authenticity_token/y/
> G2RkIl8kQjgkc8i6aui8iEvJ1HeOfCY6EnB3/VQs=_methodput
>   * action_controller.rescue.request            :
> #<ActionController::Request:0x7f1e3e134f80>
>   * action_controller.rescue.response           :
> #<ActionController::Response:0x7f1e3e130778>
>   * rack.errors                                 : #<IO:0x7f1e47c9cea0>
>   * rack.input                                  :
> #<Rack::RewindableInput:0x7f1e3e13ee40>
>   * rack.methodoverride.original_method         : POST
>   * rack.multiprocess                           : true
>   * rack.multithread                            : false
>   * rack.request.cookie_hash                    :
> __utma136279534.4458442336996744000.1240901452.1240901452.1250110149.2__utm 
> b136279534.11.10.1250110149__utmc136279534__utmz136279534.1240901452.1.1.ut 
> mcsr=
> (direct)|utmccn=(direct)|utmcmd=(none)
> _example_sessionBAh7Czc2lvbl9pZCIlMWQ3ZWIwYTJlYzRkNGI2OTk0MTVjYWE3NTRhZTJlN 
> zA6EF9jc3JmX3Rva2VuIjEveS9HMlJrSWw4a1FqZ2tjOGk2YXVpOGlFdkoxSGVPZkNZNkVuQjMv 
> VNlcl9pZGkCw2o6CHNzaSINLGxpYnJhcnkiCmZsYXN6J0FjdGlvbkNvbnRyb2xsZXI6OkZsYXNo 
> OjpGbGFzaEhhc2h7AAY6CkB1c2VkewA=--9a490353a0b021dead28fd97997eb22c70aauth_t 
> oken__qca1245797-19318-302251__qcb4740851__gadsID=4b3d18f7a99d:T=1250110172 
> :S=ALNI_MZjarEIGPtUWhuKtWFvl7Edg__unam7639673-123665fd4-665da270-1
>   * rack.request.cookie_string                  :
> __utma=136279534.4458442336996744000.1240901452.1240901452.1250110149.2;
> __utmb=136279534.11.10.1250110149;
> __utmz=136279534.1240901452.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=
> (none);
> _example_session=BAh7CjoPc2Vzc2lvbl9pZCIlMWQ3ZWIwYTJ2OTk0MTVjYWE3NTRhZTJlNz 
> A6EF9jc3JmX3Rva2VuIjEveS9HMlJrSWw4a1FqZ2tjOGk2YXVpOGlFdkoxSGVPZkNZNkVuQjMvV 
> lFzPToMdXNlcl9pZGkCw2o6CHNzaSINLGxpYnJhcnkiCmZsYXNoSUM6J0FjdGlvbkNvbnRyb2xs 
> ZXI6OkZsYXNoOjpGbGFzaEhhc2h7AAY6CkB1c2VkewA
> %3D--9a490353a0b02fd97997eb22c70a; __utmc=13634;
> __qca=12421797-11318-372251; __qcb;
> __gads=ID=4b3d18fa4267a99d:T=1250110172:S=ALNI_MZjarEhuKtWFvl7Edg;
> auth_token=; __unam=7639673-12310665fd4-665da270-1
>   * rack.request.form_hash                      : authenticity_token/y/
> G2RkIl8kQjgkc8J1HeOfCY6EnB3/VQs=_methodput
>   * rack.request.form_input                     :
> #<Rack::RewindableInput:0x7f1e3e13ee40>
>   * rack.request.form_vars                      :
> _method=put&authenticity_token=%2Fy%2FG2RkIl8kQjiEvJ1HeOfCY6EnB3%2FVQs
> %3D
>   * rack.request.query_hash                     :
>   * rack.request.query_string                   :
>   * rack.run_once                               : false
>   * rack.session                                :
> session_id1d7eb0a2ec4aa754ae2e70_csrf_token/y/
> G2RkIl8ui8iEvJ1HeOfCY6EnB3/VQs=user_id21
>   * rack.session.options                        : path/
> expire_afterhttponlytruedomain.example.comid1d7eb0a2ec4d4b69a754ae2e70key_s 
> ession_id
>   * rack.url_scheme                             : http
>   * rack.version                                : 10
>
>   * Process: 20353
>   * Server : exampleproduction
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to