Mantis - Resin
Viewing Issue Advanced Details
6489 minor always 09-05-23 03:21 10-01-23 06:53
nam  
 
normal  
new 4.0.66  
open  
none    
none  
0006489: resin.exe fails to start because of mutex issue with Windows service
(rep by M. Shimomura)

The mutex in modules/csharp/src/resin/Resin.cs is causing issues when there are two instances of Resin started differently:

1. resin started as a Windows service
2. resin is then started via resin.exe:

The second start throws the following exception:

Unhandled Exception: System.UnauthorizedAccessException: Access to the path 'Global\com.caucho.Resin.' is denied.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.Threading.Mutex.<>c__DisplayClass3.<.ctor>b__0(Object userData)
   at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
   at System.Threading.Mutex..ctor(Boolean initiallyOwned, String name, Boolean& createdNew, MutexSecurity mutexSecurity)
   at System.Threading.Mutex..ctor(Boolean initiallyOwned, String name, Boolean& createdNew)
   at Caucho.Resin..ctor(ResinArgs args)
   at Caucho.Resin.Main(String[] args)

The root cause is that we're appending _rootDirectory to the mutex, but it is specified, so it becomes just a dot in "Global\com.caucho.Resin.". However, I don't know why we need a mutex in the first place. The likely solution is to just remove the mutex.

Workaround
==========
Instead of starting resin via resin.exe, the user should instead start resin via "java -jar lib/resin".

There are no notes attached to this issue.