Interleaved saves may produce very unexpected results

This is happening with 7.0.6. when I open the schematic or layout. A blank page opens and a popup appears with this message Interleaved saves may produce very unexpected results.. There is no other Eeschema, PCBNew, Kicad openend. Just the current project I am working on.

I am using Open it anyway but it kinda scares me out.


Version: 7.0.6-7.0.6~ubuntu23.04.1, release build

Libraries:
	wxWidgets 3.2.2
	FreeType 2.12.1
	HarfBuzz 6.0.0
	FontConfig 2.14.1
	libcurl/7.88.1 OpenSSL/3.0.8 zlib/1.2.13 brotli/1.0.9 zstd/1.5.4 libidn2/2.3.3 libpsl/0.21.2 (+libidn2/2.3.3) libssh/0.10.4/openssl/zlib nghttp2/1.52.0 librtmp/2.3

Platform: Ubuntu 23.04, 64 bit, Little endian, wxGTK, ubuntu-xorg, x11

Build Info:
	Date: Jul  7 2023 02:32:35
	wxWidgets: 3.2.2 (wchar_t,wx containers) GTK+ 3.24
	Boost: 1.74.0
	OCC: 7.6.3
	Curl: 7.88.1
	ngspice: 38
	Compiler: GCC 12.2.0 with C++ ABI 1017

Build settings:
	KICAD_SPICE=ON

For my own education and entertainment, the only reference to the message in the source code is in common/confirm.cpp - Iā€™ll leave it to more knowledgable please to help you out further:

bool OverrideLock( wxWindow* aParent, const wxString& aMessage )
{
#ifdef __APPLE__
    // wxMessageDialog gets the button spacing wrong on Mac so we have to use wxRichMessageDialog.
    // Note that its warning icon is more like wxMessageDialog's error icon, so we use it instead
    // of wxICON_ERROR.
    wxRichMessageDialog dlg( aParent, aMessage, _( "File Open Warning" ),
                             wxYES_NO | wxICON_WARNING | wxCENTER );
    dlg.SetExtendedMessage( _( "Interleaved saves may produce very unexpected results." )
                                + wxS( "\n" ) );
    dlg.SetYesNoLabels( _( "Cancel" ), _( "Open Anyway" ) );
#else
    wxMessageDialog dlg( aParent, aMessage, _( "File Open Warning" ),
                         wxYES_NO | wxICON_ERROR | wxCENTER );
    dlg.SetExtendedMessage( _( "Interleaved saves may produce very unexpected results." ) );
    dlg.SetYesNoLabels( _( "Cancel" ), _( "Open Anyway" ) );
#endif

    return dlg.ShowModal() == wxID_NO;
}

That function is called in the following files

common\confirm.cpp
common\dialogs\dialog_locked_items_query.cpp
common\dialogs\dialog_locked_items_query_base.cpp
common\dialogs\dialog_locked_items_query_base.fbp
common\dialogs\dialog_locked_items_query_base.h
eeschema\files-io.cpp
include\confirm.h
include\dialogs\dialog_locked_items_query.h
include\lockfile.h
pcbnew\files.cpp

Check your project folder for something like ā€œ~[project].kicad_sch.lckā€? This was something cherry picked back from the 7.99 tree and it doesnā€™t seem to work very wellā€¦

I removed the lock file manually and the pop up didnā€™t show again. But when the popup appeared the schematic and the layout page were blank and this may scare people.

I work in a Dropbox folder, then make this lock file took time to disappear or something did not remove it. Ah, I remember I got a segfault when playing with the differential routing (yeah, still) and this may have caused the lock to be forgotten.

Thatā€™s what Iā€™ve seen as well in 7.99, post crash the file sticks around. The main issue for me is that there is no clear sign in the interleaving popup to go looking for a possibly hidden lock file in the project folder. Iā€™ll go ahead and make an issue for improving the error message.

But it is an odd change for a point release IMO even if it is intended to fix an apparent long-standing bug: File is already open in eeschema āˆ’ lock file is in a weird location. (#14734) Ā· Issues Ā· KiCad / KiCad Source Code / kicad Ā· GitLab

When you do, give a link to it here.

1 Like

Thank you for catching that! I posted it to the other related thread and forgot about this one: Suggestion in popup for possibility of lock file left in project after crash (#15148) Ā· Issues Ā· KiCad / KiCad Source Code / kicad Ā· GitLab

1 Like

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.