SmartSVN 14.5: JavaHL SQLite mismatch on Linux

7 views
Skip to first unread message

Bruno Antunes

unread,
Aug 14, 2025, 1:21:20 PMAug 14
to smar...@googlegroups.com
Hello,

On Red Hat Enterprise Linux 9.3, SmartSVN 14.5 triggers the  error "Couldn't perform atomic initialization" when opening an existing working copy or checking out a new project:

Extract with error from log file:
...
1s186 ... [ThreadPool-0 (com.syntevo.smartsvn.i$$Lambda/0x000000010019f158)] INFO      smartsvn.javahl - JavaHL version: 1.14.5 (r1922182)
1s187 ... [ThreadPool-0 (com.syntevo.smartsvn.i$$Lambda/0x000000010019f158)] INFO      smartsvn.javahl - JavaHL runtime version: 1.14.5
...
11s700 ... [ThreadPool-0 (RunnableQueue)] INFO smartsvn.project.scan - Opening project 'fraw', roots: [/home/vagrant/work/fraw]
11s758 ... [ThreadPool-0 (RunnableQueue)] SEVERE     smartsvn.command - Couldn't perform atomic initialization
svn: Couldn't perform atomic initialization
SQLite error
svn: SQLite compiled for 3.40.0, but running with 3.34.1

org.apache.subversion.javahl.ClientException: Couldn't perform atomic initialization
svn: Couldn't perform atomic initialization
SQLite error
svn: SQLite compiled for 3.40.0, but running with 3.34.1

        at org.apache.subversion.javahl.SVNClient.status(Native Method)
        at org.apache.subversion.javahl.SVNClient.status(SVNClient.java:141)
        at smartsvn.WI.a(SourceFile:1070)
...


Research:
  • SmartSVN extracts libsvnjavahl-1.so into ~/.config/smartsvn/14.5/svn-tmp/ at startup.
  • The bundled JavaHL is linked against SQLite 3.40, but the system SQLite on RHEL 9.3 is 3.34.
  • SmartSVN loads this .so via an absolute path, bypassing LD_LIBRARY_PATH, so users cannot easily override or disable it.
  • The GUI no longer offers an SVNKit/JavaHL selection, so users are forced into JavaHL even if it fails.

Impact:
SmartSVN starts normally, but all JavaHL-based operations (e.g., opening a WC, checkout) fail on systems with older SQLite, making the client unusable for repository work.

Suggested actions:
  • Provide a GUI option to force SVNKit as the backend.
  • Respect an environment variable (e.g., SMARTSVN_JAVAHL_DISABLE) to disable JavaHL.
  •  Bundle JavaHL with a matching SQLite, or statically link SQLite to avoid system dependency issues.

Temporary workaround:
Use a wrapper script that deletes libsvnjavahl-1.so immediately after extraction so SmartSVN falls back to SVNKit. This works but is fragile since the svn-tmp folder is regenerated each launch.

Thank you for reviewing this issue.

Best regards,
--
Bruno Antunes

SmartSVN Support

unread,
Aug 15, 2025, 5:15:18 AMAug 15
to smar...@googlegroups.com
Hi Bruno,

This problem should be covered in the readme-linux.txt file in the root directory of the SmartSVN bundle.

--
Best regards,
Thomas Singer
syntevo GmbH
https://www.syntevo.com
> *Research:*
>
> - SmartSVN extracts libsvnjavahl-1.so into
> ~/.config/smartsvn/14.5/svn-tmp/ at startup.
> - The bundled JavaHL is linked against SQLite 3.40, but the system
> SQLite on RHEL 9.3 is 3.34.
> - SmartSVN loads this .so via an absolute path, bypassing
> LD_LIBRARY_PATH, so users cannot easily override or disable it.
> - The GUI no longer offers an SVNKit/JavaHL selection, so users are
> forced into JavaHL even if it fails.
>
>
>
> *Impact:*SmartSVN starts normally, but all JavaHL-based operations (e.g.,
> opening a WC, checkout) fail on systems with older SQLite, making the
> client unusable for repository work.
>
>
> *Suggested actions:*
>
> - Provide a GUI option to force SVNKit as the backend.
> - Respect an environment variable (e.g., SMARTSVN_JAVAHL_DISABLE) to
> disable JavaHL.
> - Bundle JavaHL with a matching SQLite, or statically link SQLite to
> avoid system dependency issues.
>
>
>
> *Temporary workaround:*Use a wrapper script that deletes libsvnjavahl-1.so
> immediately after extraction so SmartSVN falls back to SVNKit. This works
> but is fragile since the svn-tmp folder is regenerated each launch.
>
> Thank you for reviewing this issue.
>
> Best regards,
> --
> Bruno Antunes
>
> --
> You received this message because you are subscribed to the Google Groups
> "SmartSVN" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to
> smartsvn+u...@googlegroups.com.
> To view this discussion visit
> https://groups.google.com/d/msgid/smartsvn/CAA%3DPnK-YK2hCRAiRkMEpjFW78cv1rpw-VDx_9Z0%3Dnrv3%3DgspXg%40mail.gmail.com.
>

Bruno Antunes

unread,
Aug 20, 2025, 4:07:40 AMAug 20
to SmartSVN
Hi. Thanks for the reply. The "readme-linux.txt" does reference defining LD_LIBRARY_PATH. From my previous tests i did this, but if dine no seem to work!

I rested defining again LD_LIBRARY_PATH to $HOME/.config/smartsvn/14.5/svn-tmp/16017 (matching SmartSVN Version), as described in readme, and it works; i assume that I may have defined LD_LIBRARY_PATH wrongly in my previous test.

Regarding this issue,  i can still also suggest
    • Provide a GUI option to force SVNKit as the backend.
    • Respect an environment variable (e.g., SMARTSVN_JAVAHL_DISABLE) to disable JavaHL.
      best regards,
      --
      Bruno Antunes

      SmartSVN Support

      unread,
      Aug 20, 2025, 4:13:24 AMAug 20
      to smar...@googlegroups.com
      Hi Bruno,

      > Regarding this issue, i can still also suggest
      >
      > - Provide a GUI option to force SVNKit as the backend.
      > - Respect an environment variable (e.g., SMARTSVN_JAVAHL_DISABLE) to
      > disable JavaHL.

      Sorry, this is not possible technically. Since ~10 years SmartSVN requires JavaHL and can't use SVNKit any more.

      --
      Best regards,
      Thomas Singer
      syntevo GmbH
      https://www.syntevo.com


      08/20/2025 10:08 - Bruno Antunes wrote:

      > Hi. Thanks for the reply. The "readme-linux.txt" does reference defining
      > LD_LIBRARY_PATH. From my previous tests i did this, but if dine no seem to
      > work!
      >
      > I rested defining again LD_LIBRARY_PATH to
      > $HOME/.config/smartsvn/14.5/svn-tmp/16017 (matching SmartSVN Version), as
      > described in readme, and it works; i assume that I may have defined
      > LD_LIBRARY_PATH wrongly in my previous test.
      >
      > Regarding this issue, i can still also suggest
      >
      > https://groups.google.com/d/msgid/smartsvn/4d0358c2-1627-407f-9259-4da1e03fc221n%40googlegroups.com.
      >

      howardchihom

      unread,
      Sep 6, 2025, 3:19:33 AMSep 6
      to SmartSVN
      Install the  SQLite3.4 
      Use a wrapper to run svn 

      #!/bin/csh  -fx
      set SQLITE_PREFIX=/opt/sqlite-3.40
      set SMARTSVN_HOME=/opt/smartsvn  

      setenv PATH ${SQLITE_PREFIX}/bin:$PATH
      setenv LD_LIBRARY_PATH ${SQLITE_PREFIX}/lib:$LD_LIBRARY_PATH
      /tools/smartsvn/bin/smartsvn.sh

      SmartSVN Support 在 2025年8月20日 星期三下午4:13:24 [UTC+8] 的信中寫道:
      Reply all
      Reply to author
      Forward
      0 new messages