Incompatibility between jnr-ffi and jnr-posix dependencies causes PID part of UUIDs.timeBased to always return 0 if JNR is used

Description

upgraded a few of our dependencies including:

  • jnr-ffi, 2.0.7 -> 2.0.9

  • jnr-posix, 3.0.27 -> 3.0.44

A problem with this is that jnr-posix depends on jnf-ffi 2.1.7 and is not compatible with 2.0.9. Because of this, POSIX.getpid() always returns 0 instead of the actual process id.

This would affect users who run the driver in multiple JVMs on the same host, as it is possible they might generated the same UUIDs when calling UUIDs.timeBased.

We should fix this before we go out with 3.5.0 and dse driver 1.6

Environment

None

Pull Requests

None

Activity

Show:
Andy Tolbert
March 30, 2018, 8:44 PM
Edited

Oddly, this doesn't seem to be an issue with gradle, as gradle prefers the latest called out version (including transitive dependencies) and since jnr-ffi depends on 2.1.7, it pulls that in. Maven on the other hand appears to give precedence to direct dependency versions over transitive dependency versions.

We should just remove our direct dependency on jnr-ffi and let it get pulled in by jnr-posix.

Fixed

Assignee

Unassigned

Reporter

Andy Tolbert

Labels

None

PM Priority

None

Reproduced in

None

Affects versions

Fix versions

Pull Request

None

Doc Impact

None

Size

None

External issue ID

None

External issue ID

None

Priority

Major
Configure