Fix for svnX 2.0.1 failing to launch on macOS 12.0.x (Monterey)

2,154 views
Skip to first unread message

chri...@gmail.com

unread,
Nov 4, 2021, 11:35:16 PM11/4/21
to sv...@googlegroups.com
Hello,

Here is a simple workaround for all users if svnX 2.0.1 fails to launch on macOS 12.0.x (Monterey).

This bug in macOS appears to be triggered by the fact that svnX weak links against Subversion libraries that may not exist (or be elsewhere) on your computer. This was never a problem before macOS 12.

The workaround requires replacing 4 symbolic links within the svnX.app bundle with 4 dummy libraries with the same names. This workaround will also disable the ‘Call Subversion libraries directly’ feature (as svnX recognises the libs as not containing a supported version of Subversion).
The dummy libs are the ones I use when compiling svnX. They just contain empty functions that do absolutely nothing. Their mere existence, at the appropriate location, solves the problem.

------------------------------------------------------------
Instructions:
1. Download the dummy libs archive.
2. Unpack the archive (zip file).
3. Move the 4 lib*.dylib files therein to svnX.app/Contents/Frameworks/ replacing the 4 symbolic links with the same names.

Use this link to download an archive containing the dummy libraries:

<https://docs.google.com/uc?export=download&id=1gi-4Fw-dzRXAeT6n9vco5XM4ygCKuWp_>

SHA256(svnX-2.0.1-dummy-libs.zip)= 5a28ab34b16a62f29baad58b1b86eb8537931565a84ccfebb6664d04853fb450


------------------------------------------------------------
An alternative fix if you have a Homebrew installation of Subversion in /usr/local/opt is to execute the following commands in Terminal:

T=/usr/local/opt/svn/lib
S=/Applications/svnX.app/Contents/Frameworks # *** Or wherever svnX.app is located ***
ln -shf $T/libsvn_client-1.0.dylib $S/libsvn_client.dylib
ln -shf $T/libsvn_fs-1.0.dylib $S/libsvn_fs.dylib
ln -shf $T/libsvn_subr-1.0.dylib $S/libsvn_subr.dylib
ln -shf /usr/local/opt/apr/libexec/lib/libapr-1.0.dylib $S/libapr.dylib

Or if you can & want to make an /opt/subversion dir (requires admin privileges):

mkdir -p /opt/subversion
ln -s /opt/subversion/lib /usr/local/opt/svn/lib
ln -s /usr/local/opt/svn/lib/libapr-1.0.dylib ../../apr/libexec/lib/libapr-1.0.dylib


------------------------------------------------------------
You can get svnX 2.0.1 (the current version) via this page:

<https://subversion.assembla.com/svn/svnx/html/Downloads.html>


Thanks to logik ethik for his help in testing this.

Regards,

CHRIS


Andreas Amann

unread,
Nov 10, 2021, 2:19:13 PM11/10/21
to svnX

The link to the dummy libraries gives me an error (no permission)

chris

unread,
Nov 10, 2021, 2:24:16 PM11/10/21
to svnX
Sorry.  It should be set correctly now.

shahista bagwan

unread,
Dec 15, 2021, 11:51:55 AM12/15/21
to svnX

After replacing the libraries App crashing is resolved, but getting below error 

Error: Unable to locate a suitable svn tool.

Make sure an svn tool (≥ v1.6) is present in the folder:

“/usr/local/”.

Is a Subversion client installed?  If so, ensure the path is correctly set in the preferences.


shahista bagwan

unread,
Dec 15, 2021, 11:51:55 AM12/15/21
to svnX
After replacing the libraries crash issue is resolved, But after it is showing below message 

Error: Unable to locate a suitable svn tool.

Make sure an svn tool (≥ v1.6) is present in the folder:

“/usr/local/”.

Is a Subversion client installed?  If so, ensure the path is correctly set in the preferences.


On Thursday, November 11, 2021 at 12:54:16 AM UTC+5:30 chris wrote:

John Weissberg

unread,
Dec 25, 2022, 6:42:55 PM12/25/22
to svnX
I have replaced the dylib links with the dylib files in the download. Unfortunately, svnx 2.0.1 is still failing to launch correctly on Big Sur with the set of error messages below. Any help would be appreciated. I would love to continue to use svnx:

Process:               svnX [5209]
Path:                  /Applications/svnX.app/Contents/MacOS/svnX
Identifier:            app.svnx.two
Version:               2.0.1 (2.0.1)
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           svnX [5209]
User ID:               501

Date/Time:             2022-12-24 19:13:33.941 -0500
OS Version:            macOS 11.6.7 (20G630)
Report Version:        12
Anonymous UUID:        28AFEC09-C6C4-5A30-85C3-5FCD366DD70D

Sleep/Wake UUID:       0AB7D000-3B5E-439E-BC11-B29D9252768B

Time Awake Since Boot: 26000 seconds
Time Since Wake:       6300 seconds

System Integrity Protection: enabled

Crashed Thread:        5  Dispatch queue: NSOperationQueue 0x100509350 (QOS: UNSPECIFIED)

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       EXC_I386_GPFLT
Exception Note:        EXC_CORPSE_NOTIFY

Termination Signal:    Segmentation fault: 11
Termination Reason:    Namespace SIGNAL, Code 0xb
Terminating Process:   exc handler [5209]

Application Specific Information:
   $Ŏ

Thread 0:: Dispatch queue: Client CFPasteboard-ApplePerContextInputPasteboard
0   libobjc.A.dylib                   0x00007fff205c5795 cache_getImp + 37
1   libobjc.A.dylib                   0x00007fff205cb91a lookupMethodInClassAndLoadCache + 32
2   libobjc.A.dylib                   0x00007fff205cb86e object_cxxConstructFromClass + 66
3   libobjc.A.dylib                   0x00007fff205cb85a object_cxxConstructFromClass + 46
4   libobjc.A.dylib                   0x00007fff205cb85a object_cxxConstructFromClass + 46
5   com.apple.LaunchServices          0x00007fff20cce9f2 +[UTTypeRecord typeRecordWithTag:ofClass:conformingToIdentifier:] + 242
6   com.apple.LaunchServices          0x00007fff20c617ef UTTypeCreatePreferredIdentifierForTag + 73
7   com.apple.CoreFoundation          0x00007fff2081cdc2 ____kCFPasteboardFilenamesFlavor_block_invoke + 177
8   libdispatch.dylib                 0x00007fff2057d806 _dispatch_client_callout + 8
9   libdispatch.dylib                 0x00007fff2057e98c _dispatch_once_callout + 20
10  com.apple.CoreFoundation          0x00007fff2081b8e9 __CFPasteboardCopyData_block_invoke + 591
11  libdispatch.dylib                 0x00007fff2057d806 _dispatch_client_callout + 8
12  libdispatch.dylib                 0x00007fff2058a5ce _dispatch_lane_barrier_sync_invoke_and_complete + 60
13  com.apple.CoreFoundation          0x00007fff2081b22f CFPasteboardCopyData + 531
14  com.apple.HIToolbox               0x00007fff28a81abd TSMCopyTextInputGlobalProperty + 208
15  com.apple.HIToolbox               0x00007fff28a7b6c4 MyActivateTSMDocument + 310
16  com.apple.HIToolbox               0x00007fff28a81334 CallMyActivateTSMDocument + 82
17  com.apple.CoreFoundation          0x00007fff208385f9 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 20
18  com.apple.CoreFoundation          0x00007fff208380ed __CFRunLoopDoTimer + 927
19  com.apple.CoreFoundation          0x00007fff20837c4a __CFRunLoopDoTimers + 307
20  com.apple.CoreFoundation          0x00007fff2081e843 __CFRunLoopRun + 1988
21  com.apple.CoreFoundation          0x00007fff2081d9bc CFRunLoopRunSpecific + 563
22  com.apple.HIToolbox               0x00007fff28a66a83 RunCurrentEventLoopInMode + 292
23  com.apple.HIToolbox               0x00007fff28a667e5 ReceiveNextEventCommon + 587
24  com.apple.HIToolbox               0x00007fff28a66583 _BlockUntilNextEventMatchingListInModeWithFilter + 70
25  com.apple.AppKit                  0x00007fff23026b12 _DPSNextEvent + 864
26  com.apple.AppKit                  0x00007fff230252e5 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1364
27  com.apple.AppKit                  0x00007fff23017609 -[NSApplication run] + 586
28  com.apple.AppKit                  0x00007fff22feb80c NSApplicationMain + 816
29  app.svnx.two                      0x00000001000019f4 0x100000000 + 6644

Thread 1:
0   libsystem_pthread.dylib           0x00007fff20723420 start_wqthread + 0

Thread 2:
0   libsystem_pthread.dylib           0x00007fff20723420 start_wqthread + 0

Thread 3:: Dispatch queue: NSOperationQueue 0x100404f30 (QOS: UNSPECIFIED)
0   libsystem_kernel.dylib            0x00007fff206f4ba2 __semwait_signal + 10
1   libsystem_c.dylib                 0x00007fff20674c1a nanosleep + 196
2   libsystem_c.dylib                 0x00007fff20674b14 usleep + 53
3   app.svnx.two                      0x000000010005252b 0x100000000 + 337195
4   app.svnx.two                      0x000000010005441b 0x100000000 + 345115
5   app.svnx.two                      0x0000000100011dde 0x100000000 + 73182
6   app.svnx.two                      0x0000000100010694 0x100000000 + 67220
7   com.apple.Foundation              0x00007fff2159133a __NSOPERATION_IS_INVOKING_MAIN__ + 17
8   com.apple.Foundation              0x00007fff215905ee -[NSOperation start] + 785
9   com.apple.Foundation              0x00007fff215902bf __NSOPERATIONQUEUE_IS_STARTING_AN_OPERATION__ + 17
10  com.apple.Foundation              0x00007fff21590192 __NSOQSchedule_f + 182
11  libdispatch.dylib                 0x00007fff2058a19e _dispatch_block_async_invoke2 + 83
12  libdispatch.dylib                 0x00007fff2057d806 _dispatch_client_callout + 8
13  libdispatch.dylib                 0x00007fff205801b0 _dispatch_continuation_pop + 423
14  libdispatch.dylib                 0x00007fff2057f887 _dispatch_async_redirect_invoke + 708
15  libdispatch.dylib                 0x00007fff2058c818 _dispatch_root_queue_drain + 326
16  libdispatch.dylib                 0x00007fff2058cf70 _dispatch_worker_thread2 + 92
17  libsystem_pthread.dylib           0x00007fff20724417 _pthread_wqthread + 244
18  libsystem_pthread.dylib           0x00007fff2072342f start_wqthread + 15

Thread 4:
0   libsystem_pthread.dylib           0x00007fff20723420 start_wqthread + 0

Thread 5 Crashed:: Dispatch queue: NSOperationQueue 0x100509350 (QOS: UNSPECIFIED)
0   libobjc.A.dylib                   0x00007fff205c56a3 objc_retain + 19
1   app.svnx.two                      0x000000010001585e 0x100000000 + 88158
2   app.svnx.two                      0x000000010005bf77 0x100000000 + 376695
3   app.svnx.two                      0x000000010005c239 0x100000000 + 377401
4   app.svnx.two                      0x0000000100059a4b 0x100000000 + 367179
5   com.apple.Foundation              0x00007fff2159133a __NSOPERATION_IS_INVOKING_MAIN__ + 17
6   com.apple.Foundation              0x00007fff215905ee -[NSOperation start] + 785
7   com.apple.Foundation              0x00007fff215902bf __NSOPERATIONQUEUE_IS_STARTING_AN_OPERATION__ + 17
8   com.apple.Foundation              0x00007fff21590192 __NSOQSchedule_f + 182
9   libdispatch.dylib                 0x00007fff2058a19e _dispatch_block_async_invoke2 + 83
10  libdispatch.dylib                 0x00007fff2057d806 _dispatch_client_callout + 8
11  libdispatch.dylib                 0x00007fff205801b0 _dispatch_continuation_pop + 423
12  libdispatch.dylib                 0x00007fff2057f887 _dispatch_async_redirect_invoke + 708
13  libdispatch.dylib                 0x00007fff2058c818 _dispatch_root_queue_drain + 326
14  libdispatch.dylib                 0x00007fff2058cf70 _dispatch_worker_thread2 + 92
15  libsystem_pthread.dylib           0x00007fff20724417 _pthread_wqthread + 244
16  libsystem_pthread.dylib           0x00007fff2072342f start_wqthread + 15

Thread 6:
0   libsystem_pthread.dylib           0x00007fff20723420 start_wqthread + 0

Thread 7:: com.apple.NSEventThread
0   libsystem_kernel.dylib            0x00007fff206f22aa mach_msg_trap + 10
1   libsystem_kernel.dylib            0x00007fff206f261c mach_msg + 60
2   com.apple.CoreFoundation          0x00007fff2081fecf __CFRunLoopServiceMachPort + 316
3   com.apple.CoreFoundation          0x00007fff2081e5af __CFRunLoopRun + 1328
4   com.apple.CoreFoundation          0x00007fff2081d9bc CFRunLoopRunSpecific + 563
5   com.apple.AppKit                  0x00007fff231acbba _NSEventThread + 124
6   libsystem_pthread.dylib           0x00007fff207278fc _pthread_start + 224
7   libsystem_pthread.dylib           0x00007fff20723443 thread_start + 15

chri...@gmail.com

unread,
Dec 25, 2022, 11:41:00 PM12/25/22
to sv...@googlegroups.com
Hello John,

> On 25 Dec 2022, at 00:28:44, John Weissberg <j...@printscience.com> wrote:
>
> I have replaced the dylib links with the dylib files in the download. Unfortunately, svnx 2.0.1 is still failing to launch correctly on Big Sur with the set of error messages below. Any help would be appreciated. I would love to continue to use svnx:

Unfortunately, I’ve been unable to symbolize your crash log. So I can’t see exactly where the crash is happening. However, based on a similar log it may well be due to a corrupt repository log cache database.

You can test this by: ensuring svnX is not running and then moving all the ~/Library/Caches/app.svnx.two/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.A.db… like files into a new folder and then launching svnX. [Where the X’s are any alpha-numeric characters.] These files are not essential & will be recreated by svnX as necessary. SvnX uses them when displaying a Repository window or Log History sheet. [The name of each file is based on its repository UUID - which may be seen in the Details tab of the Bookmarks window when you select the repository.]

If this solves the problem it would be helpful for me to get a copy of the corrupt db, as this happens so infrequently and I haven’t been able to reproduce it - meaning I can’t try to develop an in-app fix.
If you have multiple cache dbs then to identify the problem one you can move them one-by-one back to their original folder, quitting, moving, relaunching & opening the appropriate Repo window for each. It is likely that the corrupt file is the most recently modified one. Then, if you are willing, zip the corrupt db & (if it’s small) email or (preferably) upload it somewhere & contact me directly so I can analyse it.

Note: pressing control+option+command when launching svnX stops it from reopening WC & repo windows that were previously open. This may allow you to relaunch without crashing.

If your problem is different that let me know what action(s) trigger it & what version of Subversion you are using. Also I have a v2.1 beta that you could possibly try.

Happy Christmas to all,

CHRIS


John Weissberg

unread,
Jan 4, 2023, 5:43:39 PM1/4/23
to svnX
You are a genius Chris. Deleting the cache database file solved the problem. svnX is now able to open without crashing.
Reply all
Reply to author
Forward
0 new messages