[LU-6474] Jenkins reports missing conftest.c while running ./configure Created: 17/Apr/15 Updated: 25/Sep/17 Resolved: 25/Sep/17 |
|
| Status: | Resolved |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Minor |
| Reporter: | Olaf Faaland | Assignee: | Jian Yu |
| Resolution: | Cannot Reproduce | Votes: | 0 |
| Labels: | None | ||
| Environment: |
Building remotely on onyx-2-sdc1-sles11sp3-x8664 (x86_64 sles11sp3 sles11-x86_64 sles11-lab lab _sles11) |
||
| Severity: | 3 |
| Rank (Obsolete): | 9223372036854775807 |
| Description |
|
Apparently a problem prevented configure from creating small files during a build. Configure starts reporting "conftest.c: No such file or directory" at line 2569 in the console output, after output for the AES test. It appears that the file could not be created because of some environmental problem such as insufficient space on the filesystem. This occurred after many, many successful tests, such as checking for HMAC and SHA1 kernel support. All or most of the tests seem to use the same mechanism of creating a conftest.c using the here-document redirection syntax, and then attempting to compile it. The filenames and build/test code in configure are identical for passing tests and the one encountering an error. configure: Lustre kernel checks ============================================================================== checking whether to enable Lustre pinger support... yes checking whether to enable data checksum support... yes checking whether to enable a write with the health check... no checking whether to enable lru self-adjusting... yes checking whether to enable 'llite_lloop' module... yes checking for name_to_handle_at... no configure: WARNING: file handle and related syscalls are not supported checking if Linux kernel was built with CONFIG_CRYPTO in or as module... yes checking if Linux kernel was built with CONFIG_CRYPTO_HMAC in or as module... yes checking if Linux kernel was built with CONFIG_CRYPTO_SHA1 in or as module... yes checking if Linux kernel was built with CONFIG_CRYPTO_AES in or as module... sed: can't read conftest.c: No such file or directory no configure: WARNING: Lustre remote client require that CONFIG_CRYPTO_AES is enabled in your kernel. checking whether to enable gss/krb5 support... auto checking whether to enable gss keyring backend... auto checking if Linux kernel was built with CONFIG_KEYS in or as module... ./configure: line 17689: conftest.c: No such file or directory ./configure: line 17692: conftest.c: No such file or directory ./configure: line 17693: conftest.c: No such file or directory ./configure: line 17697: conftest.c: No such file or directory ./configure: line 17698: conftest.c: No such file or directory sed: can't read conftest.c: No such file or directory This occurred while building a patch against a utility, llog_reader. |
| Comments |
| Comment by Peter Jones [ 19/Apr/15 ] |
|
Jian Could you please help with this one? Thanks Peter |
| Comment by Jian Yu [ 20/Apr/15 ] |
|
Hi Olaf,
On the current master branch, I did not see conftest.c was created anywhere by using the here-document redirection syntax. Could you please point a place to me? |
| Comment by Jian Yu [ 20/Apr/15 ] |
|
Ah, I see. The conftest.c is created by the following line in config/lustre-build-linux.m4: [AC_LANG_CONFTEST([AC_LANG_SOURCE([$1])])] And the autoconf macros are defined as follows Autoconf provides a set of macros that can be used to generate test source files. They are written to be language generic, i.e., they actually depend on the current language (see Language Choice) to “format” the output properly. — Macro: AC_LANG_CONFTEST (source) Save the source text in the current test source file: conftest.extension where the extension depends on the current language. Note that the source is evaluated exactly once, like regular Autoconf macro arguments, and therefore (i) you may pass a macro invocation, (ii) if not, be sure to double quote if needed. — Macro: AC_LANG_SOURCE (source) Expands into the source, with the definition of all the AC_DEFINE performed so far. |
| Comment by Jian Yu [ 20/Apr/15 ] |
|
It seems we need add AC_LANG(C) before AC_LANG_CONFTEST to make sure using extension .c instead of other language. |
| Comment by Olaf Faaland [ 20/Apr/15 ] |
|
Hi Jian, Why would the extension change in the middle of a run of configure? It looks to me like the extension is fixed unless you use AC_LANG, AC_LANG_ {PUSH,POP,ASSERT}, or AC_REQUIRE_CPP, none of which appear in our code. Also, this did not occur with other patches or other even builds against other distros for this patch. So I'm unsure that the problem is not calling AC_LANG(C). -Olaf |
| Comment by Jian Yu [ 25/Apr/15 ] |
|
Hi Brian and Dmitry, |
| Comment by Dmitry Eremin (Inactive) [ 27/Apr/15 ] |
|
Most probably the issue was with local file system. conftest.c is generated on the fly by configure script. If it cannot write that there are no space on disk or issue with permissions. |
| Comment by Jian Yu [ 28/Apr/15 ] |
|
Thank you, Dmitry. So, it looks like a sporadic issue. Let's see if there will be more instances occur. |
| Comment by Jian Yu [ 26/Mar/16 ] |
|
Hi Olaf, Do you still hit the conftest.c: No such file or directory issue in this ticket? |
| Comment by Olaf Faaland [ 25/Sep/17 ] |
|
Dmitry's explanation makes sense to me, too. |
| Comment by Peter Jones [ 25/Sep/17 ] |
|
ok - thanks Olaf |