none
Post edits disappear without noticing RRS feed

  • Question

  • Let's not tell AlexB, but the old back-end problem of post edits not being recorded is a lot more painful now.  It now looks like the edit was effective, the inline editor probably takes care of it.  But finding out if it really made it into the database requires a page refresh.

    I've also lost a few posts that looked like they made it into the thread but then later on turn out to be completely gone.

    We'll need an "Unexpected error" to tell us whether or not the post really made it.
    Hans Passant.
    Tuesday, March 31, 2009 11:55 AM

Answers

  • -If the submit comes back and re-displays the updated/edited message without "Unexpected error" then it without a doubt made it to the db.
    -If after a refresh and don't see the edit, then it's really the same old stale/local cached thread issue that can occur. Given time, the edit would eventually appear since it really did make it to the db. One way you can verify this now is to right click on Edit and open in new window.. this'll give you a TextArea based edit screen but it's bypassing the Page Output cache and going to the thread object itself. It may be a little tough to read because its the html for the message.

    We'll be looking at ways of doing better in these scenarios, I think in the May release, when we update to a newer version of Velocity cache and start making use of some of their more advanced features.
    Rob J, Forums Dev
    http://twitter.com/robjoh
    Tuesday, March 31, 2009 8:26 PM
  • Not exactly, I fully believe you that it happened. What I am saying is.

    1. If you do not get unexpected error (and the spinner goes away...),  then your edit had to have made it to the db. No Exception was thrown and the code returned.
    2. In the current system, we display that message inline after the action so after the edit completed, you should have seen it correctly on the screen. Which I think is what you are saying in the original post.
    3. If you refresh the page or navigate to the thread and your edit does not appear, I'll try to summarize what I think is going on and also how you can doublecheck and probably even recoup the work.

    What happened: We have many web servers, and a distributed cache. When you submit your edit, it is saved to the database and the Thread object is dumped from the distributed cache as is the PageModel<Thread> object for that thread. Each webserver however has a local cache with a expiry of 5 seconds. If on another web server, just after you're edit occurred, has a request to display the thread page AND it happens to have the thread in local cache, then it would render the page with that thread and cache the page output.

    What you can do/try: Right Click on Edit for that message and Open in New Tab/Window. This will bring you to the non-js version of the Message Edit page, displaying a TextArea with the acutal message body in it (like Html Source Edit mode). This page does NOT use the PageModel<Thread>, it uses the Thread object from cache which will\would have been refreshed from the DB since it was dumped from cache after your edit. So what you should see is your edited version of the data in there.

    If that is in fact the case, just hit Submit. The edit will get saved again and you'll get redirected to the Thread page, which is hopefully now displaying your edit.




    Rob J, Forums Dev
    http://twitter.com/robjoh
    Tuesday, March 31, 2009 9:16 PM
  • Distributed cache has for all intents a no Expiry. So on the cases where the scenario I outlined occur, it could take a day or more before it was dumped only because of Expiry. In reality, it's not the d-cache thats the issue it's the combination of local cache and timing. The big integrity issue(s) we had with d-cache were mitigated towards the end of January.

    Next time the issue occurs for you, try the test I mentioned and let me know if you see the updated post or not. You should end up at a url like http://social.msdn.microsoft.com/Forums/en-US/reportabug/thread/6dcfd855-e1fc-4fc1-95dd-e3e6a59b44d2/03d9a800-8862-4e5d-9ecf-79fed083f27d/edit That will go a long way to identifying that its the timing issue or if it's something else.
    Rob J, Forums Dev
    http://twitter.com/robjoh
    Tuesday, March 31, 2009 10:19 PM
  • Yes, I understand. Don't keep every thread open :)

    At the time you notice/discover that the issue happend, right click on the edit link and take a look at the message as its displayed on that edit message page. If the edit is there, just hit submit and all should be fixed in the thread.

    If the edit is not there, let me know, post a link here. Becuase that means it's a different issue than what I'm thinking it is...
    Rob J, Forums Dev
    http://twitter.com/robjoh
    Tuesday, March 31, 2009 10:37 PM

All replies

  • It doesn't seem to be there as often (or even close to as often), but I've seen this a few times as well.

    I've also noticed a single edit comment being listed twice even when I only clicked once (and that listing coming so late I thought the first one hadn't worked so I click on Submit again (and got three lines)
    WSS FAQ sites: WSS 2.0: http://wssv2faq.mindsharp.com WSS 3.0 and MOSS 2007: http://wssv3faq.mindsharp.com
    Total list of WSS 3.0 and MOSS 2007 Books (including foreign language titles) http://wssv3faq.mindsharp.com/Lists/v3%20WSS%20FAQ/V%20Books.aspx
    Tuesday, March 31, 2009 2:27 PM
  • -If the submit comes back and re-displays the updated/edited message without "Unexpected error" then it without a doubt made it to the db.
    -If after a refresh and don't see the edit, then it's really the same old stale/local cached thread issue that can occur. Given time, the edit would eventually appear since it really did make it to the db. One way you can verify this now is to right click on Edit and open in new window.. this'll give you a TextArea based edit screen but it's bypassing the Page Output cache and going to the thread object itself. It may be a little tough to read because its the html for the message.

    We'll be looking at ways of doing better in these scenarios, I think in the May release, when we update to a newer version of Velocity cache and start making use of some of their more advanced features.
    Rob J, Forums Dev
    http://twitter.com/robjoh
    Tuesday, March 31, 2009 8:26 PM
  • You are telling me it shouldn't have happened.  Yet it did.  Can you provide me with a theory about what I might have done wrong or how I can check whether or not my edit or post really made it for others to see?  There is nothing more frustrating then working on a post and seeing it go up in smoke.  I need to know what I did wrong.
    Hans Passant.
    Tuesday, March 31, 2009 8:46 PM
  • Not exactly, I fully believe you that it happened. What I am saying is.

    1. If you do not get unexpected error (and the spinner goes away...),  then your edit had to have made it to the db. No Exception was thrown and the code returned.
    2. In the current system, we display that message inline after the action so after the edit completed, you should have seen it correctly on the screen. Which I think is what you are saying in the original post.
    3. If you refresh the page or navigate to the thread and your edit does not appear, I'll try to summarize what I think is going on and also how you can doublecheck and probably even recoup the work.

    What happened: We have many web servers, and a distributed cache. When you submit your edit, it is saved to the database and the Thread object is dumped from the distributed cache as is the PageModel<Thread> object for that thread. Each webserver however has a local cache with a expiry of 5 seconds. If on another web server, just after you're edit occurred, has a request to display the thread page AND it happens to have the thread in local cache, then it would render the page with that thread and cache the page output.

    What you can do/try: Right Click on Edit for that message and Open in New Tab/Window. This will bring you to the non-js version of the Message Edit page, displaying a TextArea with the acutal message body in it (like Html Source Edit mode). This page does NOT use the PageModel<Thread>, it uses the Thread object from cache which will\would have been refreshed from the DB since it was dumped from cache after your edit. So what you should see is your edited version of the data in there.

    If that is in fact the case, just hit Submit. The edit will get saved again and you'll get redirected to the Thread page, which is hopefully now displaying your edit.




    Rob J, Forums Dev
    http://twitter.com/robjoh
    Tuesday, March 31, 2009 9:16 PM
  • To be sure: I'm talking about permanently disappearing, not just a delayed update.  The post got accepted after hitting submit, it appeared on my screen as part of the thread.  But when I see the thread many hours later it isn't there.  This distributed cache sounds like a ripe source of lossage.  Considering the speed at which the post is accepted, the post/thread could only have made it into the local cache.  Is there an error log on this?  Anybody looked at it lately?
    Hans Passant.
    Tuesday, March 31, 2009 9:47 PM
  • Distributed cache has for all intents a no Expiry. So on the cases where the scenario I outlined occur, it could take a day or more before it was dumped only because of Expiry. In reality, it's not the d-cache thats the issue it's the combination of local cache and timing. The big integrity issue(s) we had with d-cache were mitigated towards the end of January.

    Next time the issue occurs for you, try the test I mentioned and let me know if you see the updated post or not. You should end up at a url like http://social.msdn.microsoft.com/Forums/en-US/reportabug/thread/6dcfd855-e1fc-4fc1-95dd-e3e6a59b44d2/03d9a800-8862-4e5d-9ecf-79fed083f27d/edit That will go a long way to identifying that its the timing issue or if it's something else.
    Rob J, Forums Dev
    http://twitter.com/robjoh
    Tuesday, March 31, 2009 10:19 PM
  • Is there an error log on this?  Anybody looked at it lately?
    It must be clear to you that I cannot discover there's an issue until much later.  Keeping every single thread I post to open in a tab just isn't practical.  What else can I do?

    Hans Passant.
    Tuesday, March 31, 2009 10:28 PM
  • Yes, I understand. Don't keep every thread open :)

    At the time you notice/discover that the issue happend, right click on the edit link and take a look at the message as its displayed on that edit message page. If the edit is there, just hit submit and all should be fixed in the thread.

    If the edit is not there, let me know, post a link here. Becuase that means it's a different issue than what I'm thinking it is...
    Rob J, Forums Dev
    http://twitter.com/robjoh
    Tuesday, March 31, 2009 10:37 PM