[nanomsg] Re: Release plans for nanomsg

  • From: Michael Powell <mwpowellhtx@xxxxxxxxx>
  • To: "nanomsg@xxxxxxxxxxxxx" <nanomsg@xxxxxxxxxxxxx>
  • Date: Fri, 13 Oct 2017 07:45:18 -0400

On Fri, Oct 13, 2017 at 12:08 AM, Garrett D'Amore <garrett@xxxxxxxxxx> wrote:

Just so folks now, the nng problem reported by Michael was confusion about
correct API usage — there may well be (almost certainly are!) other bugs in
nng, but his issue wasn’t one of them.

Yes, my confusion over zero-copy message ownership semantics. And nng
vs nanomsg, apparently.

On Thu, Oct 12, 2017 at 6:37 PM Michael Powell <mwpowellhtx@xxxxxxxxx>
wrote:

On Thu, Oct 12, 2017 at 9:35 PM, Garrett D'Amore <garrett@xxxxxxxxxx>
wrote:
Are you talking about bugs in libnng, or libnanomsg?  Most of our
offline
convo was about libnng, which is not production ready.

nng; and I understand that.

On Thu, Oct 12, 2017 at 6:33 PM Michael Powell <mwpowellhtx@xxxxxxxxx>
wrote:

On Thu, Oct 12, 2017 at 9:07 PM, Garrett D'Amore <garrett@xxxxxxxxxx>
wrote:
Hey all,

I just wanted to indicate that I’m planning on a 1.1 release of
nanomsg.
This will roll up a number of bug fixes that should improve stability
of
inproc (I’ve convinced myself that the inproc thread-safety issues I
thought
existed before don’t really exist — long story, but it turns out that
the
bugs were in the test code), but there were some real bugs in the
state
machines, which I think I’ve ironed out.

A little professional advice, I wouldn't be so quick at that. See our
offline convo.

I think I've uncovered a bug in nng_recvmsg that was being masked by a
nullified, not freed, message pointer. So whatever bookkeeping was
being done internally is likely still there when receive "sees" it,
and does not actually "receive" any message at all, but uses the
message that was appended approaching the send. Which results in a
false positive in the subsequent verification.

I've stripped back as much test framework as possible and still honor
the execution path, so at this point I am 99.97% confident this is a
bug.

Otherwise, it's been pretty solid up to that point.

It is my intention that this will be the *last* release of
libnanomsg.
(That said, as they say, the best laid plans of mice and men…)

The reason for this is that I’m pretty focused, as you may know, on
libnng,
which has a compatible API.  (In fact, you can just take your nanomsg
code,
and link it against libnng directly. :)

libnng isn’t perfect yet, and it isn’t ready for prime time, but it
is
getting there, and I really want to focus on that as the way forward

it
has lots of extra capabilities and it should open a lot of new
opportunities.

In the mean time, libnanomsg 1.1 will most likely be released this
week.
If
you have a favorite bug that you feel *absolutely* needs to be fixed
(and
I’ve not already labeled it as a “release stopper”) please let me
know
ASAP.
I can’t promise I will agree to hold the release for it, but it does
improve
the odds if I know the bug is critical to you somehow.

Thanks!

 - Garrett

Cheers,

Michael





Other related posts: