Project

General

Profile

Actions

Bug #3781

closed

ksh93's builtin ln inconsistent

Added by Garrett D'Amore about 8 years ago. Updated 5 months ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Category:
cmd - userland programs
Start date:
2013-05-22
Due date:
% Done:

0%

Estimated time:
Difficulty:
Medium
Tags:
needs-triage
Gerrit CR:

Description

I found cases where -f is not honored properly with ksh. I can't figure out why.

Processing ksh-overrides: ./src/scripts/mk-dist2101: process_pkgs1128: process_pkg732: process_pkg_line685: pkg_directive_link409: ln: ../../sbin/sh: cannot link to /tmp/DEYOS.out/mnt/usr/bin/sh [File exists]

The source for this routine looks like this:

${X_LN} -sf "$1" "$2" || die "ln -sf $1 $2"

Notably, X_LN evaluates to "ln".

In my script, I was able to workaround this like this:

${X_LN} -sf "$1" "$2" 2> /dev/null || \\
${E}/usr/bin/ln -sf "$1" "$2" || die "ln -sf $1 $2"

This is key, because I don't want to always execute the ln -- this script does a lot of these and it takes too long if I have to shell out all the time.

This similar to 3779.

Actions #1

Updated by Irek Szczesniak about 8 years ago

Bug passed to upstream. May take a week or two to get feedback because the AST and UWIN projects are currently under lockdown to merge several project branches into the mainline.

Actions #2

Updated by Irek Szczesniak about 8 years ago

Glenn Fowler asked:
can you make a small test case (like the previous /tmp/x => /tmp/g) that
shows the problem

I'm asking because the first thing I tried worked [comment: Glenn is using ast-ksh.2013-05-03. Its very possible that either Glenn or Roland killed that bug since the last time ksh93 was updated in Illumos]

Actions #3

Updated by Garrett D'Amore about 8 years ago

I know how to isolate this. Individual small tests seem to pass just fine, this is in the context of a much larger script that issues thousands of these operations before falling over on this one. I'm stumped.

Actions #4

Updated by Garrett D'Amore about 8 years ago

One possible point, these ln -sf may point to a target that is missing, or may cross a filesystem boundary, if either of those help. Not sure. I'll try some tests later to isolate. But I'm running pretty old ksh right now... illumos last updated in 2009.

Actions #5

Updated by Andy Fiddaman 5 months ago

  • Status changed from New to Closed

I can't replicate this with the 2020 gate ksh (Version JM 93t+ 2010-03-05) or the current one (Version jM 93u+ 2012-08-01)
This was likely fixed in a version after the reporter's ksh from 2009.

If it is still a problem with the current gate ksh, please re-open. truss/dtrace output would be very useful in tracking this down if a simple test case can't be found.

Actions

Also available in: Atom PDF