calling open() with an invalid `mode' parameter triggers an LBUG if an 1.8 client tries to create such a file on a 2.2 server:
#include <sys/file.h>
#include <errno.h>
int main() {
int fd;
fd = open("foobar", O_RDWR|O_CREAT, 251235251253);
close(fd);
return 0;
}
Executing this code produces:
LustreError: 8759:0:(client.c:1750:__ptlrpc_free_req()) ASSERTION(!request->rq_replay) failed: req ffff81024fa36400
LustreError: 8759:0:(client.c:1750:__ptlrpc_free_req()) LBUG
Pid: 8759, comm: a.out
Call Trace:
[<ffffffff886846a1>] libcfs_debug_dumpstack+0x51/0x60 [libcfs]
[<ffffffff88684bda>] lbug_with_loc+0x7a/0xd0 [libcfs]
[<ffffffff887ddf04>] __ptlrpc_req_finished+0x444/0xa70 [ptlrpc]
[<ffffffff889b9f45>] ll_intent_release+0x95/0x100 [lustre]
[<ffffffff800e3958>] lookup_instantiate_filp+0x5f/0x83
[<ffffffff88a06a28>] ll_create_nd+0x5b8/0x6c0 [lustre]
[<ffffffff88a07ef7>] ll_lookup_nd+0x207/0x400 [lustre]
[<ffffffff80022989>] d_alloc+0x176/0x1ab
[<ffffffff8003a40d>] vfs_create+0xe8/0x15e
[<ffffffff8001b22a>] open_namei+0x19d/0x6ba
[<ffffffff800275e1>] do_filp_open+0x1c/0x38
[<ffffffff80019fb3>] do_sys_open+0x44/0xbe
[<ffffffff8005d28d>] tracesys+0xd5/0xe0
LustreError: dumping log to /tmp/lustre-log.1343223938.8759
The directory where 'foobar' was supposed to be created will also be blocked on the affected client.
Duplicate of
LU-199