Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

'mbuffer' broken for network support / pipes under 7.2-R / 8.1-R?

52 views
Skip to first unread message

Karl Pielorz

unread,
Sep 22, 2010, 10:06:47 AM9/22/10
to

Hi,

I've got the port of mbuffer (/usr/ports/misc/mbuffer) installed on a
number of machines (amd64/FreeBSD 6.4-S, 7.2-S and 8.1-R) - but it seems to
have issues...

Firstly - any attempt to use the 'network' options of it, fail miserably
(this is where mbuffer sends the data via tcp, instead of stdout) - e.g.

"
tester# mbuffer -I 10000
Assertion failed: ((err == 0) && (bsize == sizeof(rcvsize))), function
openNetworkInput, file mbuffer.c, line 1358.
Abort (core dumped)
"

None of the network options (for sending, or receiving) seem to work - they
all fail with the above assert under 7.2/8.1

Under 6.4 - they 'seem' to work, but you get a warning "mbuffer: warning:
unable to set socket receive buffer size: No buffer space available" spat
out.


Also, I've noticed - if using mbuffer as part of a chain, it fails to
finish under 7.2/8.1 - e.g.

"
tester# cat /usr/src/COPYRIGHT | ssh root@othermachine "cat >test"
"

Works fine.

"
tester# cat /usr/src/COPYRIGHT | mbuffer | ssh root@othermachine "cat
>test"
"

Completes the transfer fine, but then 'hangs forever' - hitting CTRL-C nets:

"mbuffer: warning: error during output to <stdout>: canceled"


The same on an older 6.4 based host, completes fine.


Anyone know about this, or can think of any workarounds? - 'mbuffer' is
very handy (not only for speeding I/O but also rate limiting on transfers
etc.)

Thanks,

-Karl

_______________________________________________
freebs...@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-port...@freebsd.org"

Karl Pielorz

unread,
Sep 23, 2010, 7:40:10 AM9/23/10
to

--On 22 September 2010 22:02 +0400 Ruslan Mahmatkhanov <cvs...@yandex.ru>
wrote:

> 22.09.2010 18:06, Karl Pielorz пишет:
>
> Please use patch attached. It updates mbuffer to latest version that has
> many 64-bit related fixes. Tell if it's now ok for you.
>
> --
> Regards,
> Ruslan

Hi,

The patch/updated version seems to work fine - there's a couple of compile
time warnings, and when you run it using 'network' I/O you still get:

"
mbuffer: warning: unable to set socket buffer size: No buffer space
available
"

But it does appear to work - network mode works, and when using another
transport (such as 'nc' or 'ssh') as part of a pipe chain, it does
correctly terminate when the send is finished.

Thanks!

Ruslan Mahmatkhanov

unread,
Sep 23, 2010, 8:49:05 AM9/23/10
to

23.09.10, 16:43, "Karl Pielorz" <kpielo...@tdx.co.uk>:

> --On 22 September 2010 22:02 +0400 Ruslan Mahmatkhanov <cvs...@yandex.ru> wrote: 22.09.2010 18:06, Karl Pielorz пишет: Please use patch attached. It updates mbuffer to latest version that has many 64-bit related fixes. Tell if it's now ok for you. -- Regards, RuslanHi,The patch/updated version seems to work fine - there's a couple of compile time warnings, and when you run it using 'network' I/O you still get:"mbuffer: warning: unable to set socket buffer size: No buffer space available"But it does appear to work - network mode works, and when using another transport (such as 'nc' or 'ssh') as part of a pipe chain, it does correctly terminate when the send is finished.Thanks!-Karl____________________________...@freebsd.org mailing listhttp://lists.freebsd.org/mailman/listinfo/freebsd-portsTo unsubscribe, send any mail to "freebsd-port...@freebsd.org"

Hi Karl,
sorry about webmail formatting.
Try to add this line into port's Makefile, and then reinstall mbuffer:
CFLAGS+=-m64

See if your 'network i/o' test case now passes.

--
Regards,
Ruslan

Karl Pielorz

unread,
Sep 23, 2010, 10:00:23 AM9/23/10
to

--On 23 September 2010 16:49 +0400 Ruslan Mahmatkhanov <cvs...@yandex.ru>
wrote:

> Hi Karl,
> sorry about webmail formatting.

Yeah, it certainly mangled the original mail when quoting it! <g>

> Try to add this line into port's Makefile, and then reinstall mbuffer:
> CFLAGS+=-m64
>
> See if your 'network i/o' test case now passes.

Makes no difference - it *doesn't fail* for network I/O (it completes fine)

- it just dumps a single line to stderr at the start, which says:

"
mbuffer: warning: unable to set socket buffer size: No buffer space
available
"

Adding '-m64' didn't get rid of that, or any of the compile time warnings...

I can live with the warning (better than it not working at all! :) - unless
it might be doing something nasty (like messing up network performance -
though it seems to be getting close to wire speed for transfers).

-Karl

Ruslan Mahmatkhanov

unread,
Sep 23, 2010, 11:47:42 AM9/23/10
to
23.09.2010 18:00, Karl Pielorz пишет:

>
>
> --On 23 September 2010 16:49 +0400 Ruslan Mahmatkhanov
> <cvs...@yandex.ru> wrote:
>
>> Hi Karl,
>> sorry about webmail formatting.
>
> Yeah, it certainly mangled the original mail when quoting it! <g>
>
>> Try to add this line into port's Makefile, and then reinstall mbuffer:
>> CFLAGS+=-m64
>>
>> See if your 'network i/o' test case now passes.
>
> Makes no difference - it *doesn't fail* for network I/O (it completes
> fine) - it just dumps a single line to stderr at the start, which says:
>
> "
> mbuffer: warning: unable to set socket buffer size: No buffer space
> available
> "
>
> Adding '-m64' didn't get rid of that, or any of the compile time
> warnings...
>
> I can live with the warning (better than it not working at all! :) -
> unless it might be doing something nasty (like messing up network
> performance - though it seems to be getting close to wire speed for
> transfers).
>
> -Karl

Ok. So i've create this PR:
http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/150885

If anybody have a clue about warnings:

on build time:
mbuffer.c:64:3: warning: #warning sendfile is unable to send from buffers

and on run time:


warning: unable to set socket buffer size: No buffer space
available

please add to PR.

--
Regards,
Ruslan

0 new messages