<span class="gmail_quote"></span>Fair points, but still we would be much better of than now, when we cannot even shutdown the web-server, let alone change the code, right? <br><br>What I am trying to say I guess, is that if I was running a big web service I might be ok with loosing user sessions when there is an upgrade. I definitly would not be happy about having to match user requests to specific (possibly dead) instances of the web-server or with keeping two week old continuations in main memory.
<br><span class="sg"><br>-pp</span><div><span class="e" id="q_1095119a3b59d23e_2"><br><br><br><br><br><div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I was thinking about this, and was a bit discouraged.<br>
<br>The serialized form of a continuation either includes the code along<br>with the environents and store locations or it doesn't.<br><br>If it does, then you're effectively stashing entire scripts,<br>environments, and heaps in your hidden fields (or URLs!). That's a
<br>lot of info. And a pretty big security hole, since resuming the<br>continuation entails basically loading a program state from an<br>untrusted source and resuming it.<br><br>If it doesn't include them, then even minor changes to the code
<br>running on the server --- adding a local variable somewhere, say ---<br>could introduce a mismatch between the continuations stored in<br>people's browsers and the code that would resume under their guidance.<br> Serialized continuations are, in effect, a data format that is
<br>extremely sensitive to the exact code the server is running.<br><br>This is a problem that applies to all sorts of automatic persistence<br>tactics. You're taking the states your program can occupy and making<br>a file format that can represent them. But since you're not exerting
<br>any judgement over what goes in the file and what doesn't, minor<br>changes in your program's code result in, effectively, incompatible<br>file formats.<br></blockquote></div><br>