<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugzilla.yoctoproject.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugzilla.yoctoproject.org/"
          
          maintainer="it-coreprojects-helpdesk@linuxfoundation.org"
>

    <bug>
          <bug_id>7338</bug_id>
          
          <creation_ts>2015-02-19 18:33:35 +0000</creation_ts>
          <short_desc>coreutils-native fails to complete in rm_work because of recursive directory structure</short_desc>
          <delta_ts>2015-11-16 09:04:22 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>7</classification_id>
          <classification>Build System, Metadata &amp; Runtime</classification>
          <product>OE-Core</product>
          <component>core</component>
          <version>1.5</version>
          <rep_platform>x86</rep_platform>
          <op_sys>Multiple</op_sys>
          <bug_status>VERIFIED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>Medium</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>1.9</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Matt Broadstone">mbroadst</reporter>
          <assigned_to name="Matt Broadstone">mbroadst</assigned_to>
          <cc>bogdanx.a.voiculescu</cc>
    
    <cc>daniel.alexandrux.istrate</cc>
    
    <cc>douglasr2011</cc>
    
    <cc>meta.mr.watcher</cc>
    
    <cc>meta.watcher</cc>
    
    <cc>sgw</cc>
          
          <qa_contact name="Bogdan Alexandru Voiculescu">bogdanx.a.voiculescu</qa_contact>
          <cf_os>---</cf_os>
          <cf_regression_type>---</cf_regression_type>
          
          <cf_docchange>No (bug/feature does not impact docs)</cf_docchange>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>48944</commentid>
    <comment_count>0</comment_count>
    <who name="Matt Broadstone">mbroadst</who>
    <bug_when>2015-02-19 18:33:35 +0000</bug_when>
    <thetext>coreutils-native&apos;s configure script contains a check for whether getcwd handles long file names properly, which creates something like 850 recursive folders with the name &quot;condir3&quot;. This compiles, and works as expected, however on the rm_work step in bitbake we receive the following failure:

NOTE: recipe coreutils-native-8.21-r0: task do_rm_work: Started
ERROR: Function failed: do_rm_work (log file is located at /mnt/bitbake/build/detos/tmp-eglibc/work/x86_64-linux/coreutils-native/8.21-r0/temp/log.do_rm_work.14228)
ERROR: Logfile of failure stored in: /mnt/bitbake/build/detos/tmp-eglibc/work/x86_64-linux/coreutils-native/8.21-r0/temp/log.do_rm_work.14228
Log data follows:
| DEBUG: Executing shell function do_rm_work
| rm: cannot remove &apos;coreutils-8.21/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3&apos;: File name too long
| WARNING: /mnt/bitbake/build/detos/tmp-eglibc/work/x86_64-linux/coreutils-native/8.21-r0/temp/run.do_rm_work.14228:1 exit 1 from
|   rm -rf $dir
| ERROR: Function failed: do_rm_work (log file is located at /mnt/bitbake/build/detos/tmp-eglibc/work/x86_64-linux/coreutils-native/8.21-r0/temp/log.do_rm_work.14228)
NOTE: recipe coreutils-native-8.21-r0: task do_rm_work: Failed
ERROR: Task 8813 (virtual:native:/mnt/bitbake/build/detos/sources/openembedded-core/meta/recipes-core/coreutils/coreutils_8.21.bb, do_rm_work) failed with exit code &apos;1&apos;


A possible solution is to exclude coreutils-native from running rm_work, but that leaves cruft behind.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>48945</commentid>
    <comment_count>1</comment_count>
    <who name="Matt Broadstone">mbroadst</who>
    <bug_when>2015-02-19 18:37:21 +0000</bug_when>
    <thetext>Other relevant information:

  * This is a build that is being run inside a ubuntu 14.04 docker container. The behavior does not affect a similar container running ubuntu 13.03 inside.
  * We are using dora</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>48969</commentid>
    <comment_count>2</comment_count>
    <who name="Saul Wold">sgw</who>
    <bug_when>2015-02-20 22:11:22 +0000</bug_when>
    <thetext>Just to confirm, you do not see this issue with Ubuntu 13.03 container?  Have 
you tried a newer release (16.2 or 1.7.1) or the git master.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>48995</commentid>
    <comment_count>3</comment_count>
    <who name="Matt Broadstone">mbroadst</who>
    <bug_when>2015-02-23 18:47:41 +0000</bug_when>
    <thetext>This is a bit of a tricky situation, it seems totally unrelated to the base distro at this point (Ubuntu 14.04 vs 13.03), but rather because the CI bot running the job was running bitbake inside a docker container running inside another docker container. I&apos;m not sure how likely it is that you will run into this with most users (probably not likely at all), but it does seem that rm_work is doing a &quot;rm -rf $dir&quot; and $dir is expanding to the entire path of that tree when it should just do e.g. &quot;rm -rf confdir3&quot; with no subfolders.

Having said that, we were able to overcome the issue by simply disabling the getcwd-path-max.m4 configure check in coreutils, for anyone else that happens to find themselves in this cave :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>49477</commentid>
    <comment_count>4</comment_count>
    <who name="Stephen K Jolley">sjolley.yp.pm</who>
    <bug_when>2015-03-16 19:30:13 +0000</bug_when>
    <thetext>The information appears to have been supplied.   If this still is a needinfo status, please restate the question.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>49844</commentid>
    <comment_count>5</comment_count>
    <who name="Chen Qi">Qi.Chen</who>
    <bug_when>2015-03-27 07:44:01 +0000</bug_when>
    <thetext>I cannot reproduce this problem.
Is there any way to reproduce it on a sanity tested host of Yocto?

Change the status to NEEDINFO util further information is provided.

Regards,
Chen Qi</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>50432</commentid>
    <comment_count>6</comment_count>
    <who name="Matt Broadstone">mbroadst</who>
    <bug_when>2015-04-20 21:13:24 +0000</bug_when>
    <thetext>I don&apos;t have time to continue to dig into this, changing to OBSOLETE for now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51246</commentid>
    <comment_count>7</comment_count>
    <who name="Douglas Royds">douglasr2011</who>
    <bug_when>2015-05-25 21:24:03 +0000</bug_when>
    <thetext>The problem is that inside a Docker container, it is possible to create deeply nested directory structures that can&apos;t easily be deleted. I have opened an issue on the Docker project (https://github.com/docker/docker/issues/13451) including a few proposed work-arounds.

The coreutils configuration runs code from getcwd-path-max.m4 (from the gnulib project), which includes C code to probe the limits of PATH_MAX for getcwd(). It does this by generating a directory structure that runs out to PATH_MAX, and testing that getcwd() remains well-behaved. At the end, it politely attempts to remove this directory structure, but silently fails. This does not have any immediate impact on the configuration of coreutils, though a second attempt to ./configure does have a different result (as mkdir confdir3/ fails). It leaves the user unable to delete the coreutils directory after building, as observed by Matt.

We could potentially add the following work-around into the coreutils recipe, but I don&apos;t know that it&apos;s worth it:

do_configure_append() {
   # When running in a Docker container, getcwd-path-max.m4 leaves behind
   # a deeply-nested structure of confdir3/ directories that can&apos;t be deleted using rm -fr.
   # See https://github.com/docker/docker/issues/13451
   mv confdir3/confdir3/ fred || true
   rm -fr fred/ confdir3/
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>56482</commentid>
    <comment_count>8</comment_count>
    <who name="Bogdan Alexandru Voiculescu">bogdanx.a.voiculescu</who>
    <bug_when>2015-11-16 09:04:22 +0000</bug_when>
    <thetext>This will be fixed on docker side.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>