From owner-freebsd-bugs@FreeBSD.ORG Mon Oct 16 10:40:18 2006 Return-Path: X-Original-To: freebsd-bugs@hub.freebsd.org Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0E82716A40F for ; Mon, 16 Oct 2006 10:40:18 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 77E5D43D62 for ; Mon, 16 Oct 2006 10:40:16 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id k9GAeGbM025512 for ; Mon, 16 Oct 2006 10:40:16 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id k9GAeGof025511; Mon, 16 Oct 2006 10:40:16 GMT (envelope-from gnats) Resent-Date: Mon, 16 Oct 2006 10:40:16 GMT Resent-Message-Id: <200610161040.k9GAeGof025511@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Yar Tikhiy Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6876516A412 for ; Mon, 16 Oct 2006 10:31:45 +0000 (UTC) (envelope-from yar@bsd.chem.msu.ru) Received: from bsd.chem.msu.ru (bsd.chem.msu.ru [195.208.208.23]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8CA3243D6D for ; Mon, 16 Oct 2006 10:31:44 +0000 (GMT) (envelope-from yar@bsd.chem.msu.ru) Received: from bsd.chem.msu.ru (localhost [127.0.0.1]) by bsd.chem.msu.ru (8.13.4/8.13.3) with ESMTP id k9GAVhK6009796 for ; Mon, 16 Oct 2006 14:31:43 +0400 (MSD) (envelope-from yar@bsd.chem.msu.ru) Received: (from yar@localhost) by bsd.chem.msu.ru (8.13.4/8.13.3/Submit) id k9GAVgNs009795; Mon, 16 Oct 2006 14:31:42 +0400 (MSD) (envelope-from yar) Message-Id: <200610161031.k9GAVgNs009795@bsd.chem.msu.ru> Date: Mon, 16 Oct 2006 14:31:42 +0400 (MSD) From: Yar Tikhiy To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: Subject: bin/104458: fts(3) can't handle very deep trees X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Oct 2006 10:40:18 -0000 >Number: 104458 >Category: bin >Synopsis: fts(3) can't handle very deep trees >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Mon Oct 16 10:40:15 GMT 2006 >Closed-Date: >Last-Modified: >Originator: Yar Tikhiy >Release: FreeBSD 7.0-CURRENT i386 >Organization: None >Environment: FreeBSD 7.0-CURRENT i386 >Description: Utilities using fts(3), find(1) and rm(1) being among them, fail to handle a directory tree so deep that a path in it is longer than ~49-50K. >How-To-Repeat: 1. Create a long chain of subdirectories using the script attached. Each subdir name will be "000...". The overall structure will be 000*/000*/000*/000*/... This is better done on a scratch mfs because the resulting chain will be hard to delete using stock tools. 2. Invoke rm or "find -delete" on it. E.g.: %csh xdir.csh 100 500 %rm -rf 0* rm: fts_read: File name too long %find 0* -delete find: fts_read: File name too long %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #!/bin/csh # # Yeah, I know that csh programming is harmful, # but /bin/sh cannot handle trees so deep. # See PR bin/104456. # set len=$1 # lenght of each name set dep=$2 # depth set name=`printf %0${len}d 0` while ($dep) mkdir $name && cd $name @ dep-- end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% >Fix: >Release-Note: >Audit-Trail: >Unformatted: