[LTP] [PATCH] creat05: count opened fds

Jan Stancek jstancek@redhat.com
Tue May 17 16:34:43 CEST 2016





----- Original Message -----
> From: "Cyril Hrubis" <chrubis@suse.cz>
> To: "Jan Stancek" <jstancek@redhat.com>
> Cc: ltp@lists.linux.it
> Sent: Tuesday, 17 May, 2016 4:19:06 PM
> Subject: Re: [PATCH] creat05: count opened fds
> 
> Hi!
> > This testcase estimates number of opened fds by opening
> > a new one and assuming there are no gaps. This doesn't always
> > hold true. There can be gaps if test harness that runs it
> > opens couple fds with O_CLOEXEC prior to starting creat05.
> > As result, testcase unexpectedly fails in setup.
> 
> As far as I understand it the O_CLOEXEC is not the problem here. It may
> be reproduced even without it when the test harness leaves an open fd
> after some open one, right?

Agreed, that is also one way to get "gap".

> 
> Something as:
> 
> fd0 = open("foo", ...);
> fd1 = open("bar", ...);
> close(fd0);
> fork();
> if (!pid)
> 	exec("creat05");
> 
> 
> And in that case the testcase can do even without listing the
> /proc/self/fd. Since POSIX specifies that we get the smallest unused fd
> for each creat() we can just call it in a loop until the resulting
> fd == max_fd - 1.

We could do that. It's quite unlikely that fd would be already in use.
I'll send v2 with this change.

Regards,
Jan

> We would have to allocate the array to store the fds
> so that we can close them in cleanup though.
> 
> --
> Cyril Hrubis
> chrubis@suse.cz
> 


More information about the ltp mailing list