On 07/10/15 18:53, Colin P. McCabe wrote:

I think you could come up with a select/poll solution while using the
old function signatures.  A 4-byte int is more than enough information
to pass in, given that you can use it as an index into a table in the
C code.

I have thought about that but a simple table would not work very well. It would have to be potentially quite large and would be sparsely populated. It would really have to be some sort of map and would most likely have to be implemented in C. However it is done it becomes a Solaris-only maintenance burden. Yes it's possible, but it seemed distinctly undesirable.

 There are also a lot of other solution to this problem, like
I pointed out earlier.  For example, you dismissed the timer wheel
suggestion because of a detail of a unit test, but we could easily
change the test.

Unfortunately there are somewhere around 100 test failures that I think are related to the socket timeout issue, which is why I focussed on it.

Anyway, changing the function signatures in the way you described is
certainly reasonable and I wouldn't object to it.  It is probably the
most natural solution.

That's the conclusion I came to, but I fully understand there has to be a solution for the Java/JNI versioning issue as well.

Does that sound acceptable? If so I can draft up a proposal for native
library version and platform naming, library search locations etc.

Yes, I think it would be good to make some progress on HADOOP-11127.
We have been putting off the issue for too long.

Even if I put together a solution for DomainSocket that doesn't need changes to the JNI interface I'm almost certain that subsequent work will hit the same issue. I'd rather spend the time up front and come up with a once-and-for-all solution, I think overall that will work out to be less effort and certainly less risky.

I'll draft up a proposal and attach it to HADOOP-11127.

Thanks,

--
Alan Burlison
--

Reply via email to