Bug-Reports can be submitted on our github-page: https://github.com/multipath-tcp/mptcp/issues
Be very explicit with the exact test scenario you have. Otherwise we might be unable to reproduce it. E.g., How many sufblows do you establish? Are you behind a NAT? Are you running through the real Internet or in a testbed? What kind of access mediums are you using? Please show us your routing-tables and ifconfig.
Provide the exact version of MPTCP you are using. If you used the git-repository, give us the git head. If you used the apt-repository show us uname -a
.
If you are using the apt-repository, and you have installed the crashdump-handler as described here, provide us the crashdump-file by uploading it to a public webhoster.
If you use the git-repository, you have to analyze the crashdump yourself, as we cannot easily reproduce the same binary as you.
Check in the crash dump if you have a line telling the line number of the bug, like: kernel BUG at net/mptcp/mptcp.c:1082!
.
Otherwise a bit more work is needed from you : In order for us to know where in the code the error happened, which is possible by translating the binary address into a line in the source code. But for this, we need an excerpt of the disassembled code of your kernel (the vmlinux binary as you compiled it to produce the bug). You can get the excerpt very easily by conducting the following steps:
- Find in the stack trace the line providing the EIP field. ex: EIP: 0060:[<c034717a>]
Then save the useful info in a file, with the following command:
objdump -d vmlinux | grep -A 500 -B 500 "c034717a:" > bin_excerpt.txt
Attach the file bin_excerpt.txt to the bug-report.
- We need the asm file containing the buggy function:
Find in the stack trace the name of the buggy function (just one line after the EIP). ex: EIP is at mtcp_check_rcv_queue+0x32a/0x370
Find the file containing the definition of the function. You should easily find it with
git grep mptcp_check_rcv_queue
. In the example, this will tell you
include/net/mptcp.h:int mptcp_check_rcv_queue(struct multipath_pcb *mpcb,...
net/mptcp/mptcp.c:int mptcp_check_rcv_queue(struct multipath_pcb *mpcb,...
net/ipv4/tcp.c: err=mptcp_check_rcv_queue(mpcb,msg, &len,...
A quick check shows you that the function is defined in mptcp.c, hence we compile it:
make net/ipv4/mptcp.s
(note the "s" at the end ofmptcp
)
Attach the resulting mptcp.s file to the bug-report.
It is always useful as well to attach your .config
file to the ticket.