Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8320931

[REDO] dsymutil command leaves around temporary directories

    XMLWordPrintable

Details

    • b27
    • os_x

    Description

      The build process of the JDK, on macos, uses the dsymutil command for creating debuginfo files. Recently the Xcode toolchain for building JDK on macos was upgraded to Xcode 14.3.1 version as part of https://bugs.openjdk.org/browse/JDK-8317560. The version of dsymutil in this toolchain has a bug wherein it creates and leaves around temporary directories. Directories of the form:

      drwxr-x--- 2 foo bar 64B Nov 1 13:57 dsymutil-00000a
      drwxr-x--- 2 foo bar 64B Nov 6 22:59 dsymutil-000026
      drwxr-x--- 2 foo bar 64B Nov 6 19:41 dsymutil-000033
      drwxr-x--- 2 foo bar 64B Oct 23 11:43 dsymutil-00006f
      drwxr-x--- 2 foo bar 64B Oct 19 10:52 dsymutil-000099
      drwxr-x--- 2 foo bar 64B Oct 12 14:41 dsymutil-0000b1
      drwxr-x--- 2 foo bar 64B Oct 18 21:47 dsymutil-0000b6
      drwxr-x--- 2 foo bar 64B Nov 22 12:08 dsymutil-0000c3
      drwxr-x--- 2 foo bar 64B Nov 3 17:58 dsymutil-0000c7
      drwxr-x--- 2 foo bar 64B Oct 27 14:59 dsymutil-00011a
      drwxr-x--- 2 foo bar 64B Oct 12 10:16 dsymutil-000168
      drwxr-x--- 2 foo bar 64B Nov 7 02:09 dsymutil-000180

      can be found left around in the temporary directory of the host (for example, under /var/folders/hd/abcdefgh74s0sn4p_xy_m5pc0000gp/T/)

      When I build the JDK mainline locally on my local macos, I see that each run of the build creates and leaves 72 new dsymutil-* directories under the temporary directory.

      On CI systems, it has been noticed that on (macos) where the JDK is built often, these leftover directories have accumulated to a large number over a period of several days.

      This behaviour of dsymutil has been acknowledged as a bug in the llvm upstream project and has been fixed https://github.com/llvm/llvm-project/issues/61920. However, until that fix becomes available as part of the Xcode release, macos systems on which the JDK will be built will end up accumulating these directories.

      The linked github issue states there are a couple of workarounds until then - passing "--reproducer Off" option to the dsymutil command (https://github.com/llvm/llvm-project/issues/61920#issuecomment-1495353657) or setting "DSYMUTIL_REPRODUCER_PATH=/dev/null" (https://github.com/golang/go/issues/59026#issuecomment-1520487072).

      Attachments

        Issue Links

          Activity

            People

              jpai Jaikiran Pai
              erikj Erik Joelsson
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: