Bug 167042 - Calc cell comments are deleted on Save
Summary: Calc cell comments are deleted on Save
Status: ASSIGNED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Calc (show other bugs)
Version:
(earliest affected)
4.3 all versions
Hardware: All All
: high major
Assignee: Balázs Varga
URL:
Whiteboard: target:26.2.0 target:25.8.3
Keywords: bibisected, dataLoss, regression
Depends on:
Blocks: Calc-Comments
  Show dependency treegraph
 
Reported: 2025-06-16 08:17 UTC by yuggothblaster
Modified: 2025-09-24 20:02 UTC (History)
5 users (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description yuggothblaster 2025-06-16 08:17:08 UTC
Description:
Calc is deleting cell comments after cloning cell style onto cell with comment, pressing undo, saving document and reloading Calc.

Steps to Reproduce:
1. Create comment on cell (eg. A1)
2. Set Bold and Italic style on cell on A2 for example
3. Clone A2 formatting to cell A1
4. Press Undo
5. Save document
6. Notice that comment on A1 is still there
7. Close Calc
8. Reopen document

Actual Results:
Comment on cell A1 is gone

Expected Results:
Comment on cell A1 should not be removed.


Reproducible: Always


User Profile Reset: No

Additional Info:
Version: 25.2.4.3 (X86_64) / LibreOffice Community
Build ID: 33e196637044ead23f5c3226cde09b47731f7e27
CPU threads: 16; OS: Windows 11 X86_64 (10.0 build 26100); UI render: Skia/Vulkan; VCL: win
Locale: sr-Latn-BA (sr_BA); UI: en-US
Calc: threaded
Comment 1 Xisco Faulí 2025-06-16 08:56:02 UTC
Reproduced in

Version: 25.8.0.0.alpha1+ (X86_64) / LibreOffice Community
Build ID: 04744bbc9be4adca92eaba602b7a65c17f6b8dd7
CPU threads: 8; OS: Linux 6.1; UI render: default; VCL: gtk3
Locale: es-ES (es_ES.UTF-8); UI: en-US
Calc: threaded
Comment 2 Xisco Faulí 2025-06-16 09:04:33 UTC
Also reproduced in

Version: 6.4.0.0.alpha1+
Build ID: 9bc848cf0d301aa57eabcffa101a1cf87bad6470
CPU threads: 8; OS: Linux 6.1; UI render: default; VCL: gtk3; 
Locale: en-US (es_ES.UTF-8); UI-Language: en-US
Calc: threaded
Comment 3 Xisco Faulí 2025-06-16 09:05:59 UTC
Not reproduced in OpenOffice 3.3
Comment 4 Xisco Faulí 2025-06-16 09:18:37 UTC
Not reproduced in

Version: 4.2.0.0.beta2
Build ID: 1a27be92e320f97c20d581a69ef1c8b99ea9885d
Comment 5 Xisco Faulí 2025-06-16 09:36:59 UTC
With a debug build it hits an assert:

soffice.bin: /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/sc/source/core/data/postit.cxx:615: void ScPostIt::CreateCaptionFromInitData(const ScAddress&) const: Assertion `(maNoteData.mxCaption || maNoteData.mxInitData) || mrDoc.IsUndo() || mrDoc.IsClipboard()' failed.
Unspecified Application Error


Fatal exception: Signal 6
Stack:
#0 sal::backtrace_get(unsigned int) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/sal/osl/unx/backtraceapi.cxx:42 (discriminator 3)
#1 (anonymous namespace)::printStack(int) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/sal/osl/unx/signal.cxx:289
#2 (anonymous namespace)::callSystemHandler(int, siginfo_t*, void*) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/sal/osl/unx/signal.cxx:330
#3 (anonymous namespace)::signalHandlerFunction(int, siginfo_t*, void*) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/sal/osl/unx/signal.cxx:427
#4 __restore_rt at libc_sigaction.c:?
#5 __pthread_kill_implementation at ./nptl/./nptl/pthread_kill.c:44
#6 __GI_raise at ./signal/../sysdeps/posix/raise.c:27
#7 __GI_abort at ./stdlib/./stdlib/abort.c:81 (discriminator 21)
#8 SalAbort(rtl::OUString const&, bool) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/vcl/source/app/salplug.cxx:405
#9 Application::Abort(rtl::OUString const&) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/vcl/source/app/svapp.cxx:301
#10 desktop::Desktop::Exception(ExceptionCategory) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/desktop/source/app/app.cxx:1238 (discriminator 2)
#11 VCLExceptionSignal_impl(void*, oslSignalInfo*) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/vcl/source/app/svmain.cxx:179
#12 callSignalHandler(oslSignalInfo*) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/sal/osl/all/signalshared.cxx:47
#13 (anonymous namespace)::signalHandlerFunction(int, siginfo_t*, void*) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/sal/osl/unx/signal.cxx:423
#14 __restore_rt at libc_sigaction.c:?
#15 __pthread_kill_implementation at ./nptl/./nptl/pthread_kill.c:44
#16 __GI_raise at ./signal/../sysdeps/posix/raise.c:27
#17 __GI_abort at ./stdlib/./stdlib/abort.c:81 (discriminator 21)
#18 _nl_load_domain at ./intl/./intl/loadmsgcat.c:1177
#19 __GI___assert_fail at :?
#20 ScPostIt::CreateCaptionFromInitData(ScAddress const&) const at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/sc/source/core/data/postit.cxx:616
#21 ScPostIt::GetOrCreateCaption(ScAddress const&) const at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/sc/source/core/data/postit.cxx:552
#22 (anonymous namespace)::NoteCaptionCreator::operator()(unsigned long, ScPostIt const*) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/sc/source/core/data/column4.cxx:757
#23 void sc::EachElem<mdds::mtv::noncopyable_managed_element_block<55, ScPostIt, mdds::mtv::delayed_delete_vector>, __gnu_cxx::__normal_iterator<ScPostIt**, std::vector<ScPostIt*, std::allocator<ScPostIt*> > >, mdds::detail::mtv::iterator_value_node<mdds::mtv::soa::multi_type_vector<sc::CellNoteTraits>, unsigned long>, (anonymous namespace)::NoteCaptionCreator>(mdds::detail::mtv::iterator_value_node<mdds::mtv::soa::multi_type_vector<sc::CellNoteTraits>, unsigned long>&, (anonymous namespace)::NoteCaptionCreator&) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/sc/inc/mtvfunctions.hxx:129
#24 void sc::ProcessElements1<mdds::mtv::soa::multi_type_vector<sc::CellNoteTraits>, mdds::mtv::noncopyable_managed_element_block<55, ScPostIt, mdds::mtv::delayed_delete_vector>, (anonymous namespace)::NoteCaptionCreator, sc::FuncElseNoOp<unsigned long, bool> >(mdds::mtv::soa::multi_type_vector<sc::CellNoteTraits>&, (anonymous namespace)::NoteCaptionCreator&, sc::FuncElseNoOp<unsigned long, bool>&) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/sc/inc/mtvfunctions.hxx:321
#25 void sc::ProcessNote<(anonymous namespace)::NoteCaptionCreator>(mdds::mtv::soa::multi_type_vector<sc::CellNoteTraits>&, (anonymous namespace)::NoteCaptionCreator&) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/sc/inc/mtvcellfunc.hxx:148
#26 ScColumn::CreateAllNoteCaptions() at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/sc/source/core/data/column4.cxx:778
#27 ScTable::CreateAllNoteCaptions() at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/sc/source/core/data/table2.cxx:1969 (discriminator 3)
#28 ScDocument::CreateAllNoteCaptions() at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/sc/source/core/data/document.cxx:6759 (discriminator 2)
#29 ScXMLImportWrapper::Export(bool) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/sc/source/filter/xml/xmlwrap.cxx:723
#30 ScDocShell::SaveXML(SfxMedium*, com::sun::star::uno::Reference<com::sun::star::embed::XStorage> const&) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/sc/source/ui/docshell/docsh.cxx:657
#31 ScDocShell::SaveAs(SfxMedium&) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/sc/source/ui/docshell/docsh.cxx:1937 (discriminator 2)
#32 SfxObjectShell::SaveAsOwnFormat(SfxMedium&) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/sfx2/source/doc/objstor.cxx:3674
#33 SfxObjectShell::SaveTo_Impl(SfxMedium&, SfxItemSet const*) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/sfx2/source/doc/objstor.cxx:1828
#34 SfxObjectShell::DoSave_Impl(SfxItemSet const*) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/sfx2/source/doc/objstor.cxx:3053 (discriminator 3)
#35 SfxObjectShell::Save_Impl(SfxItemSet const*) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/sfx2/source/doc/objstor.cxx:3133
#36 SfxBaseModel::storeSelf(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/sfx2/source/doc/sfxbasemodel.cxx:1714
#37 SfxStoringHelper::GUIStoreModel(com::sun::star::uno::Reference<com::sun::star::frame::XModel2> const&, std::basic_string_view<char16_t, std::char_traits<char16_t> >, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>&, bool, SignatureState, SignatureState, bool) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/sfx2/source/doc/guisaveas.cxx:1595 (discriminator 6)
#38 SfxObjectShell::ExecFile_Impl(SfxRequest&) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/sfx2/source/doc/objserv.cxx:1159 (discriminator 6)
#39 SfxStubSfxObjectShellExecFile_Impl(SfxShell*, SfxRequest&) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/workdir/SdiTarget/sfx2/sdi/sfxslots.hxx:225
#40 SfxShell::ExecuteSlot(SfxRequest&, SfxInterface const*) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/sfx2/source/control/shell.cxx:477
#41 ScTabViewShell::ExecuteSave(SfxRequest&) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/sc/source/ui/view/tabvwsha.cxx:855
#42 SfxStubScTabViewShellExecuteSave(SfxShell*, SfxRequest&) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/workdir/SdiTarget/sc/sdi/scslots.hxx:1521
#43 SfxDispatcher::Call_Impl(SfxShell&, SfxSlot const&, SfxRequest&, bool) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/sfx2/source/control/dispatch.cxx:259
#44 SfxDispatcher::PostMsgHandler(std::unique_ptr<SfxRequest, std::default_delete<SfxRequest> >) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/sfx2/source/control/dispatch.cxx:1008
#45 SfxHintPoster::DoEvent_Impl(void*) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/sfx2/source/notify/hintpost.cxx:74 (discriminator 2)
#46 SfxHintPoster::LinkStubDoEvent_Impl(void*, void*) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/sfx2/source/notify/hintpost.cxx:54
#47 Link<void*, void>::Call(void*) const at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/include/tools/link.hxx:105 (discriminator 1)
#48 ImplHandleUserEvent(ImplSVEvent*) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/vcl/source/window/winproc.cxx:2288
#49 ImplWindowFrameProc(vcl::Window*, SalEvent, void const*) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/vcl/source/window/winproc.cxx:2850
#50 SalFrame::CallCallback(SalEvent, void const*) const at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/vcl/inc/salframe.hxx:310 (discriminator 1)
#51 SalGenericDisplay::ProcessEvent(SalUserEventList::SalUserEvent) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/vcl/unx/generic/app/gendisp.cxx:67
#52 SalUserEventList::DispatchUserEvents(bool)::{lambda()#1}::operator()() const at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/vcl/source/app/salusereventlist.cxx:119
#53 SalUserEventList::DispatchUserEvents(bool) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/vcl/source/app/salusereventlist.cxx:122
#54 SalGenericDisplay::DispatchInternalEvent(bool) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/vcl/unx/generic/app/gendisp.cxx:52
#55 call_userEventFn at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/vcl/unx/gtk3/gtkdata.cxx:829
#56 g_main_context_dispatch in /lib/x86_64-linux-gnu/libglib-2.0.so.0
#57 g_main_context_dispatch in /lib/x86_64-linux-gnu/libglib-2.0.so.0
#58 g_main_context_iteration in /lib/x86_64-linux-gnu/libglib-2.0.so.0
#59 GtkSalData::Yield(bool, bool) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/vcl/unx/gtk3/gtkdata.cxx:405 (discriminator 6)
#60 GtkInstance::DoYield(bool, bool) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/vcl/unx/gtk3/gtkinst.cxx:440
#61 ImplYield(bool, bool) at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/vcl/source/app/svapp.cxx:386
#62 Application::Yield() at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/vcl/source/app/svapp.cxx:489
#63 Application::Execute() at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/vcl/source/app/svapp.cxx:361
#64 desktop::Desktop::Main() at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/desktop/source/app/app.cxx:1680
#65 ImplSVMain() at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/vcl/source/app/svmain.cxx:231
#66 SVMain() at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/vcl/source/app/svmain.cxx:250
#67 soffice_main at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/desktop/source/app/sofficemain.cxx:122
#68 sal_main at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/desktop/source/app/main.c:51
#69 main at /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/desktop/source/app/main.c:49
#70 __libc_start_call_main at ./csu/../sysdeps/x86/libc-start.c:74
#71 call_init at ./csu/../csu/libc-start.c:128
#72 _start in /mnt/4d311c06-5193-4f61-a3f6-53ca4d9ea1e1/libreoffice/instdir/program/soffice.bin
Comment 6 Xisco Faulí 2025-06-16 09:38:10 UTC
@Kohei, I thought you might be interested in this issue
Comment 8 Michael H 2025-09-17 06:18:15 UTC
Tested with 24.8.6 Windows. 
I can confirm the loss of a comment, when following the steps to reproduce.
I discovered a first problem after step 4 "Press Undo". After UNDO the content of the comment is gone. The comment is still there, but empty. If I use the sidebar to switch to the empty comment, calc will crash (reproducable).
Comment 9 Commit Notification 2025-09-24 17:08:15 UTC
Balazs Varga committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/01765ffe843953bbf7d1e2822512306d3776b3be

tdf#167042 - sc cell comments texts should not be deleted

It will be available in 26.2.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 10 Commit Notification 2025-09-24 20:02:36 UTC
Balazs Varga committed a patch related to this issue.
It has been pushed to "libreoffice-25-8":

https://git.libreoffice.org/core/commit/3e528101c3593eedaea492d03831630b03e933dd

tdf#167042 - sc cell comments texts should not be deleted

It will be available in 25.8.3.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.