Edit Very Long Page and Quickly Save ? the contents of the page is duplicated
Asked by Jiri Pik:

I have encountered this problem a couple of times already and it's most bothersome.

You have a very long page with many images and it takes a few secs just to load it. You press Edit and modify anything, e.g. the title, and then update it / save it.

The contents of the entire page is pasted anew at the bottom of the old page.

What to do?


Answers:
author: JP _AC Bielefeld Leader_
body: Hi,

if you can reproduce it: File a bug with Atlassian.

Best

JP

comments: author: Jiri Pik
body: [@Shannon S](/t5/user/viewprofilepage/user-id/510046) - would it be please possible for you to create a bug for Confluence? I am not allowed to create one.

I have just replicated this issue again - on a page with a single line and on the latest Confluence. What happened is that I hit Edit and it took a bit longer than usual and then somehow the one line got duplicated.


author: Shannon S
body: Hi [@Jiri Pik](/t5/user/viewprofilepage/user-id/1105340),

I certainly can! Can you tell me, when you save the page, does the duplicated content remain? There's a similar bug that people have encountered lately, but it sounds like the content doesn't carry over to view mode:

* [CONFSERVER-59227](https://jira.atlassian.com/browse/CONFSERVER-59227) *Duplicate content shown when editing a page*

Thank you!

Shannon


author: Jiri Pik
body: THANK YOU, Shannon. Please advise on the bug URL so that I can watch.

Yes, the duplicate content remain when you save the page. The bug you mentioned does not make any sense. If it is shown in the Editor then it must show on save ?!?

My hypothesis is that it has something to do with temporary network problems - Confluence maybe simply retries and adds the content on load.

I had personally had tens of pages affected by this - largely in February and March 2020 - since then nothing until today. I thought it may be something related to Postgresql or Confluence version or Chrome.


author: Shannon S
body: Hi Jiri,

Indeed, in the bug I shared, the data which shows in the editor does *not* show on save. If yours is saving, that confirms it's a different issue.

I'll need to be able to reliably replicate the issue on my end in order to report the bug you are encountering. Although, it seems like that might not be possible, especially if it's related to temporary network problems.

Are you able to replicate this today on your Confluence server? If so, I would recommend that you create a support zip and getting a HAR file recorded in order to log the behavior. Then create a support ticket for you so we can collect your log files and report this to the team.

Thank you,

Shannon


author: Jiri Pik
body: [@Shannon S](/t5/user/viewprofilepage/user-id/510046) - I cannot replicate, unfortunately - I have edited tens of pages today and only one failed.

How to proceed?


author: Shannon S
body: Thanks Jiri, don't worry about that.

Let me talk to the rest of the Confluence team and see how we can proceed on this.

In the meantime, since you were able to replicate once today, can you make a support zip and take a note of when you replicated the issue? This will help in case we need to revisit that later.

Thank you,

Shannon


author: Jiri Pik
body: [@Shannon S](/t5/user/viewprofilepage/user-id/510046) - I do have the Support Zip ready.

The only error there at approx the time when the problem happened is this

```
2020-06-26 09:18:36,941 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] 2020-06-26 09:18:36,940 WARN [async-dispatch-7] [synchrony.sync.hubs] closing in-close-promise due to xform error {:throwable #error {
2020-06-26 09:18:36,941 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] :cause "class synchrony.sync.messages.Envelope cannot be cast to class java.lang.CharSequence (synchrony.sync.messages.Envelope is in unnamed module of loader 'app'; java.lang.CharSequence is in module java.base of loader 'bootstrap')"
2020-06-26 09:18:36,941 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] :via
2020-06-26 09:18:36,941 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] [{:type java.lang.ClassCastException
2020-06-26 09:18:36,941 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] :message "class synchrony.sync.messages.Envelope cannot be cast to class java.lang.CharSequence (synchrony.sync.messages.Envelope is in unnamed module of loader 'app'; java.lang.CharSequence is in module java.base of loader 'bootstrap')"
2020-06-26 09:18:36,941 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] :at [clojure.core$re_matcher invokeStatic "core.clj" 4849]}]
2020-06-26 09:18:36,941 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] :trace
2020-06-26 09:18:36,941 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] [[clojure.core$re_matcher invokeStatic "core.clj" 4849]
2020-06-26 09:18:36,941 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] [clojure.core$re_find invokeStatic "core.clj" 4898]
2020-06-26 09:18:36,941 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] [clojure.core$re_find invoke "core.clj" 4898]
2020-06-26 09:18:36,941 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] [synchrony.data_buffer$parse_chunk invokeStatic "data_buffer.cljc" 7]
2020-06-26 09:18:36,941 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] [synchrony.data_buffer$parse_chunk invoke "data_buffer.cljc" 6]
2020-06-26 09:18:36,941 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] [synchrony.data_buffer$decode invokeStatic "data_buffer.cljc" 30]
2020-06-26 09:18:36,941 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] [synchrony.data_buffer$decode invoke "data_buffer.cljc" 27]
2020-06-26 09:18:36,941 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] [synchrony.data_buffer$decode$fn__33433 invoke "data_buffer.cljc" 28]
2020-06-26 09:18:36,941 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] [ginga.core$contextual_buffering_transducer$fn__8339$fn__8340 invoke "core.cljc" 475]
2020-06-26 09:18:36,941 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] [clojure.core.async.impl.channels$chan$fn__573 invoke "channels.clj" 300]
2020-06-26 09:18:36,941 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] [clojure.core.async.impl.channels.ManyToManyChannel put_BANG_ "channels.clj" 83]
2020-06-26 09:18:36,941 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] [clojure.core.async.impl.ioc_macros$put_BANG_ invokeStatic "ioc_macros.clj" 992]
2020-06-26 09:18:36,941 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] [clojure.core.async.impl.ioc_macros$put_BANG_ invoke "ioc_macros.clj" 991]
2020-06-26 09:18:36,941 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] [manifold.stream.async.CoreAsyncSink$f__16329$fn__16380$state_machine__5443__auto____16409$fn__16411 invoke "async.clj" 126]
2020-06-26 09:18:36,941 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] [manifold.stream.async.CoreAsyncSink$f__16329$fn__16380$state_machine__5443__auto____16409 invoke "async.clj" 123]
2020-06-26 09:18:36,941 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] [clojure.core.async.impl.ioc_macros$run_state_machine invokeStatic "ioc_macros.clj" 973]
2020-06-26 09:18:36,941 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] [clojure.core.async.impl.ioc_macros$run_state_machine invoke "ioc_macros.clj" 972]
2020-06-26 09:18:36,941 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] [clojure.core.async.impl.ioc_macros$run_state_machine_wrapped invokeStatic "ioc_macros.clj" 977]
2020-06-26 09:18:36,941 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] [clojure.core.async.impl.ioc_macros$run_state_machine_wrapped invoke "ioc_macros.clj" 975]
2020-06-26 09:18:36,941 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] [manifold.stream.async.CoreAsyncSink$f__16329$fn__16380 invoke "async.clj" 123]
2020-06-26 09:18:36,941 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] [clojure.lang.AFn run "AFn.java" 22]
2020-06-26 09:18:36,941 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] [java.util.concurrent.ThreadPoolExecutor runWorker nil -1]
2020-06-26 09:18:36,941 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] [java.util.concurrent.ThreadPoolExecutor$Worker run nil -1]
2020-06-26 09:18:36,941 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] [java.lang.Thread run nil -1]]}}
2020-06-26 09:18:36,943 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] 2020-06-26 09:18:36,943 WARN [async-dispatch-2] [synchrony.sync.hubs] {:entity nil, :throwable #error {
2020-06-26 09:18:36,943 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] :cause nil
2020-06-26 09:18:36,943 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] :via
2020-06-26 09:18:36,943 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] [{:type java.lang.NullPointerException
2020-06-26 09:18:36,943 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] :message nil
2020-06-26 09:18:36,943 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] :at [com.nimbusds.jwt.JWTParser parse "JWTParser.java" 58]}]
2020-06-26 09:18:36,943 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] :trace
2020-06-26 09:18:36,943 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] [[com.nimbusds.jwt.JWTParser parse "JWTParser.java" 58]
2020-06-26 09:18:36,943 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] [ginga.jwt$parse invokeStatic "jwt.clj" 57]
2020-06-26 09:18:36,943 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] [synchrony.auth$parse_verify$fn__25931 invoke "auth.clj" 63]
2020-06-26 09:18:36,943 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] [synchrony.sync.hubs (take?) "hubs.clj" 867]
2020-06-26 09:18:36,943 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] [synchrony.sync.hubs$accept$fn__52396 invoke "hubs.clj" 865]
2020-06-26 09:18:36,943 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] [clojure.lang.AFn run "AFn.java" 22]
2020-06-26 09:18:36,943 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] [java.util.concurrent.ThreadPoolExecutor runWorker nil -1]
2020-06-26 09:18:36,943 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] [java.util.concurrent.ThreadPoolExecutor$Worker run nil -1]
2020-06-26 09:18:36,943 DEBUG [148:StdOutHandler [/opt/atlassian/confluence/jre/bin/java]] [java.lang.Thread run nil -1]]}}
```


author: Shannon S
body: Thank you, Jiri!

I've created a support ticket now so we can have a look at your Support Zip.

You can head over to [Atlassian Transfer](http://transfer.atlassian.com) and you'll be able to attach your Support Zip to your ticket there, or directly via the case. I've also commented the logs you shared above, but we'll still want to see the whole zip file.

I'll be watching the case so we can update here once we determine what the issue is.

Take care,

Shannon


author: Jiri Pik
body: THANK YOU.

Confluence is one of the best programs ever written. Seriously.


author: Shannon S
body: You're welcome, Jiri, and thank you!

Hoping that we can find out what is causing this. I can confirm that we've since received your logs and configuration files. Thank you for sending those along! Once we've had a chance to investigate them in support, we'll be following up with you there.

Take care, and have a pleasant rest of your week if I don't speak to you before then.

Shannon


author: Shannon S
body: Hi, [@Jiri Pik](/t5/user/viewprofilepage/user-id/1105340)

Hope you are doing well! I understand the issue was confirmed as related to these bugs in Collaborative Editing:

* [CONFSERVER-58160 - Duplicated content in pages after disabling and enabling CE](https://jira.atlassian.com/browse/CONFSERVER-58160)
* [CONFSERVER-59993 - Duplicated content in pages after running Synchrony Hard Data Removal](https://jira.atlassian.com/browse/CONFSERVER-59993)

Please confirm and let us know any additional information that you believe might help other users who are encountering this issue presently!

Thank you again, and take care.

Shannon


author: Jiri Pik
body: Yes, Shannon - switching off Collaborative Editing seems to have solved the problem.

There is **one additional Collaborative Editing related issue** - if you edit a long page for hours, keep adding pictures and text, once in a while, the typed text stops showing up in the editor and the editor cursor can actually go backwards. If you save the page, the pasted images remain attached but you lose the last few paragraphs of the text. This issue has been improved dramatically since January but was still present in the June's latest versions of Confluence. After I switched off Collaborative Editing, the issue did not happen again.

I am not really sure why the Collaborative Editing is causing these issues for me and not for other users - I can think of me using httpd.apache.org as the web proxy can be one factor.

Thank you again for all your help.


Tags: confluence-server

server