0

When I try to promote latest JDK into our source control (AccuRev), I get the following error:

jdk/bin/ControlPanel': Element is a symbolic-link on disk, should be a file or directory.

This is NOT the only symbolic-link in the latest 1.7.0_51 JDK. I didn't have this issue in 1.7.0_09.

Above symbolic-link points to a file under the same directory. I am using Linux.

Is there any risk with those symbolic-link for product (jre folder has the same symbolic-link and reports the same error)?

EDIT:

here is another one:

jdk/jre/lib/amd64/server/libjsig.so': Element is a symbolic-link on disk, should be a file or directory.

EDIT2:

[XXXXXX server]$ accurev stat -fix libjsig.so

<?xml version="1.0" encoding="utf-8"?>
<AcResponse
    Command="stat"
    Directory="/XXXXXX/3rdparty/java/linux/64bit/jdk/jre/lib/amd64/server"
    TaskId="450242">
  <element
      location="/./XXXXX/3rdparty/java/linux/64bit/jdk/jre/lib/amd64/server/libjsig.so"
      dir="no"
      executable="yes"
      id="12936"
      elemType="binary"
      size="13"
      modTime="1394570292"
      hierType="parallel"
      Virtual="1/1"
      namedVersion="XXXXX/1"
      Real="269/1"
      status="(modified)"/>
</AcResponse>

[XXXXX server]$ accurev

AccuRev 5.4.1 (2012/02/28)
Copyright (c) 1995-2012 AccuRev Inc. All rights reserved
type 'accurev help' for help.

[XXXXX server]$ ls -l libjsig.so

lrwxrwxrwx 1 XXX XXX 13 Mar 11 16:38 libjsig.so -> ../libjsig.so
5YrsLaterDBA
  • 33,370
  • 43
  • 136
  • 210
  • 1
    Why do you keep binary distributions in your source control? – Thorbjørn Ravn Andersen Mar 12 '14 at 16:00
  • 1
    shared with other engineers and everybody use the same dev environment. and different projects use different versions, we have very old project, still in JDK 1.4. – 5YrsLaterDBA Mar 12 '14 at 16:06
  • `I didn't have this issue in 1.7.0_09` - at least for `1.7.0_05`, these were also symbolic links. Are you sure that you have verified with a vanilla `1.7.0_09`? – Andreas Fester Mar 12 '14 at 16:12
  • I checked with my old dev setting and installed product. They are 1.7.0_09 and they have the same files. My co-worker just started to help me a week ago with that setting with no problem. I was trying to update the JDK this morning and found above issue. – 5YrsLaterDBA Mar 12 '14 at 17:00

1 Answers1

0

Are these files currently external in your workspace and you are doing a promote from your workspace?

If they are external, I might suggest you run the command 'accurev add -x -s" from within this workspace and then promote those files. The -s switch forces all symbolic link objects (at the OS level) whose targets are within the current workspace to be converted to symbolic-link elements (at the AccuRev level).

jstanley
  • 2,087
  • 15
  • 22
  • They are showing as modified but cannot be "keep" and "promote". – 5YrsLaterDBA Mar 12 '14 at 18:21
  • What is the output from the following command? "accurev keep -c "some comment" -m" – jstanley Mar 12 '14 at 19:08
  • Cannot keep '/XXXXXXXX/3rdparty/java/linux/64bit/jdk/jre/lib/amd64/server/libjsig.so': Element is a symbolic-link on disk, should be a file or directory. – 5YrsLaterDBA Mar 13 '14 at 20:13
  • Can you also include the following output? Please run these commands from within the directory /XXXXXXXX/3rdparty/java/linux/64bit/jdk/jre/lib/amd64/server. "accurev stat -fix libjsig.so", "accurev" and "ls -l libjsig.so" – jstanley Mar 13 '14 at 22:13
  • please have a look at my original post at EDIT2. Thanks – 5YrsLaterDBA Mar 17 '14 at 13:52
  • What is interesting is this file is a symlink on disk but AccuRev is saying the element type is binary...elemType="binary"...I would have expected to see elemType="slink" or elemType="elink". I would try performing the following commands: "accurev mv libjsig.so libjsig.so.badLink", "accurev ln -s ../libjsig.so libjsig.so"....This should create an accurev symbolic link, once you have confirmed this, you can then defunct the bad link, "accurev defunct -c "remove bad link" libjsig.so" – jstanley Mar 17 '14 at 17:43