Hello. the
No, pods have not restarted. In one case, the exception has been thrown
when one of our features containing a Camel context has been upgraded,
stopping the old routes where a lock had been mysteriously lost. The
previous logs are normal information about routes executions some hours
before, and nothing between. No event that could be related to files and
locks.
As we think this could be a consequence of an external (out of the JVM)
change we've been looking for OS (in the container), worker or cluster
system event, but nothing.
I've been looking for some Mbean to check the current locks, but the
only ones are just the links between the service and the Camel routes,
but with no state information.
We actually hope that this is a contextual system issue, since we have
no lock issue at all on all the older deployments.
What should be the system cause of what appears to be an inconsistant
state between the OS lock state and the cluster service view ?
Thanks.
Regards.
Ephemeris Lappis
Le 30/08/2025 à 07:32, Jean-Baptiste Onofré a écrit :
Hi,
It looks like a disconnection happens closing the file lock.
Do you have a pod restarted or similar event ?
Regards
JB
On Fri, Aug 29, 2025 at 3:21 PM Ephemeris Lappis
<ephemeris.lap...@gmail.com> wrote:
Hello.
We use the Camel "master" component with a File lock cluster service. The service is
configured using a blueprint and stores its files on "/tmp/MY-LOCKS/*". The service is
transparently bound to all the Camel's contexts.
Versions :
- Camel 3.22.1
- Karaf 4.4.4
- Java 17
Our Karaf runs inside a K8 s pods, with a single instance for now in this configuration.
The file lock folder is on the container's "/tmp", and not on a shared volume
(PVC).
We have more than 20 deployments working without any problem on several
Kubernetes clusters, but an error appears randomly on two namespaces of one
cluster. See the stack trace at the end of the message. We observe that all the
routes that depend on master are frozen (file endpoint for example are not
consuming existing files), but error messages only appear when some change
happens on a route : for example stopping or suspending a context.
From the pod's container, a lslocks indeed doesn't show the expected locks
even if files matching the distinct routes are present in the configured
folder, as we can see on all the working instances.
We've checked the possible differences between this cluster and other working
clusters, but we can't identify significative ones (same container image, same
workers OS, and so on).
Has someone already experienced this kind of error ?
What could we check to identify when and why all the locks seem to be lost ?
Thanks in advance for your help.
Regards.
Stack trace :
DefaultShutdownStrategy | 143 - org.apache.camel.camel-base-engine -
3.22.1 | | Error occurred while shutting down route: acq_appvte002-f027. This
exception will be ignored.
java.lang.RuntimeException: org.apache.camel.RuntimeCamelException:
java.nio.channels.ClosedChannelException
at
org.apache.camel.support.cluster.AbstractCamelClusterService$ViewHolder.lambda$new$1(AbstractCamelClusterService.java:261)
~[?:?]
at
org.apache.camel.util.ReferenceCount.release(ReferenceCount.java:71)
~[!/:3.22.1]
at
org.apache.camel.support.cluster.AbstractCamelClusterService$ViewHolder.release(AbstractCamelClusterService.java:281)
~[?:?]
at
org.apache.camel.support.cluster.AbstractCamelClusterService.lambda$releaseView$4(AbstractCamelClusterService.java:168)
~[?:?]
at
org.apache.camel.util.concurrent.LockHelper.doWithWriteLock(LockHelper.java:84)
~[!/:3.22.1]
at
org.apache.camel.support.cluster.AbstractCamelClusterService.releaseView(AbstractCamelClusterService.java:162)
~[?:?]
at
org.apache.camel.component.master.MasterConsumer.doStop(MasterConsumer.java:94)
~[?:?]
at
org.apache.camel.support.service.BaseService.stop(BaseService.java:160)
~[!/:3.22.1]
at
org.apache.camel.support.service.ServiceHelper.stopService(ServiceHelper.java:162)
~[!/:3.22.1]
at
org.apache.camel.impl.engine.DefaultShutdownStrategy.shutdownNow(DefaultShutdownStrategy.java:433)
[!/:3.22.1]
at
org.apache.camel.impl.engine.DefaultShutdownStrategy$ShutdownTask.run(DefaultShutdownStrategy.java:636)
[!/:3.22.1]
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) [?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[?:?]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[?:?]
at java.lang.Thread.run(Thread.java:840) [?:?]
Caused by: org.apache.camel.RuntimeCamelException:
java.nio.channels.ClosedChannelException
at
org.apache.camel.RuntimeCamelException.wrapRuntimeException(RuntimeCamelException.java:66)
~[!/:3.22.1]
at
org.apache.camel.support.service.BaseService.doFail(BaseService.java:413)
~[!/:3.22.1]
at
org.apache.camel.support.service.BaseService.fail(BaseService.java:342)
~[!/:3.22.1]
at
org.apache.camel.support.service.BaseService.stop(BaseService.java:165)
~[!/:3.22.1]
at
org.apache.camel.support.cluster.AbstractCamelClusterService$ViewHolder.stopView(AbstractCamelClusterService.java:296)
~[?:?]
at
org.apache.camel.support.cluster.AbstractCamelClusterService$ViewHolder.lambda$new$1(AbstractCamelClusterService.java:259)
~[?:?]
... 15 more
Caused by: java.nio.channels.ClosedChannelException
at sun.nio.ch.FileLockImpl.release(FileLockImpl.java:58) ~[?:?]
at
org.apache.camel.component.file.cluster.FileLockClusterView.closeInternal(FileLockClusterView.java:110)
~[?:?]
at
org.apache.camel.component.file.cluster.FileLockClusterView.doStop(FileLockClusterView.java:97)
~[?:?]
at
org.apache.camel.support.service.BaseService.stop(BaseService.java:160)
~[!/:3.22.1]
at
org.apache.camel.support.cluster.AbstractCamelClusterService$ViewHolder.stopView(AbstractCamelClusterService.java:296)
~[?:?]
at
org.apache.camel.support.cluster.AbstractCamelClusterService$ViewHolder.lambda$new$1(AbstractCamelClusterService.java:259)
~[?:?]
... 15 more
--
Cet e-mail a été vérifié par le logiciel antivirus d'Avast.
www.avast.com