From: Steve Ackman on
On my 7.2-RELEASE-p7 i386, I somehow ended up with
a csup failure that looks like,
Updater failed: /usr/ports/net/rubygem-rightslicehost/#cvs.csup-33199.1:
Cannot open: Operation not permitted

So, look at the directory permissions/flags:
# ls -lo /usr/ports/net | grep rubygem-ri

drwxr-xr-x 2 root wheel - 512 Jun 2 17:20 rubygem-rightaws
drwxr-xr-x 2 root wheel - 512 Jun 2 17:20 rubygem-rightflexiscale
drwxr-xr-x 2 root wheel - 512 Jun 2 17:20 rubygem-rightgogrid
drwxr-xr-x 2 root wheel - 512 Jun 2 17:20 rubygem-righthttpconnection
drwxr-xr-x 2 root wheel snapshot 512 Apr 24 2009 rubygem-rightslicehost

Note the snapshot flag on the last directory.

'chflags -v nosnapshot' just answers with
chflags: /usr/ports/net/rubygem-rightslicehost: Operation not permitted
(It was worth a shot, right?)

Since it seems to act like an immutable flag, none of
the obvious tools work on it either. How do you remove
such a "flag"... or the directory, so csup can rewrite
it normally?


From: Steve Ackman on
In <i0n4gr$sof$1(a)news.eternal-september.org>, on Sat, 03 Jul 2010 11:47:55
+0100, Chronos, me3(a)privacy.net wrote:

> Have you tried setting the flags directly to octal 0 instead of using
> keywords? This usually clears everything.

# chflags 0 rubygem-rightslicehost
chflags: rubygem-rightslicehost: Operation not permitted

Yes, I actually had tried that earlier; should have
mentioned it.

This happened about six months ago too. csup gave
a similar failure message due to flags appearing on
their own (don't recall which flags exactly). I'd
suspect csup itself, but haven't seen anyone else with
similar reports.

Now that I think to do it:

[root(a)wizard /usr/ports]# for i in *; do ls -lo $i | grep "wheel s"; done

drwxr-xr-x 2 root wheel sappnd,arch,schg,sunlnk 512 Apr 18 2008 p5-Class-DBI-DATA-Schema

drwxr-xr-x 2 root wheel sappnd,arch,schg,sunlnk,uunlnk 512 Jun 2 2009 linux-f10-png10

drwxr-xr-x 2 root wheel sappnd,arch,schg,uunlnk 512 Aug 22 2009 pear-Net_DIME

drwxr-xr-x 2 root wheel snapshot 512 Apr 24 2009 rubygem-rightslicehost

Looks like a few other oddball flags have made their
way into my ports tree.
From: Steve Ackman on
In <i0nshn$tkd$1(a)news.eternal-september.org>, on Sat, 03 Jul 2010 18:37:57
+0100, Chronos, me3(a)privacy.net wrote:

> Just one more thing to try before I'm out of ideas: Check your
> securelevel.
>
> # sysctl kern.securelevel

kern.securelevel: -1

> Anything above 0 will stop you from changing certain flags. You can
> also drop to single user mode and try from there. You should still be
> able to clear flags regardless of what set them.

Nope. Single user makes no difference.

> I must admit I haven't seen this or anything like it on any of my
> boxen and it looks like one of those annoying issues that will drive
> you around the bend in fairly short order.

Very short order.

> csup can and does modify
> flags (see fattr_bsd.h and fattr.c in contrib/csup) but I've never
> seen it do it arbitrarily. Which cvsup mirror do you use and is it the
> same one as six months ago?

cvsup10.us.FreeBSD.org is the same one I've been
using for... at least since version 5.x. Call it
6 years as near as I can recall.

> If it is csup causing this, something must
> be making it set those flags and the first thing I'd suspect is the
> mirror as that's where csup gets its file attributes from in the first
> place.

Just changed it, but of course it still only gets
as far as rubygem-rightslicehost before failing.
I've never looked into portsnap before, but this
sure seems to be the kick in the pants that'll do it.
From: Norman on
On Jul 6, 12:28 am, Steve Ackman <st...(a)SNIP-THIS.twoloonscoffee.com>
wrote:
> In <i0nshn$tk...(a)news.eternal-september.org>, on Sat, 03 Jul 2010 18:37:57
>
> +0100, Chronos, m...(a)privacy.net wrote:
> > Just one more thing to try before I'm out of ideas: Check your
> > securelevel.
>
> > # sysctl kern.securelevel
>
> kern.securelevel: -1
>
> > Anything above 0 will stop you from changing certain flags. You can
> > also drop to single user mode and try from there. You should still be
> > able to clear flags regardless of what set them.
>
>   Nope.  Single user makes no difference.
>
> > I must admit I haven't seen this or anything like it on any of my
> > boxen and it looks like one of those annoying issues that will drive
> > you around the bend in fairly short order.
>
>   Very short order.
>
> > csup can and does modify
> > flags (see fattr_bsd.h and fattr.c in contrib/csup) but I've never
> > seen it do it arbitrarily. Which cvsup mirror do you use and is it the
> > same one as six months ago?
>
>   cvsup10.us.FreeBSD.org is the same one I've been
> using for... at least since version 5.x.  Call it
> 6 years as near as I can recall.
>
> > If it is csup causing this, something must
> > be making it set those flags and the first thing I'd suspect is the
> > mirror as that's where csup gets its file attributes from in the first
> > place.
>
>   Just changed it, but of course it still only gets
> as far as rubygem-rightslicehost before failing.
>   I've never looked into portsnap before, but this
> sure seems to be the kick in the pants that'll do it.

portsnap is very nice, if you can stand the horrors of
being a couple of hours behind the front edge of the
ports tree (it also saves you having to rebuild
/usr/ports/INDEX*).

The corruption you are experiencing is quite odd,
I would have suspected flaky hardware: either a
NIC or a controller silently tickling bits; but that
it only seems to be affecting flags, which oughtn't
be the case if it was hardware.