You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Andrey Turbanov (JIRA)" <ji...@apache.org> on 2019/02/12 20:51:00 UTC

[jira] [Updated] (MSHARED-803) CommandLineUtils should set names for Threads

     [ https://issues.apache.org/jira/browse/MSHARED-803?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andrey Turbanov updated MSHARED-803:
------------------------------------
    Description: 
CommandLineUtils now creates Threads with default names, like Thread-1
I noticed it in one of thread-dump for hang maven build
{noformat}
Thread-109" #309 daemon prio=5 os_prio=0 tid=0x00007f1ce0005000 nid=0x13b3c runnable [0x00007f1d3a3f6000]
   java.lang.Thread.State: RUNNABLE
  at java.io.FileInputStream.readBytes(Native Method)
  at java.io.FileInputStream.read(FileInputStream.java:255)
  at java.io.BufferedInputStream.read1(BufferedInputStream.java:284)
  at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
  - locked <0x00000000ebdca730> (a java.lang.UNIXProcess$ProcessPipeInputStream)
  at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284)
  at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)
  at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
  - locked <0x00000000ebdca718> (a java.io.InputStreamReader)
  at java.io.InputStreamReader.read(InputStreamReader.java:184)
  at java.io.BufferedReader.fill(BufferedReader.java:161)
  at java.io.BufferedReader.readLine(BufferedReader.java:324)
  - locked <0x00000000ebdca718> (a java.io.InputStreamReader)
  at java.io.BufferedReader.readLine(BufferedReader.java:389)
  at org.apache.maven.surefire.shade.org.apache.maven.shared.utils.cli.StreamPumper.run(StreamPumper.java:76)
{noformat}

It would be nice to set names for threads created by CommandLineUtils
{code}
        final StreamFeeder inputFeeder = systemIn != null ? new StreamFeeder( systemIn, p.getOutputStream() ) : null;
        inputFeeder.setName("StreamFeeder-systemIn-" + p);

        final StreamPumper outputPumper = new StreamPumper( p.getInputStream(), systemOut );
        inputFeeder.setName("StreamPumper-systemOut-" + p);

        final StreamPumper errorPumper = new StreamPumper( p.getErrorStream(), systemErr );
        errorPumper.setName("StreamPumper-systemErr-" + p);
{code}

  was:
CommandLineUtils now creates Threads with default names, like Thread-1
I noticed it in one of thread-dump for hang maven build
{noformat}
Thread-109" #309 daemon prio=5 os_prio=0 tid=0x00007f1ce0005000 nid=0x13b3c runnable [0x00007f1d3a3f6000]
   java.lang.Thread.State: RUNNABLE
  at java.io.FileInputStream.readBytes(Native Method)
  at java.io.FileInputStream.read(FileInputStream.java:255)
  at java.io.BufferedInputStream.read1(BufferedInputStream.java:284)
  at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
  - locked <0x00000000ebdca730> (a java.lang.UNIXProcess$ProcessPipeInputStream)
  at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284)
  at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)
  at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
  - locked <0x00000000ebdca718> (a java.io.InputStreamReader)
  at java.io.InputStreamReader.read(InputStreamReader.java:184)
  at java.io.BufferedReader.fill(BufferedReader.java:161)
  at java.io.BufferedReader.readLine(BufferedReader.java:324)
  - locked <0x00000000ebdca718> (a java.io.InputStreamReader)
  at java.io.BufferedReader.readLine(BufferedReader.java:389)
  at org.apache.maven.surefire.shade.org.apache.maven.shared.utils.cli.StreamPumper.run(StreamPumper.java:76)
{noformat}

It would be nice to set names for threads created by CommandLineUtils
{code}
        final StreamFeeder inputFeeder = systemIn != null ? new StreamFeeder( systemIn, p.getOutputStream() ) : null;
        inputFeeder.setName("StreamFeeder-systemIn-process-" + p);

        final StreamPumper outputPumper = new StreamPumper( p.getInputStream(), systemOut );
        inputFeeder.setName("StreamPumper-systemOut-process-" + p);

        final StreamPumper errorPumper = new StreamPumper( p.getErrorStream(), systemErr );
        errorPumper.setName("StreamPumper-systemOut-process-" + p);
{code}


> CommandLineUtils should set names for Threads
> ---------------------------------------------
>
>                 Key: MSHARED-803
>                 URL: https://issues.apache.org/jira/browse/MSHARED-803
>             Project: Maven Shared Components
>          Issue Type: Improvement
>          Components: maven-shared-utils
>            Reporter: Andrey Turbanov
>            Priority: Minor
>
> CommandLineUtils now creates Threads with default names, like Thread-1
> I noticed it in one of thread-dump for hang maven build
> {noformat}
> Thread-109" #309 daemon prio=5 os_prio=0 tid=0x00007f1ce0005000 nid=0x13b3c runnable [0x00007f1d3a3f6000]
>    java.lang.Thread.State: RUNNABLE
>   at java.io.FileInputStream.readBytes(Native Method)
>   at java.io.FileInputStream.read(FileInputStream.java:255)
>   at java.io.BufferedInputStream.read1(BufferedInputStream.java:284)
>   at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
>   - locked <0x00000000ebdca730> (a java.lang.UNIXProcess$ProcessPipeInputStream)
>   at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284)
>   at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)
>   at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
>   - locked <0x00000000ebdca718> (a java.io.InputStreamReader)
>   at java.io.InputStreamReader.read(InputStreamReader.java:184)
>   at java.io.BufferedReader.fill(BufferedReader.java:161)
>   at java.io.BufferedReader.readLine(BufferedReader.java:324)
>   - locked <0x00000000ebdca718> (a java.io.InputStreamReader)
>   at java.io.BufferedReader.readLine(BufferedReader.java:389)
>   at org.apache.maven.surefire.shade.org.apache.maven.shared.utils.cli.StreamPumper.run(StreamPumper.java:76)
> {noformat}
> It would be nice to set names for threads created by CommandLineUtils
> {code}
>         final StreamFeeder inputFeeder = systemIn != null ? new StreamFeeder( systemIn, p.getOutputStream() ) : null;
>         inputFeeder.setName("StreamFeeder-systemIn-" + p);
>         final StreamPumper outputPumper = new StreamPumper( p.getInputStream(), systemOut );
>         inputFeeder.setName("StreamPumper-systemOut-" + p);
>         final StreamPumper errorPumper = new StreamPumper( p.getErrorStream(), systemErr );
>         errorPumper.setName("StreamPumper-systemErr-" + p);
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)