The issue is not you picklying. The issue is you storing in the
session something the web2py can pickle but not unpickle, like an
object of a class defined in a module that you define or import.

On Oct 4, 10:18 am, Jason Brower <encomp...@gmail.com> wrote:
> I will look if I am picling anything, but if I remember, I am only
> pickling things AFTER I started seeing this bug.  Though I think you
> pickling in the application if I am not mistaken.
> What would you like next?
> Best Regards,
> Jason Brower
>
> On 10/04/2010 04:44 PM, mdipierro wrote:
>
> > Not sure but here
>
> > request.session_id: None
> > response.session_id: 127-0-0-1-3bf56311-2bf8-454d-9772-5825e8533348
> > insecure string pickle
> > insecure string pickle
> > insecure string pickle
> > insecure string pickle
> > insecure string pickle
> > insecure string pickle
> > insecure string pickle
> > insecure string pickle
> > time in controller: 1286173614.93
> > session keys: ['_formkey[default]', 'auth']
> > request.session_id: None
> > response.session_id: 127-0-0-1-8ae576c9-83d3-49c9-9b31-0dcf7fb5b573
>
> > something bad happens. From that moment on web2py seems to issue a new
> > session at every request. You either do a os.chdir (not allowed) or
> > you store in the session an object can Python cannot unpickle back.
>
> > On Oct 4, 1:33 am, Jason Brower<encomp...@gmail.com>  wrote:
>
> >> Attached is the print out.  I still have my old debug information there
> >> showing when I press each key.
> >> Thanks,
> >> Jason Brower
>
> >> On 09/29/2010 04:34 PM, mdipierro wrote:
>
> >>> I am going to need your help debugging this. In gluon/globals.py
>
> >>>               if response.session_id:
> >>>             try:
> >>>                       response.session_file = \
> >>>                     open(response.session_filename, 'rb+')
> >>>                       portalocker.lock(response.session_file,
> >>>                         portalocker.LOCK_EX)
> >>>                       self.update(cPickle.load(response.session_file))
> >>>                       response.session_file.seek(0)
> >>>                   except:
> >>>                       self._unlock(response)
> >>>                       response.session_id = None
>
> >>> change it to
>
> >>>               if response.session_id:
> >>>             try:
> >>>                       response.session_file = \
> >>>                     open(response.session_filename, 'rb+')
> >>>                       portalocker.lock(response.session_file,
> >>>                         portalocker.LOCK_EX)
> >>>                       self.update(cPickle.load(response.session_file))
> >>>                       response.session_file.seek(0)
> >>>                   except Exception, e:
> >>>                       print e
> >>>                       self._unlock(response)
> >>>                       response.session_id = None
>
> >>> what does it print?
>
> >>> On Sep 29, 12:14 am, Jason Brower<encomp...@gmail.com>    wrote:
>
> >>>> request.session_id is always none, how ever.
> >>>> BR,
> >>>> Jason
> >>>> On 09/28/2010 06:30 PM, mdipierro wrote:
>
> >>>>> add {{=request.session_id}} and {{=response.session_id}} my guess is
> >>>>> that for some reason the browser requests a session, web2py cannot
> >>>>> open it, so it issues a new one.
> >>>>> check if the session_in in request/response and across requests is
> >>>>> always the same.
>
> >>>>> On Sep 28, 10:05 am, Jason Brower<encomp...@gmail.com>      wrote:
>
> >>>>>> There are two pages in two different controller files running.
> >>>>>> One is automated... it executes all the session updating for the
> >>>>>> interface.  For example it tells what motor is in motion or what sensor
> >>>>>> was triggered. I don't have this controller function print anything at
> >>>>>> all. (I did have it print the data it just pulled at one point but the
> >>>>>> error never happened.)  It simply updates a bunch of session 
> >>>>>> variables.  
> >>>>>> The second function in another controller file views that session 
> >>>>>> data.  
> >>>>>> I can refresh the page and it will read the session data and display it
> >>>>>> to the screen.  This function prints data to the terminal when ever it
> >>>>>> is called.  It prints the sorted(session.keys()) and the epoch time.  
> >>>>>> This is where the error shows.  When I refresh some times it shows the
> >>>>>> session data other times it does not.  The parts of my page in the view
> >>>>>> that need the session data will not work. (They are NoneType objects.) 
> >>>>>> I
> >>>>>> use the epoch time to show when they events happened to you.  I don't
> >>>>>> have a session.forget in my entire coded no anything that would reset
> >>>>>> these varialbes except for the first function I mentioned here.
> >>>>>> Best Regards,
> >>>>>> Jason Brower
> >>>>>> On 09/28/2010 04:37 PM, mdipierro wrote:
>
> >>>>>>> Jason,
>
> >>>>>>> I am sorry but I do not have enough information. What do you see in
> >>>>>>> the output that is wrong? What code produces the output?
>
> >>>>>>> massimo
>
> >>>>>>> On Sep 28, 6:16 am, Jason Brower<encomp...@gmail.com>        wrote:
>
> >>>>>>>> We had thought it at one point to be issues with the corruption of 
> >>>>>>>> the
> >>>>>>>> file I used between the machine_server and the web2py_server, but 
> >>>>>>>> sadly
> >>>>>>>> the issues still occurs...
> >>>>>>>> I have been able to implement my machine server in twisted with AMP
> >>>>>>>> protocol builder.  I have web2py picking up that data.  This is a
> >>>>>>>> totally awsome setup and works very well.  I can see the data at any
> >>>>>>>> time by simple requesting it.
> >>>>>>>> I have 2 controller files running here...
> >>>>>>>> One is running a page that refreshes a smaller one that runs a 
> >>>>>>>> request
> >>>>>>>> to the twisted server, it instantly gets the data back and parses it 
> >>>>>>>> out
> >>>>>>>> to the session keys you see in the attatched files.
> >>>>>>>> On the second controller I have a more details information of that
> >>>>>>>> session data.  It simply reads from the session keys and prints them
> >>>>>>>> nicely for the view.  There is little code except when getting a
> >>>>>>>> particular item in the session dictionaries. And a small custom 
> >>>>>>>> form.  I
> >>>>>>>> personally feel these are not related at all.
> >>>>>>>> In that controller's index I also have it print the time.time() and
> >>>>>>>> sorted(session.keys()) to print this debug information for you.  I 
> >>>>>>>> was
> >>>>>>>> manually refression the page to show you what happens.  It's not 
> >>>>>>>> every
> >>>>>>>> other anymore, it's rather random to me...
> >>>>>>>> I can't imagine where else in my code I could be making a mistake 
> >>>>>>>> here.
> >>>>>>>> Best Regards,
> >>>>>>>> Jason Brower
>
> >>>>>>>>      error_report.txt
> >>>>>>>> 6KViewDownload
>
> >>   debug_info1.txt
> >> 27KViewDownload
>
>

Reply via email to