growi
growi copied to clipboard
[7.0.0]データ移行機能を使用した後、記事の編集内容が失われる
Environment
Host
item | version |
---|---|
OS | Docker desktop for windows 4.28.0 (139021) |
GROWI | 7.0.0 |
node.js | 20.11.1 |
npm | 10.2.4 |
Using Docker | yes |
Using growi-docker-compose | yes |
(Accessing https://{GROWI_HOST}/admin helps you to fill in above versions)
Client
item | version |
---|---|
OS | Windows 11 pro |
browser | chrome 123.0.6312.88 |
browser | edge 123.0.2420.65 |
How to reproduce? (再現手順)
2台のHostPCでそれぞれGrowiを立ち上げています。A環境・B環境と呼称します。
- 「データ移行」機能を用いて、A環境からB環境にデータをインポートする
- B環境のGrowiに他のPCからアクセスする
- 記事の編集画面を表示する
What happens? (症状)
- 記事の編集画面が白紙になっており、そのまま保存しても記事の内容が失われる(添付画面参照)
What is the expected result? (期待される動作)
- 「インポートした記事の編集内容まで引き継いだ状態」で編集画面にアクセスできること
Note
@ago-knee issue の投稿ありがとうございます。
現在確認されている不具合として、文字数の多いページで Markdown が正しく表示されない問題は確認している状況です。 スクリーンショットを見た限り、draw.io などを活用しているかと予測しているのですが、doraw.io を活用すると文字数が多くなり、上記の不具合が発生しやすい状況となっております。
修正の方針を固めるにあたり、記事の編集内容(Markdown)が表示されていないページの文字数(Markdown 形式でエクスポートしていただくことで確認が可能かと存じます)と、スクリーンショット以外のページでも症状は発生しているかを教えていただくことは可能でしょうか?
@ago-knee さん、初めまして。
私の環境でも編集画面が空白になる現象が観測されました。
私は https-portal を使ってデプロイしているのですが、 growi-docker-compose/examples/https-portal
にある WEBSOCKET: 'true'
の環境変数を設定し損ねていたのが原因でした。
私の環境では、これを設定すると通常通り編集を行えることを確認しております。逆に、コメントアウトすると空白に戻ります。
environment:
WEBSOCKET: "true"
念のため、検証に使ったサーバ情報は以下です。
item | version |
---|---|
OS | |
GROWI | 7.0.1-RC.0 |
node.js | 20.12.0 |
npm | 10.5.0 |
yarn | 1.22.19 |
Using Docker | yes |
Using growi-docker-compose | yes |
(Accessing https://{GROWI_HOST}/admin helps you to fill in above versions)
ago-knee さんの問題が同じ原因かはわかりませんが、参考になれば幸いです。 もし原因が違った場合でも、 WireShark 等でサーバへの通信 (WebSokcet) を検索することで、 Markdown コンテンツが送受信できているか確認できました。こちらもご参考に。
皆さんお返事ありがとうございます。
@hiromu-ta
1.記事の編集内容(Markdown)が表示されていないページの文字数
3464文字でした。ちなみに当該記事の表はDraw.ioで作成しているわけではなくjpgを貼り付けているため、それほど文字数はありません。(3000文字もあればWikiの記事としては十分でけーよ、というツッコミが聞こえる)
2.スクリーンショット以外のページでも症状は発生しているか 現在、確認できている状況では「データインポート機能」を使用したページに関しては、全ての編集ページで同様の症状が発生しています。 文字数も100文字程度の小さな記事から、10000文字程度の大きな記事まで全てです。
@kino-ma 投稿を参考にさせていただきました。
http://**.239:3000/ (A環境)
http://**.240:3000/ (B環境)
それぞれWSをチェックしたところ、A・B環境ともに サイズ:0B 時間:保留中 となりました。Edit画面に入ったときにもWSのリクエストは1個飛んでいますが、同様でした。
他の方のissueをyukiさんが貼られているため、そちらも確認してみようと思います。
オンラインでws接続のテストを行えるページを見つけたので試してみました。 https://piehost.com/websocket-tester
Chrome - F12 - network - websocket - URLcopy
ws://192.168.101.240:3000/socket.io/?EIO=4&transport=websocket
というURLがコピーできたため、これを貼り付けSEND
というわけでConnectedできてしまいました…
別 Issue へのコメントですが、類似点がありそうなのでコメントしておきます https://github.com/weseek/growi/issues/9085#issuecomment-2339908183
可能であれば v7.0.17 以降にアップグレードした上で改めてインポート機能を試してみてください。
別issueの記事・コメントを確認しました。アップグレード後のインポート機能を試してみます。 ご返信ありがとうございました。なにか進捗や変化がありましたらまた追記します。