[ https://issues.apache.org/jira/browse/MINIFICPP-2020?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ferenc Gerlits reassigned MINIFICPP-2020: ----------------------------------------- Assignee: (was: Ferenc Gerlits) > Fix the code which is supposed to stop two MiNiFi instances from interfering > with each other > -------------------------------------------------------------------------------------------- > > Key: MINIFICPP-2020 > URL: https://issues.apache.org/jira/browse/MINIFICPP-2020 > Project: Apache NiFi MiNiFi C++ > Issue Type: Bug > Reporter: Ferenc Gerlits > Priority: Minor > Fix For: 0.14.0 > > Time Spent: 40m > Remaining Estimate: 0h > > On Windows, > * (x) if MiNiFi is already running as a service and you try to start another > instance from the console, then the second instance will exit with > %errorlevel% == -1, but without any message printed to either the console or > the log file, because GetTerminationEventHandle returns a null pointer; > * (/) if MiNiFi is not running as a service, you can start up two instances > with different MINIFI_HOMES from the console; > * (?) if you start up a MiNiFi instance from the console, then you start the > MiNiFi service, that works (assuming their MINIFI_HOMEs are different). > On Linux, > * (/) you can start up two instances as long as their MINIFI_HOMEs are > different. > On both, > * (?) if you try to start up two MiNiFi instances with the same MINIFI_HOME, > it will fail, as long as some repositories are RocksDB, because RocksDB can't > open the repo if another process has it open already. > > In theory, the process semaphore should stop the last case before trying to > open the DBs, but it doesn't, because we open the semaphore in non-exclusive > mode. Opening the process semaphore in exclusive mode (with no other > changes) would be a bad solution, because in the case of a crash or a kill > signal, the stale semaphore would stop the user from starting a new MiNiFi > instance and would have to be removed manually. -- This message was sent by Atlassian Jira (v8.20.10#820010)