Community
Participate
Working Groups
A configurable minimum timeout should be added to the coordinator implementation. This would ensure coordinations that were not properly terminated will eventually get cleaned up and participants can release any resources. If a client creates or begins a new coordination, the specified timeout, if less than the configured minimum, would be overridden. I think a value of zero (i.e. no timeout) should still be supported if someone really wants it but am not sure that should be the default value.
What is a reasonable default? The coordination creator specifies 0 (no timeout) or some really big timeout but then we put an arbitrary limit on that. Is that a good idea? I think the default needs to be pretty high. 30 minutes?
(In reply to comment #1) > What is a reasonable default? The coordination creator specifies 0 (no > timeout) or some really big timeout but then we put an arbitrary limit on that. > Is that a good idea? I think the default needs to be pretty high. 30 > minutes? I'm personally okay with a default minimum timeout of 0 but wanted to let any interested parties sound off.
(In reply to comment #2) > > I'm personally okay with a default minimum timeout of 0 but wanted to let any > interested parties sound off. I would prefer we go with a 0 default as well. It seems this option is used as an escape hatch when an admin notices some misbehaving software.
I added support for a new property named org.eclipse.equinox.coordinator.timeout. The value is in milliseconds. The default value is 0. The property is retrieved using the coordinator's BundleContext.getProperty. The property is retrieved anew with each instantiation of a Coordinator service. If a client attempts to create a coordination with a timeout less than the maximum timeout (when max timeout != 0), the requested timeout will be overwritten with the max timeout. If max timeout != 0, clients will not be able to extend the timeout of a coordination beyond the max.
Committed to master. http://git.eclipse.org/c/equinox/rt.equinox.bundles.git/commit/?id=85bfc05eb6f0efe5416b57ae7e925f3a1000686f http://git.eclipse.org/c/equinox/rt.equinox.bundles.git/commit/?id=ff55d9968fcc1526a8df8bbd78cf291b3a657b93