Modify

Opened 5 years ago

Last modified 4 years ago

#12604 new defect

Udpxrec drop about 50% of frames

Reported by: anonymous Owned by: developers
Priority: normal Milestone: Barrier Breaker 14.07
Component: packages Version: Attitude Adjustment 12.09 Beta
Keywords: udpxy, udpxrec Cc:

Description

Recording streams using udpxrec (from udpxy package),
drops about 50% of recorded frames.

Udpxrec on Backfire 10.03.1 works great.

Tested on clean version 12.09 (best2, rc1) and 10.03.1
(plus packages : udpxy, kmod-usb-core kmod-usb2 kmod-usb-storage, block-mount), recording to pendrive (USB 2.0, ext2)

(AA 12.09 beta2, and rc1 has the same problem)

Attachments (2)

bad_test_last.log (2.7 KB) - added by anonymous 5 years ago.
Openwrt 12.09 rc1 - udpxrec logfile, drops about 50% of recorded frames
test_last.log (2.9 KB) - added by anonymous 5 years ago.
Other device udpxrec recorded logfile

Download all attachments as: .zip

Change History (9)

comment:1 Changed 5 years ago by anonymous

Update: Tested on TP-Link TP-1043ND.

comment:2 Changed 5 years ago by anonymous

Update: my test files (recorded streams, and udpxrec logfiles)
http://www.sendspace.com/filegroup/RmYUeUfzR8%2FxhhsWbMev7SOj8V769kdA

Log differences:

1. "current receive buffer size is [1000000] bytes for socket [4]" (Other device, udpxrec - nice recording) 
2. "current receive buffer size is [163840] bytes for socket [4]" (Openwrt 12.09 AA rc1, udpxrec - drop frames) 

Here is a udpxrec source code:

get_sockbuf_size( int sockfd, int option, size_t* const len,
                  const char* bufname )
{
    int rc = 0;
    size_t buflen = 0;
    socklen_t varsz = sizeof(buflen);

    assert( sockfd && len && bufname );

    rc = getsockopt( sockfd, SOL_SOCKET, option, &buflen, &varsz );
    if (0 != rc) {
        mperror( g_flog, errno, "%s: getsockopt (%s) [%d]", __func__,
                bufname, option);
        return -1;
    }
    else {
        TRACE( (void)tmfprintf( g_flog,
            "current %s buffer size is [%u] bytes for socket [%d]\n",
            bufname, buflen, sockfd ) );
        *len = buflen;
    }

    return rc;

}

Maybe the "receive buffer size" (returned by getsockopt) is too small ???

comment:3 Changed 5 years ago by anonymous

update:
I try change "receive buffer size" (using setsockopt) to 1000000
but
/proc/sys/net/core/rmem_default
/proc/sys/net/core/rmem_max
it shows "163840".
I try to change it using
"sysctl -w net.core.rmem_default=1000000"
"sysctl -w net.core.rmem_max=1000000"
It works, but udpxrec still drop frames.

I don't have no idea, how to solve this problem.
Please help.

Changed 5 years ago by anonymous

Openwrt 12.09 rc1 - udpxrec logfile, drops about 50% of recorded frames

Changed 5 years ago by anonymous

Other device udpxrec recorded logfile

comment:4 Changed 5 years ago by anonymous

Update: Same problem on trunk r34710.

comment:5 Changed 5 years ago by anonymous

Update: Error appears between r29592 - r33081
Maybe this is a performance problem of other packages (kmod-fs-ext2 or something else) ?

comment:6 Changed 5 years ago by anonymous

r35400 has the same problem.

comment:7 Changed 4 years ago by jow

  • Milestone changed from Attitude Adjustment 12.09 to Barrier Breaker 14.07

Milestone Attitude Adjustment 12.09 deleted

Add Comment

Modify Ticket

Action
as new .
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.