Perl5-IDEA icon indicating copy to clipboard operation
Perl5-IDEA copied to clipboard

Docker: Synchronization Problems because /usr/share/perl5/vendor_perl/ExtUtils/xsubpp

Open targzeta opened this issue 3 years ago • 3 comments

Hi, I have this problem with docker (for example clicking on Tools -> Perl -> Refresh Interpreter Information):

15:55	Synchronization Problems: 5 of 7 directories synchronized, 2 problems occurs. See IDE log for details.

investigating, that problem seems to be related to the presence of the file /usr/share/perl5/vendor_perl/ExtUtils/xsubpp. Deleting this file (RUN rm /usr/share/perl5/vendor_perl/ExtUtils/xsubpp) solves the problem!

Best regards, Emanuele

targzeta avatar Feb 23 '22 15:02 targzeta

Docker images sometimes has kinda tricky setups looking like optimizations of some kind. Previously seen this in the centos images. And had problems syncing files. Would be nice to see the Dockerfile to investigate an issue and look for workarounds and/or fixes. Removing file may help, but not the best solution in my opinion.

hurricup avatar Feb 23 '22 16:02 hurricup

Yes, deleting the file is not a good solution! The simplest Dockerfile you can use is:

FROM rockylinux:8

RUN dnf install -y  \
      perl \
    && dnf clean all

Thank you in advance, Emanuele

targzeta avatar Feb 24 '22 09:02 targzeta

This is what PyCharm print:

2022-05-19 23:51:43,690 [  73357]   WARN - lang.perl.idea.sdk.PerlSdkType - Error copying /usr/share/perl5 to /home/user/.cache/JetBrains/PyCharm2021.3/perl5/remote/docker_image_latest//usr/share/perl5 for docker[image:latest]
java.io.IOException: Error copying /usr/share/perl5 to /home/user/.cache/JetBrains/PyCharm2021.3/perl5/remote/docker_image_latest//usr/share/perl5 for docker[image:latest]
        at com.perl5.lang.perl.idea.sdk.host.PerlHostFileTransfer.syncFile(PerlHostFileTransfer.java:78)
        at com.perl5.lang.perl.idea.sdk.host.PerlHostFileTransfer.syncFile(PerlHostFileTransfer.java:54)
        at com.perl5.lang.perl.idea.sdk.PerlSdkType.syncAndCollectException(PerlSdkType.java:183)
        at com.perl5.lang.perl.idea.sdk.PerlSdkType.lambda$setupSdkPaths$0(PerlSdkType.java:95)
        at com.perl5.lang.perl.idea.sdk.PerlSdkType.setupSdkPaths(PerlSdkType.java:98)
        at com.perl5.lang.perl.util.PerlRunUtil$4.run(PerlRunUtil.java:600)
        at com.intellij.openapi.progress.impl.CoreProgressManager.startTask(CoreProgressManager.java:436)
        at com.intellij.openapi.progress.impl.ProgressManagerImpl.startTask(ProgressManagerImpl.java:120)
        at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcessWithProgressAsync$5(CoreProgressManager.java:496)
        at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$3(ProgressRunner.java:244)
        at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:188)
        at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$12(CoreProgressManager.java:624)
        at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:698)
        at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:646)
        at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:623)
        at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:66)
        at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:175)
        at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$4(ProgressRunner.java:244)
        at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668)
        at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.io.IOException: com.perl5.lang.perl.idea.sdk.host.PerlExecutionException: Non-zero exit code: 1; stderr: invalid symlink "/home/user/.cache/JetBrains/PyCharm2021.3/perl5/remote/docker_image_latest/usr/share/perl5/ExtUtils/xsubpp" -> "../../../bin/xsubpp"
: stdout:
        at com.perl5.lang.perl.idea.sdk.host.docker.PerlDockerFileTransfer.doSyncPath(PerlDockerFileTransfer.java:66)
        at com.perl5.lang.perl.idea.sdk.host.PerlHostFileTransfer.syncFile(PerlHostFileTransfer.java:75)
        ... 25 more
Caused by: com.perl5.lang.perl.idea.sdk.host.PerlExecutionException: Non-zero exit code: 1; stderr: invalid symlink "/home/user/.cache/JetBrains/PyCharm2021.3/perl5/remote/docker_image_latest/usr/share/perl5/ExtUtils/xsubpp" -> "../../../bin/xsubpp"
: stdout:
        at com.perl5.lang.perl.idea.sdk.host.docker.PerlDockerAdapter.checkOutput(PerlDockerAdapter.java:138)
        at com.perl5.lang.perl.idea.sdk.host.docker.PerlDockerAdapter.runCommand(PerlDockerAdapter.java:183)
        at com.perl5.lang.perl.idea.sdk.host.docker.PerlDockerAdapter.copyRemote(PerlDockerAdapter.java:115)
        at com.perl5.lang.perl.idea.sdk.host.docker.PerlDockerFileTransfer.doSyncPath(PerlDockerFileTransfer.java:63)
        ... 26 more

Best regards, Emanuele

targzeta avatar May 19 '22 22:05 targzeta