Not working on mobile

The component works perfectly on desktop browsers but when i run my website on an Iphone with the last version of safari, or with an android running chrome the sounds are not being played, I am using React V16, and the version of this library is the: 0.6.4
this is the component i have for playing audio:
class Speaker extends Component{    render(){           var play = null;          if(this.props.play)               play = (<ReactAudioPlayer                       src={this.props.src}                       autoPlay                          style={{display:"none"}}                       onEnded={this.props.onEnded}                       />)          return(              <span>                   {play}              </span>          )      }    }

Are you aware of the autoplay restrictions on mobile?  For example for Chrome: https://developers.google.com/web/updates/2017/09/autoplay-policy-changes
If you set controls, does it work when you hit the play button?

yeah, thanks! the component works perfectly, the problem was what you just mentioned!

Cool glad that was it! I'll close this.

Short question, haven't been able to test it yet; does the audio keep playing in the background when a user returns to the home screen on iPhone/Android? I'll try this out soon, i've read mixed opinions, just not sure if it's possible on e.g. iOS11.

@woudsma Yes it does!  It also continues to play when the phone is locked on both Android and iOS, and can show controls and info on the lock screen.  It's just how those browsers handle the native <audio> tag.
I used this to write a podcast player awhile back and I think it was well suited for that kind of use case.

Awesome, will give this a try soon!


flutter run/drive take too long to launch apps on iOS simulator

Output:
~/flutter/awesomesauce $ flutter -d iPhone run
Running lib/main.dart on iPhone 6s (Flutter)...
Observatory listening on http://<IP_ADDRESS>:63403
~/flutter/awesomesauce $ flutter -d iPhone drive
Starting application: lib/main.dart
An error was encountered processing the command (domain=NSPOSIXErrorDomain, code=22):
Failed to install the requested application
The bundle identifier of the application could not be determined.
Ensure that the application's Info.plist contains a value for CFBundleIdentifier.

Note that flutter run does indeed run on the simulator.

I think what's actually happening is that sometimes the iOS build takes up to 20 seconds before the app is launched. If you wait long enough the app will launch.

@yjbanov did you mean another bug?

This is the correct bug. When we were looking at this issue with @sethladd we didn't wait long enough for the app to start. Also, this is not just a flutter drive issue, flutter run is also affected. This is what's going on:
34213 ms • /usr/bin/xcrun simctl launch 827E2B4E-81AE-47C2-BCBE-BD596AB55761
com.yourcompany.sampleApp --flx=/Users/yjbanov/code/tmp/sample_app/build/app.flx
--dart-main=/Users/yjbanov/code/tmp/sample_app/lib/main.dart
--packages=/Users/yjbanov/code/tmp/sample_app/.packages --enable-checked-mode
--start-paused --observatory-port=8183

34 seconds to launch the app on the iOS Simulator.
Another observation is that it is not happening with the Stocks app, only with the app created using flutter create.

Oh, also, the existence of the build directory has no effect.

I wonder if we can show a spinner here?

Is this still an issue? I haven't heard people complain about it...

We have another issue which asks for a spinner here, displaying while we
are going to into the simulator for the first time. That might be
sufficient for now.
On Sat, Jan 28, 2017, 1:27 AM Ian Hickson<EMAIL_ADDRESS>wrote:

Is this still an issue? I haven't heard people complain about it...
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/issues/3172#issuecomment-275837608,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAVZ_g7OEycYdC9JH3MsNwyQx_uRcHuks5rWwoHgaJpZM4ICQmD
.

See also https://github.com/flutter/flutter/issues/8937

Closing since it's not clear what is actionable here.


Caching image with token (Amazon S3 bucket image)

I am trying to cache an image from Amazon S3 bucket, but this url has lots of variables. So I want to cache the image for only first part of url. Is it possible?
for an example:
https://mybucket-dev.s3.ap-northeast-1.amazonaws.com/public/user/805327c1-8a64-4f94-a044-a2f158b2d677/feed/feed_20191117011738039.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIA2DSNUBOKIKRUQDRV%2F20191116%2Fap-northeast-1%2Fs3%2Faws4_request&X-Amz-Date=20191116T174021Z&X-Amz-Expires=900&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEFIa
the first part of url always same:
https://mybucket-dev.s3.ap-northeast-1.amazonaws.com/public/user/805327c1-8a64-4f94-a044-a2f158b2d677/feed/feed_20191117011738039.jpg
Can I use this part as a cache key?
Thank you.

i think you can use headers in source. haven't quite made it work yet, but you'd need to split your presigned URL and decode the reserved characters, e.g. %2F with decodeURIComponent.

I did but it doesn't work. Is there any example for it?

not that i could find, unfortunately. what does your errors say?

@junkdeck There is no error. Just it doesn't cache it. :/

how did you fetch the image using the header key? been trying at it without any luck for hours

Any updates here?

I have the same problem. Signed urls aren't cached. Is there any update on this?

Take a look here:
https://github.com/aws-amplify/amplify-js/issues/5296#issuecomment-609059682
You can supply the Authorization header instead, and the url will remain static.

Take a look here:
aws-amplify/amplify-js#5296 (comment)
You can supply the Authorization header instead, and the url will remain static.

Hi Andrei,
I checked your getS3SignedHeaders function but couldn't get how you create the signed headers. I realize you use aws-amplify and some credentials in the client side.
Our client side application just has a url like this:
https://your-app.s3.eu-central-1.amazonaws.com/images/7_profileImage_1585830930973.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA5K5BXRHZTYRI6JJE%2F20200406%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20200406T132314Z&X-Amz-Expires=86400&X-Amz-Signature=b1c080c8b720532db082ded13699c26bfc4b2540ddebaaa668488d9cdb0d1bec&X-Amz-SignedHeaders=host&response-content-type=application%2Foctet-stream
Is it possible to generate signed headers using this url?

@boraikizoglu How are you generating the URL? As you can see it has an expiration date tied to it. Storing URLs signed in a database is not recommended.
The link I added shows a solution that takes advantage of Amazon Cognito based temporary credentials -> the signature is safe to be generated in the React Native app because the accesskey/secretkey/sessiontoken are tied to the currently logged in Cognito user. So, they're temporary and tied to the current user. AWS Amplify makes this easy.
If you cannot generate signatures client side one possible workaround is to set up an API function on your server which returns the set of signed headers based on server side AWS credentials, and then use those in your app to do the request.

@andreialecu, we don't store any signed URL in the database. They are generated in the server side each time user requests an image.

I finally managed to solve this issue.
Instead of sending pre-signed urls, like @andreialecu mentioned, send Authorization headers which are created by your server.
I wrote a function which uses aws4 package to create signed headers. Hope this helps somebody.
import aws4 from 'aws4';

export function getURIWithSignedHeaders(imagePath: string): any {
    if(!imagePath){
        return null;
    }
    const expires: number = 86400; // 24 hours
    const host = `${process.env.YOUR_S3_BUCKET_NAME}.s3.${process.env.YOUR_S3_REGION}.amazonaws.com`;
    // imagePath should be something like images/3_profileImage.jpg
    const path = `/${imagePath}?X-Amz-Expires=${expires}`;
    const opts = {
        host,
        path,
        headers: {
            'Content-Type': 'image/jpeg'
        }
    };
    const { headers } = aws4.sign(opts, {accessKeyId: process.env.YORU_ACCESS_KEY_ID, secretAccessKey: process.env.YOUR_SECRET_ACCESS_KEY});
    return {
        uri: `https://${host}${path}`,
        headers: {
            Authorization: headers['Authorization'],
            'X-Amz-Content-Sha256': headers['X-Amz-Content-Sha256'],
            'X-Amz-Date': headers['X-Amz-Date'],
            'Content-Type': 'image/jpeg',
        }
    }
}

Hi @boraikizoglu, is it working properly?

Hi @boraikizoglu, is it working properly?

@randalb1991 it worked fine for me.

@randalb1991 it worked fine for me.

Hi, I tried the suggested solutions but nothing worked to me. Does anyone have another solution that worked?

Using the Authorization headers works with S3 signed URLs but I am using CloudFront which does not support inclusion of the signature info inside of Authorization headers. If you're using S3 directly (not through CloudFront) see here:
https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html

The solution from Amplify issues without external libraries
import { Auth } from '@aws-amplify/auth';
import { Signer } from '@aws-amplify/core';
import { Storage } from '@aws-amplify/storage';

import aws_exports from '@/aws-exports';

type S3Image = {
  uri: string;
  headers: Record<string, string>;
};

export const getS3Image = async (key: string): Promise<S3Image> => {
  const uri = await Storage.get(key);
  const url = uri.split('?')[0];

  const credentials = Auth.essentialCredentials(await Auth.currentCredentials());

  const { headers } = Signer.sign(
    {
      url,
      method: 'GET',
      headers: {
        // this is the SHA256 of an empty string ("")
        'x-amz-content-sha256': 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855',
      },
    },
    {
      access_key: credentials.accessKeyId,
      secret_key: credentials.secretAccessKey,
      session_token: credentials.sessionToken,
    },
    { region: aws_exports.aws_user_files_s3_bucket_region, service: 's3' },
  );

  return { uri: url, headers };
};

How to do this with @aws-sdk/signature-v4 ?

@roots-ai You can use whatever SDK you want to generate the URL signature on your server. You can make caching work once delivering the signed URL to your client by pulling the signature out of the query/URL parameters and including it in the Authorization header like this:
https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html
If you're using CloudFront signed URLs (instead of S3 directly) you can include the signature in a Cookie header instead:
https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-signed-cookies.html

This repo caters for the above issue but still needs work:
https://github.com/georstat/react-native-image-cache


Add LLM attribute to LangChain

Add llm:True attribute to LangChain transactions and instrument NeuralDBVectorStore

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

:exclamation: No coverage uploaded for pull request base (develop-ai-limited-preview-3@6710d27). Click here to learn what that means.

:exclamation: Current head b337eb3 differs from pull request most recent head d01e3d8. Consider uploading reports for the commit d01e3d8 to get more accurate results

Additional details and impacted files
@@                       Coverage Diff                       @@
##             develop-ai-limited-preview-3    #1057   +/-   ##
===============================================================
  Coverage                                ?   81.80%
===============================================================
  Files                                   ?      192
  Lines                                   ?    20745
  Branches                                ?     3622
===============================================================
  Hits                                    ?    16970
  Misses                                  ?     2738
  Partials                                ?     1037

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Added CODE_OF_CONDUCT.md

Fixes #4

@suhanipaliwal  Thanks for your contribution! Keep up the awesome work 😊🎉


3.2 beta release branching

3.2 beta branch info

Repo
Branch
Commit
g3 CL

flutter/flutter
flutter-3.1-candidate.9
https://github.com/flutter/flutter/commit/003f2b69d2beea5dfcf1d88f3cb9ad7690727162
cl/453776015

flutter/engine
flutter-3.1-candidate.9
https://github.com/flutter/engine/commit/76a15678416827efbe9af46c2183cb684969670a
N/A

dart-lang/sdk
2.18.0-165.0.dev
https://github.com/dart-lang/sdk/commit/16b0538e6ccfe20aad27a4e6a986281d2bbf4e11
cl/453610685

google/skia
as needed
https://github.com/google/skia/commit/02031e67d014c6170839f95f217d408225a0c40a
N/A

@itsjustkevin @godofredoc @athomas

Dart 2.18.0-165.1.beta: 7d6b67545d2296c2492c2d41ac606fbdfaf4e835

@itsjustkevin it looks like this was not released with the correct version number. It was released with version number 3.1.0-9.0.pre, when it should have been released with version number 3.2.

@itsjustkevin can we manually tag this again to be at 3.2?

Closing as obsolete.


Homebrew formula fails to build and install from head

I'm unable to get the homebrew formula to build from --head. Homebrew fails when I've tried.
Since there are no bottles available for the Jenkinsfile-runner, building the bottle myself from the --head is the only way I can install it. Unfortunately, there is something with the formula that is preventing the build from completing. Poking around with the logs and the formula, my guess is that it the formula doesn't correctly set my toolchain or some binary is not available. However, I'm not a Java developer and it's not a very useful guess. You probably know better what's going wrong.

[WARNING] The artifact xml-apis:xml-apis:jar:2.0.2 has been relocated to xml-apis:xml-apis:jar:1.0.b2
[WARNING]
[WARNING] Some problems were encountered while building the effective model for io.jenkins.jenkinsfile-runner:packaging-parent-pom:pom:1.0-beta-31-SNAPSHOT
[WARNING] 'profiles.profile[jfr-package-app].activation.file.missing' Failed to interpolate file location ${project.build.directory}/../parent-pom-marker.txt for profile jfr-package-app: ${project.*} expressions are not supported during profile activation @ io.jenkins.jenkinsfile-runner:packaging-parent-pom:${revision}${changelist}, /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/packaging-parent-pom/pom.xml
[WARNING] 'profiles.profile[jfr-package-assembly].activation.file.missing' Failed to interpolate file location ${project.build.directory}/../parent-pom-marker.txt for profile jfr-package-assembly: ${project.*} expressions are not supported during profile activation @ io.jenkins.jenkinsfile-runner:packaging-parent-pom:${revision}${changelist}, /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/packaging-parent-pom/pom.xml
[WARNING] 'profiles.profile[jfr-package-dependencies].activation.file.missing' Failed to interpolate file location ${project.build.directory}/../parent-pom-marker.txt for profile jfr-package-dependencies: ${project.*} expressions are not supported during profile activation @ io.jenkins.jenkinsfile-runner:packaging-parent-pom:${revision}${changelist}, /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/packaging-parent-pom/pom.xml
[WARNING]
[WARNING] Some problems were encountered while building the effective model for io.jenkins.jenkinsfile-runner:vanilla-package:jar:1.0-beta-31-SNAPSHOT
[WARNING] 'profiles.profile[jfr-package-app].activation.file.missing' Failed to interpolate file location ${project.build.directory}/../parent-pom-marker.txt for profile jfr-package-app: ${project.*} expressions are not supported during profile activation @ io.jenkins.jenkinsfile-runner:packaging-parent-pom:${revision}${changelist}, /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/packaging-parent-pom/pom.xml
[WARNING] 'profiles.profile[jfr-package-assembly].activation.file.missing' Failed to interpolate file location ${project.build.directory}/../parent-pom-marker.txt for profile jfr-package-assembly: ${project.*} expressions are not supported during profile activation @ io.jenkins.jenkinsfile-runner:packaging-parent-pom:${revision}${changelist}, /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/packaging-parent-pom/pom.xml
[WARNING] 'profiles.profile[jfr-package-dependencies].activation.file.missing' Failed to interpolate file location ${project.build.directory}/../parent-pom-marker.txt for profile jfr-package-dependencies: ${project.*} expressions are not supported during profile activation @ io.jenkins.jenkinsfile-runner:packaging-parent-pom:${revision}${changelist}, /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/packaging-parent-pom/pom.xml
[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING]
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.

[INFO]
[INFO] --- animal-sniffer-maven-plugin:1.20:check (check) @ parent ---
[INFO] Resolved signature org.codehaus.mojo.signature:java18 version as 1.0 from dependencyManagement
[INFO] Checking unresolved references to org.codehaus.mojo.signature:java18:1.0
[INFO]
[INFO] --------------< io.jenkins.jenkinsfile-runner:bootstrap >---------------
[INFO] Building bootstrap 1.0-beta-31-SNAPSHOT                           [2/10]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-enforcer-plugin:3.0.0-M3:display-info (display-info) @ bootstrap ---
[INFO] Maven Version: 3.8.3
[INFO] JDK Version: 17 normalized as: 17
[INFO] OS Info: Arch: x86_64 Family: mac Name: mac os x Version: 10.15.7
[INFO]
[INFO] --- maven-enforcer-plugin:3.0.0-M3:enforce (display-info) @ bootstrap ---
[INFO] Adding ignore: module-info
[INFO]
[INFO] --- maven-resources-plugin:3.2.0:resources (default-resources) @ bootstrap ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Using 'UTF-8' encoding to copy filtered properties files.
[INFO] Copying 1 resource
[INFO] The encoding used to copy filtered properties files have not been set. This means that the same encoding will be used to copy filtered properties files as when copying other filtered resources. This might not be what you want! Run your build with --debug to see which files might be affected. Read more at https://maven.apache.org/plugins/maven-resources-plugin/examples/filtering-properties-files.html
[INFO]
[INFO] --- flatten-maven-plugin:1.2.7:flatten (flatten) @ bootstrap ---
[INFO] Generating flattened POM of project io.jenkins.jenkinsfile-runner:bootstrap:jar:1.0-beta-31-SNAPSHOT...
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ bootstrap ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 16 source files to /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/bootstrap/target/classes
[INFO] /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/bootstrap/src/main/java/io/jenkins/jenkinsfile/runner/bootstrap/commands/JenkinsLauncherCommand.java: /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/bootstrap/src/main/java/io/jenkins/jenkinsfile/runner/bootstrap/commands/JenkinsLauncherCommand.java uses or overrides a deprecated API.
[INFO] /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/bootstrap/src/main/java/io/jenkins/jenkinsfile/runner/bootstrap/commands/JenkinsLauncherCommand.java: Recompile with -Xlint:deprecation for details.
[INFO] /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/bootstrap/src/main/java/io/jenkins/jenkinsfile/runner/bootstrap/ClassLoaderBuilder.java: Some input files use or override a deprecated API that is marked for removal.
[INFO] /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/bootstrap/src/main/java/io/jenkins/jenkinsfile/runner/bootstrap/ClassLoaderBuilder.java: Recompile with -Xlint:removal for details.
[INFO]
[INFO] --- maven-resources-plugin:3.2.0:testResources (default-testResources) @ bootstrap ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Using 'UTF-8' encoding to copy filtered properties files.
[INFO] Copying 1 resource
[INFO] The encoding used to copy filtered properties files have not been set. This means that the same encoding will be used to copy filtered properties files as when copying other filtered resources. This might not be what you want! Run your build with --debug to see which files might be affected. Read more at https://maven.apache.org/plugins/maven-resources-plugin/examples/filtering-properties-files.html
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ bootstrap ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/bootstrap/target/test-classes
[INFO]
[INFO] --- animal-sniffer-maven-plugin:1.20:check (check) @ bootstrap ---
[INFO] Resolved signature org.codehaus.mojo.signature:java18 version as 1.0 from dependencyManagement
[INFO] Checking unresolved references to org.codehaus.mojo.signature:java18:1.0
[INFO]
[INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ bootstrap ---
[INFO]
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running io.jenkins.jenkinsfile.runner.bootstrap.BootstrapTest
Usage: jenkinsfile-runner cli [-hV] [--openWebUI] [--skipShutdown]
                              [--agentPort=<agentPort>] [--httpPath=<httpPath>]
                              [--httpPort=<httpPort>] [-jv=<version>]
                              [--libPath=<libPath>] [-m=<mirror>]
                              [-p=<pluginsDir>] [--runHome=<jenkinsHome>]
                              [-w=<warDir>] [--withInitHooks=<withInitHooks>]
Runs interactive Jenkins CLI
      --agentPort=<agentPort>
                            Port for connecting inbound Jenkins agents (over
                              JNLP or WebSockets). Disabled by default
  -h, --help                Show this help message and exit.
      --httpPath=<httpPath> Path (including leading / but no trailing /) for
                              exposing the web server and Jenkins Web UI from
                              Jenkinsfile Runner. Root path (/) by default
      --httpPort=<httpPort> Port for exposing the web server and Jenkins Web UI
                              from Jenkinsfile Runner. Disabled by default
      -jv, --jenkins-version=<version>
                            Jenkins version to use if Jenkins WAR is not
                              specified by --jenkins-war. Defaults to the
                              latest LTS
      --libPath=<libPath>   When a slim packaging is used, points to the
                              library directory which contains payload.jar and
                              setup.jar files
  -m, --mirror=<mirror>     Download mirror site of Jenkins, defaults to http:
                              //updates.jenkins.io/download. Get the mirror
                              list from http://mirrors.jenkins-ci.org/status.
                              html
      --openWebUI           Open Jenkins Web UI in the default browser,
                              '--httpPort' is expected to be defined together
                              with this option
  -p, --plugins=<pluginsDir>
                            Plugins required to run pipeline. Either a plugins.
                              txt file or a /plugins installation directory.
                              Defaults to plugins.txt
      --runHome, --jenkinsHome=<jenkinsHome>
                            Path to the empty Jenkins Home directory to use for
                              this run. If not specified a temporary directory
                              will be created. Note that the specified folder
                              will not be disposed after the run
      --skipShutdown        Forces Jenkinsfile Runner to skip the shutdown
                              logic. It reduces the instance termination time
                              but may lead to unexpected behavior in plugins
                              which release external resources on clean up
                              synchronous task queues on shutdown.
  -V, --version             Print version information and exit.
  -w, --jenkins-war=<warDir>
                            Path to exploded jenkins war directory.Depending on
                              packaging, it may contain the entire WAR or just
                              resources to be loaded by the WAR file, for
                              example Groovy hooks or extra libraries.
      --withInitHooks=<withInitHooks>
                            Path to a directory containing Groovy Init Hooks to
                              copy into init.groovy.d
Usage: jenkinsfile-runner cli [-hV] [--openWebUI] [--skipShutdown]
                              [--agentPort=<agentPort>] [--httpPath=<httpPath>]
                              [--httpPort=<httpPort>] [-jv=<version>]
                              [--libPath=<libPath>] [-m=<mirror>]
                              [-p=<pluginsDir>] [--runHome=<jenkinsHome>]
                              [-w=<warDir>] [--withInitHooks=<withInitHooks>]
Runs interactive Jenkins CLI
      --agentPort=<agentPort>
                            Port for connecting inbound Jenkins agents (over
                              JNLP or WebSockets). Disabled by default
  -h, --help                Show this help message and exit.
      --httpPath=<httpPath> Path (including leading / but no trailing /) for
                              exposing the web server and Jenkins Web UI from
                              Jenkinsfile Runner. Root path (/) by default
      --httpPort=<httpPort> Port for exposing the web server and Jenkins Web UI
                              from Jenkinsfile Runner. Disabled by default
      -jv, --jenkins-version=<version>
                            Jenkins version to use if Jenkins WAR is not
                              specified by --jenkins-war. Defaults to the
                              latest LTS
      --libPath=<libPath>   When a slim packaging is used, points to the
                              library directory which contains payload.jar and
                              setup.jar files
  -m, --mirror=<mirror>     Download mirror site of Jenkins, defaults to http:
                              //updates.jenkins.io/download. Get the mirror
                              list from http://mirrors.jenkins-ci.org/status.
                              html
      --openWebUI           Open Jenkins Web UI in the default browser,
                              '--httpPort' is expected to be defined together
                              with this option
  -p, --plugins=<pluginsDir>
                            Plugins required to run pipeline. Either a plugins.
                              txt file or a /plugins installation directory.
                              Defaults to plugins.txt
      --runHome, --jenkinsHome=<jenkinsHome>
                            Path to the empty Jenkins Home directory to use for
                              this run. If not specified a temporary directory
                              will be created. Note that the specified folder
                              will not be disposed after the run
      --skipShutdown        Forces Jenkinsfile Runner to skip the shutdown
                              logic. It reduces the instance termination time
                              but may lead to unexpected behavior in plugins
                              which release external resources on clean up
                              synchronous task queues on shutdown.
  -V, --version             Print version information and exit.
  -w, --jenkins-war=<warDir>
                            Path to exploded jenkins war directory.Depending on
                              packaging, it may contain the entire WAR or just
                              resources to be loaded by the WAR file, for
                              example Groovy hooks or extra libraries.
      --withInitHooks=<withInitHooks>
                            Path to a directory containing Groovy Init Hooks to
                              copy into init.groovy.d
1.0-beta-31-SNAPSHOT
Usage: jenkinsfile-runner [-huV] [-jte] [-ns] [--openWebUI] [--skipShutdown]
                          [--agentPort=<agentPort>] [-b=<buildNumber>]
                          [-c=<cause>] [-f=<jenkinsfile>]
                          [--httpPath=<httpPath>] [--httpPort=<httpPort>]
                          [-jv=<version>] [--libPath=<libPath>] [-m=<mirror>]
                          [-n=<jobName>] [-p=<pluginsDir>]
                          [-pc=<pipelineConfiguration>]
                          [--runHome=<jenkinsHome>]
                          [--runWorkspace=<runWorkspace>] [--scm=<scm>]
                          [-w=<warDir>] [--withInitHooks=<withInitHooks>]
                          [-a=<String=String>]... [COMMAND]
  -f, --file=<jenkinsfile>   Path to Jenkinsfile or directory containing a
                               Jenkinsfile, defaults to ./Jenkinsfile
      --runWorkspace=<runWorkspace>
                             Path to the workspace of the run to be used within
                               the node{} context. It applies to both Jenkins
                               master and agents (or side containers) if any.
                               Requires Jenkins 2.119 or above
  -n, --job-name=<jobName>   Name of the job the run belongs to
  -c, --cause=<cause>        Cause of the run
  -b, --build-number=<buildNumber>
                             Build number of the run
  -a, --arg=<String=String>  Parameters to be passed to the build. Use multiple
                               -a switches for multiple params
      -ns, --no-sandbox      Disable workflow job execution within sandbox
                               environment
  -u, --keep-undefined-parameters
                             Keep undefined parameters if set
      --scm=<scm>            YAML definition of the SCM, with optional
                               credentials, to use for the project
      -jte, --jenkins-templating-engine
                             Use the Jenkins Templating Engine for the build
      -pc, --pipeline-configuration=<pipelineConfiguration>
                             The Pipeline Configuration File when using the
                               Jenkins Templating Engine
  -w, --jenkins-war=<warDir> Path to exploded jenkins war directory.Depending
                               on packaging, it may contain the entire WAR or
                               just resources to be loaded by the WAR file, for
                               example Groovy hooks or extra libraries.
  -p, --plugins=<pluginsDir> Plugins required to run pipeline. Either a plugins.
                               txt file or a /plugins installation directory.
                               Defaults to plugins.txt
      -jv, --jenkins-version=<version>
                             Jenkins version to use if Jenkins WAR is not
                               specified by --jenkins-war. Defaults to the
                               latest LTS
  -m, --mirror=<mirror>      Download mirror site of Jenkins, defaults to http:
                               //updates.jenkins.io/download. Get the mirror
                               list from http://mirrors.jenkins-ci.org/status.
                               html
      --runHome, --jenkinsHome=<jenkinsHome>
                             Path to the empty Jenkins Home directory to use
                               for this run. If not specified a temporary
                               directory will be created. Note that the
                               specified folder will not be disposed after the
                               run
      --withInitHooks=<withInitHooks>
                             Path to a directory containing Groovy Init Hooks
                               to copy into init.groovy.d
      --skipShutdown         Forces Jenkinsfile Runner to skip the shutdown
                               logic. It reduces the instance termination time
                               but may lead to unexpected behavior in plugins
                               which release external resources on clean up
                               synchronous task queues on shutdown.
      --libPath=<libPath>    When a slim packaging is used, points to the
                               library directory which contains payload.jar and
                               setup.jar files
      --httpPort=<httpPort>  Port for exposing the web server and Jenkins Web
                               UI from Jenkinsfile Runner. Disabled by default
      --httpPath=<httpPath>  Path (including leading / but no trailing /) for
                               exposing the web server and Jenkins Web UI from
                               Jenkinsfile Runner. Root path (/) by default
      --openWebUI            Open Jenkins Web UI in the default browser,
                               '--httpPort' is expected to be defined together
                               with this option
      --agentPort=<agentPort>
                             Port for connecting inbound Jenkins agents (over
                               JNLP or WebSockets). Disabled by default
  -h, --help                 Show this help message and exit.
  -V, --version              Print version information and exit.
Commands:
  run                  Runs Jenkinsfile
  cli                  Runs interactive Jenkins CLI
  generate-completion  Generate bash/zsh completion script for
                         jenkinsfile-runner.
  version              Shows Jenkinsfile Runner version
  help                 Displays help information about the specified command
  lint                 Lints a Jenkinsfile
1.0-beta-31-SNAPSHOT
1.0-beta-31-SNAPSHOT
1.0-beta-31-SNAPSHOT
[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.298 s - in io.jenkins.jenkinsfile.runner.bootstrap.BootstrapTest
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO]
[INFO] --- maven-jar-plugin:3.2.0:jar (default-jar) @ bootstrap ---
[INFO] Building jar: /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/bootstrap/target/bootstrap-1.0-beta-31-SNAPSHOT.jar
[INFO]
[INFO] ----------------< io.jenkins.jenkinsfile-runner:setup >-----------------
[INFO] Building setup 1.0-beta-31-SNAPSHOT                               [3/10]
[INFO] --------------------------------[ jar ]---------------------------------
[WARNING] The artifact xerces:xerces:jar:2.2.1 has been relocated to xerces:xercesImpl:jar:2.2.1
[INFO]
[INFO] --- maven-enforcer-plugin:3.0.0-M3:display-info (display-info) @ setup ---
[INFO] Maven Version: 3.8.3
[INFO] JDK Version: 17 normalized as: 17
[INFO] OS Info: Arch: x86_64 Family: mac Name: mac os x Version: 10.15.7
[INFO]
[INFO] --- maven-enforcer-plugin:3.0.0-M3:enforce (display-info) @ setup ---
[INFO] Adding ignore: module-info
[INFO]
[INFO] --- maven-resources-plugin:3.2.0:resources (default-resources) @ setup ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Using 'UTF-8' encoding to copy filtered properties files.
[INFO] skip non existing resourceDirectory /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/setup/src/main/resources
[INFO]
[INFO] --- flatten-maven-plugin:1.2.7:flatten (flatten) @ setup ---
[INFO] Generating flattened POM of project io.jenkins.jenkinsfile-runner:setup:jar:1.0-beta-31-SNAPSHOT...
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ setup ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 15 source files to /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/setup/target/classes
[INFO] /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/setup/src/main/java/io/jenkins/jenkinsfile/runner/JenkinsfileRunnerLauncher.java: Some input files use or override a deprecated API.
[INFO] /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/setup/src/main/java/io/jenkins/jenkinsfile/runner/JenkinsfileRunnerLauncher.java: Recompile with -Xlint:deprecation for details.
[INFO] /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/setup/src/main/java/io/jenkins/jenkinsfile/runner/JenkinsEmbedder.java: /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/setup/src/main/java/io/jenkins/jenkinsfile/runner/JenkinsEmbedder.java uses or overrides a deprecated API that is marked for removal.
[INFO] /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/setup/src/main/java/io/jenkins/jenkinsfile/runner/JenkinsEmbedder.java: Recompile with -Xlint:removal for details.
[INFO]
[INFO] --- maven-resources-plugin:3.2.0:testResources (default-testResources) @ setup ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Using 'UTF-8' encoding to copy filtered properties files.
[INFO] skip non existing resourceDirectory /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/setup/src/test/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ setup ---
[INFO] No sources to compile
[INFO]
[INFO] --- animal-sniffer-maven-plugin:1.20:check (check) @ setup ---
[INFO] Resolved signature org.codehaus.mojo.signature:java18 version as 1.0 from dependencyManagement
[INFO] Checking unresolved references to org.codehaus.mojo.signature:java18:1.0
[INFO]
[INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ setup ---
[INFO] No tests to run.
[INFO]
[INFO] --- maven-jar-plugin:3.2.0:jar (default-jar) @ setup ---
[INFO] Building jar: /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/setup/target/setup-1.0-beta-31-SNAPSHOT.jar
[INFO]
[INFO] ---------< io.jenkins.jenkinsfile-runner:payload-dependencies >---------
[INFO] Building Jenkinsfile Runner: Plugin dependencies 1.0-beta-31-SNAPSHOT [4/10]
[INFO] --------------------------------[ hpi ]---------------------------------
[INFO]
[INFO] --- maven-hpi-plugin:3.18:validate (default-validate) @ payload-dependencies ---
[INFO]
[INFO] --- maven-hpi-plugin:3.18:validate-hpi (default-validate-hpi) @ payload-dependencies ---
[INFO]
[INFO] --- maven-enforcer-plugin:3.0.0-M3:display-info (display-info) @ payload-dependencies ---
[INFO] Maven Version: 3.8.3
[INFO] JDK Version: 17 normalized as: 17
[INFO] OS Info: Arch: x86_64 Family: mac Name: mac os x Version: 10.15.7
[INFO]
[INFO] --- maven-enforcer-plugin:3.0.0-M3:enforce (display-info) @ payload-dependencies ---
[INFO] Adding ignore: module-info
[WARNING] Invalid bytecodeVersion for com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.12.4:compile : META-INF/versions/11/module-info.class: expected 55, but was 53
[INFO]
[INFO] --- maven-resources-plugin:3.2.0:resources (default-resources) @ payload-dependencies ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Using 'UTF-8' encoding to copy filtered properties files.
[INFO] skip non existing resourceDirectory /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/payload-dependencies/src/main/resources
[INFO]
[INFO] --- flatten-maven-plugin:1.2.7:flatten (flatten) @ payload-dependencies ---
[INFO] Generating flattened POM of project io.jenkins.jenkinsfile-runner:payload-dependencies:hpi:1.0-beta-31-SNAPSHOT...
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ payload-dependencies ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/payload-dependencies/target/classes
[INFO]
[INFO] --- access-modifier-checker:1.26-rc164.054f29449a18:enforce (default-enforce) @ payload-dependencies ---
[INFO]
[INFO] --- maven-hpi-plugin:3.18:insert-test (default-insert-test) @ payload-dependencies ---
[INFO]
[INFO] --- maven-resources-plugin:3.2.0:testResources (default-testResources) @ payload-dependencies ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Using 'UTF-8' encoding to copy filtered properties files.
[INFO] skip non existing resourceDirectory /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/payload-dependencies/src/test/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ payload-dependencies ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/payload-dependencies/target/test-classes
[INFO]
[INFO] --- maven-hpi-plugin:3.18:test-hpl (default-test-hpl) @ payload-dependencies ---
[INFO] Generating /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/payload-dependencies/target/test-classes/the.hpl
[INFO] webappDirectory does not exist, will use warSourceDirectory
[INFO]
[INFO] --- maven-hpi-plugin:3.18:resolve-test-dependencies (default-resolve-test-dependencies) @ payload-dependencies ---
[INFO]
[INFO] --- animal-sniffer-maven-plugin:1.20:check (check) @ payload-dependencies ---
[INFO] Resolved signature org.codehaus.mojo.signature:java18 version as 1.0 from dependencyManagement
[INFO] Checking unresolved references to org.codehaus.mojo.signature:java18:1.0
[INFO]
[INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ payload-dependencies ---
[INFO] Tests are skipped.
[INFO]
[INFO] --- maven-hpi-plugin:3.18:hpi (default-hpi) @ payload-dependencies ---
[INFO] Generating /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/payload-dependencies/target/payload-dependencies-1.0-beta-31-SNAPSHOT/META-INF/MANIFEST.MF
[INFO] Checking for attached .jar artifact ...
[INFO] Generating jar /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/payload-dependencies/target/payload-dependencies-1.0-beta-31-SNAPSHOT.jar
[INFO] Building jar: /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/payload-dependencies/target/payload-dependencies-1.0-beta-31-SNAPSHOT.jar
[INFO] Exploding webapp...
[INFO] Copy webapp webResources to /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/payload-dependencies/target/payload-dependencies-1.0-beta-31-SNAPSHOT
[INFO] Assembling webapp payload-dependencies in /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/payload-dependencies/target/payload-dependencies-1.0-beta-31-SNAPSHOT
[INFO] Bundling direct dependency spotbugs-annotations-4.4.1.jar
[INFO] Generating hpi /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/payload-dependencies/target/payload-dependencies-1.0-beta-31-SNAPSHOT.hpi
[INFO] Building jar: /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/payload-dependencies/target/payload-dependencies-1.0-beta-31-SNAPSHOT.hpi
[INFO]
[INFO] ---------------< io.jenkins.jenkinsfile-runner:payload >----------------
[INFO] Building payload 1.0-beta-31-SNAPSHOT                             [5/10]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-enforcer-plugin:3.0.0-M3:display-info (display-info) @ payload ---
[INFO] Maven Version: 3.8.3
[INFO] JDK Version: 17 normalized as: 17
[INFO] OS Info: Arch: x86_64 Family: mac Name: mac os x Version: 10.15.7
[INFO]
[INFO] --- maven-enforcer-plugin:3.0.0-M3:enforce (display-info) @ payload ---
[INFO] Adding ignore: module-info
[WARNING] Invalid bytecodeVersion for com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.12.4:compile : META-INF/versions/11/module-info.class: expected 55, but was 53
[INFO]
[INFO] --- maven-resources-plugin:3.2.0:resources (default-resources) @ payload ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Using 'UTF-8' encoding to copy filtered properties files.
[INFO] skip non existing resourceDirectory /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/payload/src/main/resources
[INFO]
[INFO] --- flatten-maven-plugin:1.2.7:flatten (flatten) @ payload ---
[INFO] Generating flattened POM of project io.jenkins.jenkinsfile-runner:payload:jar:1.0-beta-31-SNAPSHOT...
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ payload ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 8 source files to /private/tmp/jenkinsfile-runner-20211012-89083-vatazw/payload/target/classes
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for Jenkinsfile Runner 1.0-beta-31-SNAPSHOT:
[INFO]
[INFO] Jenkinsfile Runner ................................. SUCCESS [  0.831 s]
[INFO] bootstrap .......................................... SUCCESS [  2.655 s]
[INFO] setup .............................................. SUCCESS [  3.168 s]
[INFO] Jenkinsfile Runner: Plugin dependencies ............ SUCCESS [  5.374 s]
[INFO] payload ............................................ FAILURE [  1.504 s]
[INFO] jenkinsfile-runner ................................. SKIPPED
[INFO] packaging-parent-pom-resources ..................... SKIPPED
[INFO] packaging-parent-pom ............................... SKIPPED
[INFO] packaging-parent-pom-slim .......................... SKIPPED
[INFO] vanilla-package .................................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  14.664 s
[INFO] Finished at: 2021-10-12T09:12:35-05:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project payload: Fatal error compiling: java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor (in unnamed module @0x4c59124a) cannot access class com.sun.tools.javac.processing.JavacProcessingEnvironment (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.processing to unnamed module @0x4c59124a -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <args> -rf :payload

==> Formula
Tap: jenkinsci/jenkinsfile-runner
Path: /usr/local/Homebrew/Library/Taps/jenkinsci/homebrew-jenkinsfile-runner/Formula/jenkinsfile-runner.rb
==> Configuration
HOMEBREW_VERSION: 3.2.16-17-gcc2c19b
ORIGIN: https://github.com/Homebrew/brew
HEAD: cc2c19be98e9ba704e4172e9602fe3fbcc5b5bdd
Last commit: 64 minutes ago
Core tap ORIGIN: https://github.com/Homebrew/homebrew-core
Core tap HEAD: ef0cfaf84d1ced82e8b72f2a67530364d6884279
Core tap last commit: 56 minutes ago
Core tap branch: master
HOMEBREW_PREFIX: /usr/local
HOMEBREW_CASK_OPTS: []
HOMEBREW_MAKE_JOBS: 8
Homebrew Ruby: 2.6.3 => /usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.6.3_2/bin/ruby
CPU: octa-core 64-bit kabylake
Clang: 12.0.0 build 1200
Git: 2.33.0 => /usr/local/bin/git
Curl: 7.64.1 => /usr/bin/curl
macOS: 10.15.7-x86_64
CLT: <IP_ADDRESS>.29
Xcode: 12.4
==> ENV
HOMEBREW_CC: clang
HOMEBREW_CXX: clang++
MAKEFLAGS: -j8
CMAKE_PREFIX_PATH: /usr/local/opt/openjdk@8:/usr/local/opt/openjdk:/usr/local
CMAKE_INCLUDE_PATH: /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/OpenGL.framework/Versions/Current/Headers
CMAKE_LIBRARY_PATH: /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/OpenGL.framework/Versions/Current/Libraries
PKG_CONFIG_PATH: /usr/local/opt/libpng/lib/pkgconfig:/usr/local/opt/freetype/lib/pkgconfig
PKG_CONFIG_LIBDIR: /usr/lib/pkgconfig:/usr/local/Homebrew/Library/Homebrew/os/mac/pkgconfig/10.15
HOMEBREW_GIT: git
HOMEBREW_SDKROOT: /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk
ACLOCAL_PATH: /usr/local/share/aclocal
PATH: /usr/local/Homebrew/Library/Homebrew/shims/mac/super:/usr/local/opt/libpng/bin:/usr/local/opt/freetype/bin:/usr/local/opt/openjdk@8/bin:/usr/local/opt/openjdk/bin:/usr/local/opt/maven/bin:/usr/bin:/bin:/usr/sbin:/sbin

Error: jenkinsci/jenkinsfile-runner/jenkinsfile-runner HEAD-02e186e did not build
Logs:
     /Users/hborcher/Library/Logs/Homebrew/jenkinsfile-runner/00.options.out
     /Users/hborcher/Library/Logs/Homebrew/jenkinsfile-runner/01.mvn
If reporting this issue please do so to (not Homebrew/brew or Homebrew/core):
  jenkinsci/jenkinsfile-runner

Traceback (most recent call last):
	25: from /usr/local/Homebrew/Library/Homebrew/build.rb:220:in `<main>'
	24: from /usr/local/Homebrew/Library/Homebrew/build.rb:124:in `install'
	23: from /usr/local/Homebrew/Library/Homebrew/utils.rb:550:in `with_env'
	22: from /usr/local/Homebrew/Library/Homebrew/build.rb:129:in `block in install'
	21: from /usr/local/Homebrew/Library/Homebrew/formula.rb:1284:in `brew'
	20: from /usr/local/Homebrew/Library/Homebrew/formula.rb:2442:in `stage'
	19: from /usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.6.3_2/lib/ruby/2.6.0/forwardable.rb:230:in `stage'
	18: from /usr/local/Homebrew/Library/Homebrew/resource.rb:96:in `stage'
	17: from /usr/local/Homebrew/Library/Homebrew/resource.rb:121:in `unpack'
	16: from /usr/local/Homebrew/Library/Homebrew/resource.rb:208:in `mktemp'
	15: from /usr/local/Homebrew/Library/Homebrew/mktemp.rb:63:in `run'
	14: from /usr/local/Homebrew/Library/Homebrew/mktemp.rb:63:in `chdir'
	13: from /usr/local/Homebrew/Library/Homebrew/mktemp.rb:63:in `block in run'
	12: from /usr/local/Homebrew/Library/Homebrew/resource.rb:122:in `block in unpack'
	11: from /usr/local/Homebrew/Library/Homebrew/download_strategy.rb:102:in `stage'
	10: from /usr/local/Homebrew/Library/Homebrew/download_strategy.rb:110:in `chdir'
	 9: from /usr/local/Homebrew/Library/Homebrew/resource.rb:126:in `block (2 levels) in unpack'
	 8: from /usr/local/Homebrew/Library/Homebrew/formula.rb:2462:in `block in stage'
	 7: from /usr/local/Homebrew/Library/Homebrew/utils.rb:550:in `with_env'
	 6: from /usr/local/Homebrew/Library/Homebrew/formula.rb:2463:in `block (2 levels) in stage'
	 5: from /usr/local/Homebrew/Library/Homebrew/formula.rb:1291:in `block in brew'
	 4: from /usr/local/Homebrew/Library/Homebrew/build.rb:169:in `block (2 levels) in install'
	 3: from /usr/local/Homebrew/Library/Taps/jenkinsci/homebrew-jenkinsfile-runner/Formula/jenkinsfile-runner.rb:11:in `install'
	 2: from /usr/local/Homebrew/Library/Homebrew/formula.rb:2233:in `system'
	 1: from /usr/local/Homebrew/Library/Homebrew/formula.rb:2233:in `open'
/usr/local/Homebrew/Library/Homebrew/formula.rb:2297:in `block in system': Failed executing: mvn package (BuildError)
	9: from /usr/local/Homebrew/Library/Homebrew/brew.rb:162:in `<main>'
	8: from /usr/local/Homebrew/Library/Homebrew/brew.rb:174:in `rescue in <main>'
	7: from /usr/local/Homebrew/Library/Homebrew/exceptions.rb:539:in `dump'
	6: from /usr/local/Homebrew/Library/Homebrew/exceptions.rb:485:in `issues'
	5: from /usr/local/Homebrew/Library/Homebrew/exceptions.rb:489:in `fetch_issues'
	4: from /usr/local/Homebrew/Library/Homebrew/utils/github.rb:61:in `issues_for_formula'
	3: from /usr/local/Homebrew/Library/Homebrew/utils/github.rb:30:in `search_issues'
	2: from /usr/local/Homebrew/Library/Homebrew/utils/github.rb:160:in `search'
	1: from /usr/local/Homebrew/Library/Homebrew/utils/github/api.rb:234:in `open_rest'
/usr/local/Homebrew/Library/Homebrew/utils/github/api.rb:304:in `raise_error': Validation Failed: [{"message"=>"The listed users and repositories cannot be searched either because the resources do not exist or you do not have permission to view them.", "resource"=>"Search", "field"=>"q", "code"=>"invalid"}] (GitHub::API::ValidationFailedError)
hborcher@LIBLAPPRE18 ~ %

Looks like you use a recent JDK version:  module jdk.compiler does not export com.sun.tools.javac.processing to unnamed module. This issue happens with JDK 16 or above:

https://openjdk.java.net/jeps/396
https://github.com/projectlombok/lombok/issues/2681
https://stackoverflow.com/questions/65380359/lomboks-access-to-jdk-compilers-internal-packages-incompatible-with-java-16

Currently Jenkinsfile Runner can be built with JDK 1.8 and JDK 11. I plan to add support for Java 17, but right now it is not going to work even if this particular issue is fixed. Anyway the issue needs to be fixed or explicitly documented somehow


[bug] Unknown manufacturer/product even though zwave-js eventually detects it

Version
Build/Run method: Docker
zwavejs2mqtt version: 1.0.0-rc.1 (master branch)
zwavejs version: 6.0.2
Describe the bug
I still have the problem with "Unknown manufacturer / product" for some battery-powered devices that take a longer time to be interviewed successfully, esp. if they are a bit further from the Z-Wave controller away.
Most of the time it is possible to trigger a re-interview in zwavejs2mqtt and waking up the device which causes the device to fully show up in the nodes table.
Unfortunately some devices show then up as "Unknown manufacturer/product" which cannot be changed to the correct names by re-interviewing again, even though zwave-js is able to successfully detect the name - although it may take a longer time (e.g. 20-30h).
Here are screenshots for the 2 problematic nodes (25, 150):

The attached logs for both zwavejs2mqtt and zwave-js show about 30 hours from a fresh start (empty store directory) up until after the problem occurred again and include all the relevant config files: files.zip
The problematic nodes are: 25 and 150 - both Shenzhen Neo NAS-DS01Z Door/Window sensors.
These are some interesting log lines from zwavejs2mqtt:
2021-01-24 18:08:31.896 INFO ZWAVE: Node 150 ready: Shenzhen Neo Electronics Co., Ltd. - NAS-DS01Z (Door/Window Sensor)
2021-01-25 07:31:16.974 INFO ZWAVE: Node 150 ready: Shenzhen Neo Electronics Co., Ltd. - NAS-DS01Z (Door/Window Sensor)
2021-01-25 18:18:01.868 INFO ZWAVE: Node 150 ready: Unknown manufacturer undefined - Unknown product undefined (Unknown)
2021-01-25 19:09:13.604 INFO ZWAVE: Node 25: value added 25-134-0-protocolVersion => undefined
2021-01-25 19:09:13.607 INFO ZWAVE: Node 25: value added 25-134-0-firmwareVersions => undefined
2021-01-25 19:09:13.609 INFO ZWAVE: Node 25: value added 25-114-0-manufacturerId => undefined
2021-01-25 19:09:13.612 INFO ZWAVE: Node 25: value added 25-114-0-productType => undefined
2021-01-25 19:09:13.615 INFO ZWAVE: Node 25: value added 25-114-0-productId => undefined
2021-01-25 19:09:13.617 INFO ZWAVE: Node 25: value added 25-128-0-level => undefined
2021-01-25 19:09:13.620 INFO ZWAVE: Node 25: value added 25-128-0-isLow => undefined
2021-01-25 19:09:13.623 INFO ZWAVE: Node 25: value added 25-132-0-wakeUpInterval => 43200
2021-01-25 19:09:13.626 INFO ZWAVE: Node 25: value added 25-132-0-controllerNodeId => undefined
2021-01-25 19:09:13.652 INFO ZWAVE: Node 25 ready: Unknown manufacturer undefined - Unknown product undefined (Unknown)
2021-01-25 19:09:13.653 INFO ZWAVE: Node 25: interview completed, all values are updated
2021-01-25 20:32:50.297 INFO ZWAVE: Node 150 ready: Unknown manufacturer undefined - Unknown product undefined (Unknown)
2021-01-25 20:33:43.034 INFO ZWAVE: Node 150 ready: Unknown manufacturer undefined - Unknown product undefined (Unknown)
2021-01-25 20:34:47.740 ERROR ZWAVE: Interview of node 150 has failed: Attempt 1/5 failed
2021-01-25 21:20:29.828 INFO ZWAVE: Node 150 ready: Unknown manufacturer undefined - Unknown product undefined (Unknown)
2021-01-25 21:48:26.261 INFO ZWAVE: Node 25 ready: Unknown manufacturer undefined - Unknown product undefined (Unknown)

Interesting is, that it seems that zwavejs2mqtt already got the correct manufacturer and product names but I don't remember to have seen them in the UI - otherwise I wouldn't have triggert a re-interview that often. One day later the device is not shown empty in the UI anymore but shows up as "Unknown manufacturer/device".
These are interesting log lines from zwave-js (from date 2021-01-25 - btw. can we output the date in the zwave-js logs too?) where a re-interview of node 150 has been triggered:
18:08:27.863 CNTRLR « [Node 150] received response for manufacturer information:
                        manufacturer: Shenzhen Neo Electronics Co., Ltd. (0x0258)
                        product type: 0x03
                        product id:   0x1082
18:08:27.863 CNTRLR   [Node 150] [+] [Manufacturer Specific] interviewComple [Endpoint 0] [internal]
                      te: true
...
19:07:37.194 CNTRLR « [Node 025] received response for manufacturer information:
                        manufacturer: Shenzhen Neo Electronics Co., Ltd. (0x0258)
                        product type: 0x03
                        product id:   0x1082
19:07:37.195 CNTRLR   [Node 025] [+] [Manufacturer Specific] interviewComple [Endpoint 0] [internal]
                      te: true
...
19:07:38.796 CNTRLR « [Node 025] received response for manufacturer information:
...
20:32:35.216 CNTRLR « [Node 150] received response for manufacturer information:
...
20:32:35.480 CNTRLR « [Node 150] received response for manufacturer information:
...
20:33:34.234 CNTRLR « [Node 150] received response for manufacturer information:
...
21:20:25.652 CNTRLR « [Node 150] received response for manufacturer information:

A related question:
What happens, if a device reports data (e.g. door opened/closed) while it has not yet been successfully interviewed?
I have the suspicion that this may trigger a race condition, but I have not been able to track this down.
Hopefully the logs and config files give enough information to find out what's going on.
To Reproduce
Steps to reproduce the behavior:

Make sure there are no files in the store directory
Start zwavejs2mqtt
Wait hours until there are empty devices left, that could not yet interviewed
Trigger a re-interview of the remaining ones and waking them up (e.g. press button 3x on Door/Window sensor)
Wait a few minutes
Repeat for devices that could not be interviewed correctly
Eventually some devices end up as being detected as "Unknown manufacturer/product" which are stuck in the ProtocolInfo stage

Expected behavior
zwavejs2mqtt should be able to recover from an "Unknown" device state as soon as zwave-js is able to correctly detect the device.
Additional context
This issue has already been reported as part of #233 where fixes have been committed which did not reproduce the problem until now why I'm opening a new issue with new information.

@robertsLando I guess the event recorder + fake driver we talked about would be an easy way to analyze this issue :-).

@robertsLando I guess the event recorder + fake driver we talked about would be an easy way to analyze this issue :-).

@AlCalzone any clue? Could it be that the ready eventi is still triggered without the deviceConfig loaded ?

@AlCalzone any clue? Could it be that the ready eventi is still triggered without the deviceConfig loaded ?

@ahochsteger do you have a full log? Of both

@ahochsteger do you have a full log? Of both

@robertsLando both logs are in files.zip (see link in the description).

@robertsLando both logs are in files.zip (see link in the description).

FYI: @robertsLando, @AlCalzone
I restarted zwavejs2mqtt yesterday at '22:44' since I had some troubles that re-inclusion did not work either which caused the unknown devices to show up as "empty" and trying to re-interview some of them again which worked for most.
The problematic node 150 from the logs in the description has then been re-included as node 165 which worked then.
I still had two more nodes (25 and 36) this morning that have not yet been successfully discovered which I just re-interviewed again a few times resulting in both showing up as "unknown".
The new logfiles can be found here: files-25-36.zip
Again I can see the pattern, that zwave-js is eventually able to discover the node with the correct manufacturer name:
# Re-inclusion of problematic node 150 as node 165 worked:
23:07:59.319 CNTRLR « [Node 165] received response for manufacturer information:
...
# Re-interview of not yet successfully discovered node 149 worked:
07:13:19.628 CNTRLR « [Node 149] received response for manufacturer information:
...
# Re-interview of not yet successfully discovered node 25 worked in zwave-js but shows as "unknown" in zwavejs2mqtt:
07:39:33.208 CNTRLR « [Node 025] received response for manufacturer information:
...
# 2x Re-interview of not yet successfully discovered node 36 worked in zwave-js but shows as "unknown" in zwavejs2mqtt:
07:40:15.413 CNTRLR « [Node 036] received response for manufacturer information:
07:40:54.130 CNTRLR « [Node 036] received response for manufacturer information:

FYI: @robertsLando, @AlCalzone
I restarted zwavejs2mqtt yesterday at '22:44' since I had some troubles that re-inclusion did not work either which caused the unknown devices to show up as "empty" and trying to re-interview some of them again which worked for most.
The problematic node 150 from the logs in the description has then been re-included as node 165 which worked then.
I still had two more nodes (25 and 36) this morning that have not yet been successfully discovered which I just re-interviewed again a few times resulting in both showing up as "unknown".
The new logfiles can be found here: files-25-36.zip
Again I can see the pattern, that zwave-js is eventually able to discover the node with the correct manufacturer name:
# Re-inclusion of problematic node 150 as node 165 worked:
23:07:59.319 CNTRLR « [Node 165] received response for manufacturer information:
...
# Re-interview of not yet successfully discovered node 149 worked:
07:13:19.628 CNTRLR « [Node 149] received response for manufacturer information:
...
# Re-interview of not yet successfully discovered node 25 worked in zwave-js but shows as "unknown" in zwavejs2mqtt:
07:39:33.208 CNTRLR « [Node 025] received response for manufacturer information:
...
# 2x Re-interview of not yet successfully discovered node 36 worked in zwave-js but shows as "unknown" in zwavejs2mqtt:
07:40:15.413 CNTRLR « [Node 036] received response for manufacturer information:
07:40:54.130 CNTRLR « [Node 036] received response for manufacturer information:

Could it be that the ready eventi is still triggered without the deviceConfig loaded ?

Should be easy to find in the log.

Could it be that the ready eventi is still triggered without the deviceConfig loaded ?

Should be easy to find in the log.

Okay it is not that easy. There are like 10 interviews of Node 25 going on, some in parallel, some are started after the node was successfully interviewed and marked ready.
@ahochsteger you're likely to have some better luck not restarting the interviews all the time. Wake up the battery powered nodes manually, even multiple times in a row if necessary. My guess is that part of the chaos you're seeing is caused by multiple concurrent interviews - which should not happen, but https://github.com/zwave-js/node-zwave-js/issues/903 and https://github.com/zwave-js/node-zwave-js/issues/900 exist for a reason.

Okay it is not that easy. There are like 10 interviews of Node 25 going on, some in parallel, some are started after the node was successfully interviewed and marked ready.
@ahochsteger you're likely to have some better luck not restarting the interviews all the time. Wake up the battery powered nodes manually, even multiple times in a row if necessary. My guess is that part of the chaos you're seeing is caused by multiple concurrent interviews - which should not happen, but https://github.com/zwave-js/node-zwave-js/issues/903 and https://github.com/zwave-js/node-zwave-js/issues/900 exist for a reason.

07:39:30.973 CNTRLR   [Node 025] Interview completed
07:39:31.882 CNTRLR   [Node 025] The node is ready to be used
07:39:31.909 SERIAL » 0x010900131902720425eb46                                            (11 bytes)
07:39:31.912 DRIVER » [Node 025] [REQ] [SendData]
                      │ transmit options: 0x25
                      │ callback id:      235
                      └─[ManufacturerSpecificCCGet]

.....

07:39:33.039 DRIVER » [Node 025] [REQ] [SendData]
                      │ transmit options: 0x25
                      │ callback id:      235
                      └─[ManufacturerSpecificCCGet]
07:39:33.042 SERIAL « [ACK]                                                                   (0x06)
07:39:33.048 SERIAL « 0x0104011301e8                                                       (6 bytes)
07:39:33.048 SERIAL » [ACK]                                                                   (0x06)
07:39:33.050 DRIVER « [RES] [SendData]
                        was sent: true
07:39:33.098 SERIAL « 0x01050013eb0002                                                     (7 bytes)
07:39:33.099 SERIAL » [ACK]                                                                   (0x06)
07:39:33.100 DRIVER « [REQ] [SendData]
                        callback id:     235
                        transmit status: OK
07:39:33.174 SERIAL « 0x011000040019087205025800031082cf0089                              (18 bytes)
07:39:33.177 CNTRLR   [Node 025] [+] [Manufacturer Specific] manufacturerId: 600        [Endpoint 0]
07:39:33.184 CNTRLR   [Node 025] [+] [Manufacturer Specific] productType: 3             [Endpoint 0]
07:39:33.190 CNTRLR   [Node 025] [+] [Manufacturer Specific] productId: 4226            [Endpoint 0]
07:39:33.196 SERIAL » [ACK]                                                                   (0x06)
07:39:33.204 DRIVER « [Node 025] [REQ] [ApplicationCommand]
                      └─[ManufacturerSpecificCCReport]
                          manufacturer id: 0x0258
                          product type:    0x03
                          product id:      0x1082
07:39:33.208 CNTRLR « [Node 025] received response for manufacturer information:
                        manufacturer: Shenzhen Neo Electronics Co., Ltd. (0x0258)
                        product type: 0x03
                        product id:   0x1082
07:39:33.209 CNTRLR   [Node 025] [+] [Manufacturer Specific] interviewComple [Endpoint 0] [internal]
                      te: true
07:39:33.210 CNTRLR   [Node 025] trying to load device config
07:39:33.212 CNTRLR   [Node 025] no device config loaded
07:39:33.291 CNTRLR   [Node 025] VersionCC: doing a complete interview...
07:39:33.292 CNTRLR » [Node 025] querying node versions...
07:39:33.306 SERIAL » 0x010900131902861125eca0                                            (11 bytes)
07:39:33.307 DRIVER » [Node 025] [REQ] [SendData]
                      │ transmit options: 0x25
                      │ callback id:      236
                      └─[VersionCCGet]

And then
2021-01-26 07:39:31.840 INFO ZWAVE: Node 25: value added 25-132-0-controllerNodeId => 1
2021-01-26 07:39:31.843 INFO ZWAVE: Node 25: value added 25-134-0-libraryType => undefined
2021-01-26 07:39:31.846 INFO ZWAVE: Node 25: value added 25-134-0-protocolVersion => undefined
2021-01-26 07:39:31.848 INFO ZWAVE: Node 25: value added 25-134-0-firmwareVersions => undefined
2021-01-26 07:39:31.851 INFO ZWAVE: Node 25: value added 25-114-0-manufacturerId => undefined
2021-01-26 07:39:31.853 INFO ZWAVE: Node 25: value added 25-114-0-productType => undefined
2021-01-26 07:39:31.856 INFO ZWAVE: Node 25: value added 25-114-0-productId => undefined
2021-01-26 07:39:31.859 INFO ZWAVE: Node 25: value added 25-128-0-level => 95
2021-01-26 07:39:31.861 INFO ZWAVE: Node 25: value added 25-128-0-isLow => false
2021-01-26 07:39:31.881 INFO ZWAVE: Node 25 ready: Unknown manufacturer undefined - Unknown product undefined (Unknown)
2021-01-26 07:39:31.886 INFO ZWAVE: Node 25: interview completed, all values are updated

So to answer my own question yes seems that the manufacturer producttype and id are retrived after the node is ready

07:39:30.973 CNTRLR   [Node 025] Interview completed
07:39:31.882 CNTRLR   [Node 025] The node is ready to be used
07:39:31.909 SERIAL » 0x010900131902720425eb46                                            (11 bytes)
07:39:31.912 DRIVER » [Node 025] [REQ] [SendData]
                      │ transmit options: 0x25
                      │ callback id:      235
                      └─[ManufacturerSpecificCCGet]

.....

07:39:33.039 DRIVER » [Node 025] [REQ] [SendData]
                      │ transmit options: 0x25
                      │ callback id:      235
                      └─[ManufacturerSpecificCCGet]
07:39:33.042 SERIAL « [ACK]                                                                   (0x06)
07:39:33.048 SERIAL « 0x0104011301e8                                                       (6 bytes)
07:39:33.048 SERIAL » [ACK]                                                                   (0x06)
07:39:33.050 DRIVER « [RES] [SendData]
                        was sent: true
07:39:33.098 SERIAL « 0x01050013eb0002                                                     (7 bytes)
07:39:33.099 SERIAL » [ACK]                                                                   (0x06)
07:39:33.100 DRIVER « [REQ] [SendData]
                        callback id:     235
                        transmit status: OK
07:39:33.174 SERIAL « 0x011000040019087205025800031082cf0089                              (18 bytes)
07:39:33.177 CNTRLR   [Node 025] [+] [Manufacturer Specific] manufacturerId: 600        [Endpoint 0]
07:39:33.184 CNTRLR   [Node 025] [+] [Manufacturer Specific] productType: 3             [Endpoint 0]
07:39:33.190 CNTRLR   [Node 025] [+] [Manufacturer Specific] productId: 4226            [Endpoint 0]
07:39:33.196 SERIAL » [ACK]                                                                   (0x06)
07:39:33.204 DRIVER « [Node 025] [REQ] [ApplicationCommand]
                      └─[ManufacturerSpecificCCReport]
                          manufacturer id: 0x0258
                          product type:    0x03
                          product id:      0x1082
07:39:33.208 CNTRLR « [Node 025] received response for manufacturer information:
                        manufacturer: Shenzhen Neo Electronics Co., Ltd. (0x0258)
                        product type: 0x03
                        product id:   0x1082
07:39:33.209 CNTRLR   [Node 025] [+] [Manufacturer Specific] interviewComple [Endpoint 0] [internal]
                      te: true
07:39:33.210 CNTRLR   [Node 025] trying to load device config
07:39:33.212 CNTRLR   [Node 025] no device config loaded
07:39:33.291 CNTRLR   [Node 025] VersionCC: doing a complete interview...
07:39:33.292 CNTRLR » [Node 025] querying node versions...
07:39:33.306 SERIAL » 0x010900131902861125eca0                                            (11 bytes)
07:39:33.307 DRIVER » [Node 025] [REQ] [SendData]
                      │ transmit options: 0x25
                      │ callback id:      236
                      └─[VersionCCGet]

And then
2021-01-26 07:39:31.840 INFO ZWAVE: Node 25: value added 25-132-0-controllerNodeId => 1
2021-01-26 07:39:31.843 INFO ZWAVE: Node 25: value added 25-134-0-libraryType => undefined
2021-01-26 07:39:31.846 INFO ZWAVE: Node 25: value added 25-134-0-protocolVersion => undefined
2021-01-26 07:39:31.848 INFO ZWAVE: Node 25: value added 25-134-0-firmwareVersions => undefined
2021-01-26 07:39:31.851 INFO ZWAVE: Node 25: value added 25-114-0-manufacturerId => undefined
2021-01-26 07:39:31.853 INFO ZWAVE: Node 25: value added 25-114-0-productType => undefined
2021-01-26 07:39:31.856 INFO ZWAVE: Node 25: value added 25-114-0-productId => undefined
2021-01-26 07:39:31.859 INFO ZWAVE: Node 25: value added 25-128-0-level => 95
2021-01-26 07:39:31.861 INFO ZWAVE: Node 25: value added 25-128-0-isLow => false
2021-01-26 07:39:31.881 INFO ZWAVE: Node 25 ready: Unknown manufacturer undefined - Unknown product undefined (Unknown)
2021-01-26 07:39:31.886 INFO ZWAVE: Node 25: interview completed, all values are updated

So to answer my own question yes seems that the manufacturer producttype and id are retrived after the node is ready

@AlCalzone thanks for your feedback!
The problem I'm facing is that I have to do something if the devices still have not yet discovered after a full day and triggering a wakeup and/or re-interview does not provide any feedback (at least in the UI) if there is happening something or not. Not seeing any results and not knowing, when I can start the next re-interview may add more chaos to the problems - even though I see myself as a very patient person ;-).
@robertsLando maybe this is something we can improve in the UI to give the user more feedback about what's going on to take informed decisions about what to do in case of problems ...

@AlCalzone thanks for your feedback!
The problem I'm facing is that I have to do something if the devices still have not yet discovered after a full day and triggering a wakeup and/or re-interview does not provide any feedback (at least in the UI) if there is happening something or not. Not seeing any results and not knowing, when I can start the next re-interview may add more chaos to the problems - even though I see myself as a very patient person ;-).
@robertsLando maybe this is something we can improve in the UI to give the user more feedback about what's going on to take informed decisions about what to do in case of problems ...

There are like 10 interviews of Node 25 going on, some in parallel, some are started after the node was successfully interviewed and marked ready.

@AlCalzone How can this be possible? I mean shouldn't a new interview abort the running one?
@ahochsteger Do you have something in mind about how to help users? I mean there is the interview stage shown that should be enought

There are like 10 interviews of Node 25 going on, some in parallel, some are started after the node was successfully interviewed and marked ready.

@AlCalzone How can this be possible? I mean shouldn't a new interview abort the running one?
@ahochsteger Do you have something in mind about how to help users? I mean there is the interview stage shown that should be enought

@robertsLando concerning the undefined manufacturerId:
Even if zwavejs2mqtt gets undefined data, shouldn't it update it afterwards, when zwavejs reports the correct data at a later time?
See these logs:
2021-01-26 07:39:31.851 INFO ZWAVE: Node 25: value added 25-114-0-manufacturerId => undefined
2021-01-26 07:39:33.181 INFO ZWAVE: Node 25: value added 25-114-0-manufacturerId => 600
2021-01-26 07:40:53.898 INFO ZWAVE: Node 36: value added 36-114-0-manufacturerId => undefined
2021-01-26 07:40:54.103 INFO ZWAVE: Node 36: value added 36-114-0-manufacturerId => 600

@robertsLando concerning the undefined manufacturerId:
Even if zwavejs2mqtt gets undefined data, shouldn't it update it afterwards, when zwavejs reports the correct data at a later time?
See these logs:
2021-01-26 07:39:31.851 INFO ZWAVE: Node 25: value added 25-114-0-manufacturerId => undefined
2021-01-26 07:39:33.181 INFO ZWAVE: Node 25: value added 25-114-0-manufacturerId => 600
2021-01-26 07:40:53.898 INFO ZWAVE: Node 36: value added 36-114-0-manufacturerId => undefined
2021-01-26 07:40:54.103 INFO ZWAVE: Node 36: value added 36-114-0-manufacturerId => 600

I mean shouldn't a new interview abort the running one?

Short answer: It should, but doesn't. I have several things I want/need to change here - so for the meantime the solution is: "don't" ;)

I mean shouldn't a new interview abort the running one?

Short answer: It should, but doesn't. I have several things I want/need to change here - so for the meantime the solution is: "don't" ;)

@ahochsteger Do you have something in mind about how to help users? I mean there is the interview stage shown that should be enought

@robertsLando no, I don't have any specific in mind yet. To be honest I did not trust the interview stage very much since I've seen nodes with no information at all that were already in the stage "Complete" and nodes that have been in the ProtocolInfo or NodeInfo stage for hours or even days. :-/

@ahochsteger Do you have something in mind about how to help users? I mean there is the interview stage shown that should be enought

@robertsLando no, I don't have any specific in mind yet. To be honest I did not trust the interview stage very much since I've seen nodes with no information at all that were already in the stage "Complete" and nodes that have been in the ProtocolInfo or NodeInfo stage for hours or even days. :-/

in the ProtocolInfo

That means no communication with the node yet

NodeInfo stage for hours

That takes up the heap of the interview - so that is not suprising for battery-powered devices. IMO the main UX problem is that you don't see any progress here.

in the ProtocolInfo

That means no communication with the node yet

NodeInfo stage for hours

That takes up the heap of the interview - so that is not suprising for battery-powered devices. IMO the main UX problem is that you don't see any progress here.

IMO the main UX problem is that you don't see any progress here.

What should I show so?

IMO the main UX problem is that you don't see any progress here.

What should I show so?

You can't. There's no information exposed you could use.

You can't. There's no information exposed you could use.

IMO the main UX problem is that you don't see any progress here.

What should I show so?
Hi, I have a TriSensor which is battery powered sleeping device suffering from exactly the same issues.
The strange thing for me is that even if the interview is not complete if the correct sensors has been interviewed the status is being updated in HA. So the device is "semi" functional but not visible in the GUI.

A proposal - reuse the cache values before the interview is finished. I mean if the node has already been discovered and the supported classes have not changed and most likely the configuration either. So why not initialize the GUI and HA with the same values from the last successful interview?
I understand that this is more of a workaround/hack but it can be made optional behaviour if you know your network and don't play with the setting often.

IMO the main UX problem is that you don't see any progress here.

What should I show so?
Hi, I have a TriSensor which is battery powered sleeping device suffering from exactly the same issues.
The strange thing for me is that even if the interview is not complete if the correct sensors has been interviewed the status is being updated in HA. So the device is "semi" functional but not visible in the GUI.

A proposal - reuse the cache values before the interview is finished. I mean if the node has already been discovered and the supported classes have not changed and most likely the configuration either. So why not initialize the GUI and HA with the same values from the last successful interview?
I understand that this is more of a workaround/hack but it can be made optional behaviour if you know your network and don't play with the setting often.

reuse the cache values before the interview is finished

zwave-js does. Can't speak for zwavejs2mqtt, but AFAIK it listens for the node ready event. That happens pretty quick on subsequent startups.
Your problem likely is that the interview didn't ever complete, so the node isn't considered ready yet. This causes z2m not to display the manufacturer info.

reuse the cache values before the interview is finished

zwave-js does. Can't speak for zwavejs2mqtt, but AFAIK it listens for the node ready event. That happens pretty quick on subsequent startups.
Your problem likely is that the interview didn't ever complete, so the node isn't considered ready yet. This causes z2m not to display the manufacturer info.

reuse the cache values before the interview is finished

zwave-js does. Can't speak for zwavejs2mqtt, but AFAIK it listens for the node ready event. That happens pretty quick on subsequent startups.
Your problem likely is that the interview didn't ever complete, so the node isn't considered ready yet. This causes z2m not to display the manufacturer info.

I was talking for zwaveJS2mqtt GUI. The observed behaviour is not only for the sleeping devices. After restart the devices go from "Complete" to "RestartFromCache" mode but parameters are being removed if the values are in state "undefined" as shown in the original ticket.
My idea was "if node value ==> undefined then read from cache when available" .

reuse the cache values before the interview is finished

zwave-js does. Can't speak for zwavejs2mqtt, but AFAIK it listens for the node ready event. That happens pretty quick on subsequent startups.
Your problem likely is that the interview didn't ever complete, so the node isn't considered ready yet. This causes z2m not to display the manufacturer info.

I was talking for zwaveJS2mqtt GUI. The observed behaviour is not only for the sleeping devices. After restart the devices go from "Complete" to "RestartFromCache" mode but parameters are being removed if the values are in state "undefined" as shown in the original ticket.
My idea was "if node value ==> undefined then read from cache when available" .

@robertsLando why are they undefined anyways? They should be in the zwave-js cache unless they have never been read before.

@robertsLando why are they undefined anyways? They should be in the zwave-js cache unless they have never been read before.

They should be in the zwave-js cache unless they have never been read before.

That's a question I would ask to you, I sincerly dunno why this happens but the informations says that's undefined :man_shrugging:

They should be in the zwave-js cache unless they have never been read before.

That's a question I would ask to you, I sincerly dunno why this happens but the informations says that's undefined :man_shrugging:

Again, can't tell without an interview that is not restarted all the time through user intervention.

Again, can't tell without an interview that is not restarted all the time through user intervention.

@ahochsteger Could you give a try to https://github.com/zwave-js/zwavejs2mqtt/pull/376

@ahochsteger Could you give a try to https://github.com/zwave-js/zwavejs2mqtt/pull/376

@robertsLando I can definitely confirm that this helps to fix the problem since I found a way to fully reproduce the problem on my test device using the following procedure:

Remove all cache files
Start server + gui
Wait until all devices before the battery-powered devices have been initialized and show up
Wait a bit longer (5-10s) to make sure that zwave-js is trying to interview the battery-powered device
Select and trigger "Re-interview" and directly wakeup the device (3x button press)

This always leads to "Unknown manufacturer" without this PR.
This PR seems to show "Unknown manufacturer" as wall for a very short time (1s) but replaces it later with the correct manufacturer and product name.
Well done! :-)

@robertsLando I can definitely confirm that this helps to fix the problem since I found a way to fully reproduce the problem on my test device using the following procedure:

Remove all cache files
Start server + gui
Wait until all devices before the battery-powered devices have been initialized and show up
Wait a bit longer (5-10s) to make sure that zwave-js is trying to interview the battery-powered device
Select and trigger "Re-interview" and directly wakeup the device (3x button press)

This always leads to "Unknown manufacturer" without this PR.
This PR seems to show "Unknown manufacturer" as wall for a very short time (1s) but replaces it later with the correct manufacturer and product name.
Well done! :-)

This PR seems to show "Unknown manufacturer" as well for a very short time (1s)

Is that before or after the re-interview?

This PR seems to show "Unknown manufacturer" as well for a very short time (1s)

Is that before or after the re-interview?

As I see it the "unknonw manufacturer" is shown just after pressing the button on the door sensor 3x - so I would say it is after triggering the re-interview in the UI but before the re-interview is finished, but I have not analyzed the logs to confirm the exact times of the events.
A short time (seconds) later "unknown manufacturer" is then replaced by the real manufacturer name in the UI.
But I just found out an important difference which may have to do with the way I'm waking up the device:
If I wake up the device the correct way as I just read in the manual (just press the button once) the "unknown manufacturer" problem does not show up at all (even without this PR). Only if I press the button 3x (causing it to gon into inclusion mode - which seems to be an old habit, since I had more success by pressing it 3x in the past) does cause the "unknown" problem.
Waking it up just by 1x pressing the button is now working reliably (maybe due to other fixes in the past) so I won't have to do the 3x press anymore.
I guess this is important for you, @AlCalzone, since it may make a big difference for zwave-js if it goes into inclusion mode vs. just waking it up.
Here are the logs where this can be further analyzed, if it is of any help:

zwavejs2mqtt.log
zwavejs_1280703.log

As I see it the "unknonw manufacturer" is shown just after pressing the button on the door sensor 3x - so I would say it is after triggering the re-interview in the UI but before the re-interview is finished, but I have not analyzed the logs to confirm the exact times of the events.
A short time (seconds) later "unknown manufacturer" is then replaced by the real manufacturer name in the UI.
But I just found out an important difference which may have to do with the way I'm waking up the device:
If I wake up the device the correct way as I just read in the manual (just press the button once) the "unknown manufacturer" problem does not show up at all (even without this PR). Only if I press the button 3x (causing it to gon into inclusion mode - which seems to be an old habit, since I had more success by pressing it 3x in the past) does cause the "unknown" problem.
Waking it up just by 1x pressing the button is now working reliably (maybe due to other fixes in the past) so I won't have to do the 3x press anymore.
I guess this is important for you, @AlCalzone, since it may make a big difference for zwave-js if it goes into inclusion mode vs. just waking it up.
Here are the logs where this can be further analyzed, if it is of any help:

zwavejs2mqtt.log
zwavejs_1280703.log

@ahochsteger what a mess :laughing: BTW glad that this problem seems fixed now, I have added many different checks that should fix this in all cases, even with messy devices

@ahochsteger what a mess :laughing: BTW glad that this problem seems fixed now, I have added many different checks that should fix this in all cases, even with messy devices

@robertsLando FYI, I'm still experiencing this, specifically with two Schlage locks ("Allegion - BE469").
One of them, Node 16, shows correctly in the dashboard:

The other, Node 5, shows as unknown in the dashboard:

zwave-js version: 6.1.1
z2m version: 1.0.4
zwave-js log (silly-level): https://gist.github.com/bachya/a1db9b1caa45319e30dc124ae654c6c9#file-zwavejs_1-log
z2m log (silly-level): https://gist.github.com/bachya/a1db9b1caa45319e30dc124ae654c6c9#file-zwavejs2mqtt-log

@bachya

you have several interview of node 5 going on at once. I'm not sure why that happens since it shouldn't, but I've usually seen it when users are not patient enough and press the refreshInfo button too often.
Node 5 does simply not respond to the manufacturer info request, so we're not getting that information.

Thanks, @AlCalzone. I was probably impatient. 😂 I'm still able to interact with the node and its entities, so the fact that it doesn't return info isn't the end of the world.

@bachya Did your Schlage BE469 ever go back to reporting correctly? Mine was working fine for a while, then stopped.

I have something similar:
Zwave JS integration reads the device just fine. But the addon dashboard shows as Unknown Manufacturer:

Actually everything was working fine until all of a sudden I lost all devices. So I Zwave had to find all devices again, and the battery operated devices got left behind. When I managed to add them back again one of the got its full information (Aeon Minimote) but a door sensor got stouck with Unknown Modifier. Apart from the name, the device is working just fine as the integration sees it correctly.

Try yo manually wakeup your devices

Mine have started doing this again today.. They have been up and running for weeks with no issues

Please post a driver log (level debug) of the startup.

Please post a driver log (level debug) of the startup.

zwavejs2mqtt.log
Here you go, thanks. I also have an issue with node 3, I don't have that node and I cannot delete it, it is always stuck on ProtocolInfo

That's not a driver log. ==> https://zwave-js.github.io/zwavejs2mqtt/#/troubleshooting/bug_report?id=driver-logs

That's not a driver log. ==> https://zwave-js.github.io/zwavejs2mqtt/#/troubleshooting/bug_report?id=driver-logs

oops sorry
zwavejs_2021-06-07.log

@markrennie71 The log claims the nodes are ready. Can you share your cache files fadb18a0.json and fadb18a0.values.jsonl?
As for node 3: you're looking for the "remove failed node" function in zwavejs2mqtt.

The nodes all work in home assistant but in zwavejs2mqtt they look like the attached. also here are the files you requested. PS the remove failed node doesn't work in this case.  You'll have to re-interview all devices.

PS the remove failed node doesn't work in this case

Why not? What's in the driver log then?

PS the remove failed node doesn't work in this case

Why not? What's in the driver log then?

when I try I get the following, even thought this is 100% not on my mesh
`Error while calling api removeFailedNode: The node removal process could not be started because the node responded to a ping.

Please share a driver log where you try that.

here you go... and thank you
zwavejs_2021-06-09.log

I lost power last night. My pi4 went down and after the power came back on .. the unknown devices appeared. This is not the first time. The last time I decided to do a zwave-js upgrade and perhaps this problem would remedy itself. That was totally wrong and I ended up loading 45 devices from scratch. I was not a happy camper. It took a lot of my time.  This time I will leave it alone and see if it remedies itself. Shouldn't reloading the node-js file from backup fix this? This is very un-acceptable.


Use nn.softmax in keras.activations.softmax

There are two issues with tf.keras.activations.softmax :
First:
it implements softmax for 3D+ tensors in not optimal way due to old workarounds:

Keras:   Support for 3D+ tensors was added on Nov 29, 2015 https://github.com/keras-team/keras/commit/8f2d6d2714aa1b60950a2fc355d39297b7f2cdfb
TF: In that time tensorflow did not support multiple dimensions: issue was reported on Jun 29, 2016 (Softmax for multiple dimensions) https://github.com/tensorflow/tensorflow/issues/3101
TF: Support for multiple dimensions was added on Aug 29, 2016 https://github.com/tensorflow/tensorflow/commit/aeac274ed160618afa242512c38d1fd496466136
TF: Improved kernel accepting shapes with higher ranks was added on Aug 6, 2018 https://github.com/tensorflow/tensorflow/commit/f3aa5d4717deac34b00979fdc4f13c3c9170e819

For 3D tensor, the softmax gradient is getting really complicated which seriously hurts performance. example:

Second:
It returns wrong results for 2D tensors, axis=0. I also prepared unit test for this scenario.

@googlebot I signed it!


Bootstrap JavaScript causing Issue notice in Google Chrome

System
Windows 10 Professional RTM x64 20H2
Google Chrome Version 92.0.4515.107 (Official Build) (64-bit)
Test Case: https://jsfiddle.net/Maelstorm/upw78zs0/
Issue
Google Chrome is giving notice that changes are being made that will affect the functionality of software that uses several properties in the navigator class:

This appears to only affect Chrome and Chromium based browsers.

Audit usage of navigator.userAgent, navigator.appVersion, and navigator.platformA page or script is accessing at least one of navigator.userAgent, navigator.appVersion, and navigator.platform. In a future version of Chrome, the amount of information available in the User Agent string will be reduced.To fix this issue, replace the usage of navigator.userAgent, navigator.appVersion, and navigator.platform with feature detection, progressive enhancement, or migrate to navigator.userAgentData.Note that for performance reasons, only the first access to one of the properties is shown.AFFECTED RESOURCES1 source
bootstrap.bundle.min.js:1
Learn more: User-Agent String Reduction

Thanks for reporting this but it's unlikely to cause any problems.
We're not browser sniffing but the Popper dependency does. Those detections are very basic and don't target informations that are affected by those changes. At least according to https://www.chromium.org/updates/ua-reduction.

I have the same problem, my use case is to load popper.js separately, for OCD developers, it is best to solve it


Log4j Critical Vulnerability - Remote Code Injection

Based on GHSA-jfh8-c2jp-5v3q
"Log4j versions prior to 2.16.0 are subject to a remote code execution vulnerability via the ldap JNDI parser."
In addition, according to CVE-2021-4104, Log4j 1.2 is subject to similar RCE when JMSAppenders are used, and Log4j 1.x is well out of support at this time.
It's advised to migrate to Log4j 2.16.0 at this time. Based on the severity of the issue, request that this be dealt with via a backport approach if at all possible. Would it be possible to migrate to Log4j 2.16.0 to mitigate the risk to anyone using this application?
Thank you!

Hi Justin,
We are aware of the issue. However, can you follow the process described on CONTRIBUTING.md? This will ensure the issue is properly triaged and acknowledged by Linkedin Security.
I will leave this Issue open until we have the appropriate changes merged.
FYI @atoomula
Thanks,
Thomas


OCI Metrics and LOGS : Datasource Grafana YAML

Hi,
i tried to auto provision datasource on Kubernetes SideCar 'Grafana Datasource' where can i find the correct yaml définition.

name: Oracle-Cloud-Infrastructure-Metrics
type: oci-metrics-datasource ???
tenancyocid: ???
defaultregion: ???
Environment: ???
access: proxy
isDefault: false
editable: true

I know this is an outdated issue, but i got provisioning this datasource to work, for my awnser see: https://github.com/oracle/oci-grafana-metrics/issues/42


don't validate chunk size when file_size unknown

When file_size is unknown, skip the test of the chunk table size that was added in #1161
Signed-off-by: Peter Hillman<EMAIL_ADDRESS>

Is this ok to merge? I'm still experiencing the errors that this is meant to address.


Fix OOM when creating heaps larger then the residency LRU.

When a large heap exceeded the residency LRU, ResidencyManager::Evict would be unable to page out enough space, where calling ID3D12Device::CreateHeap would crash the process instead of error.
This fix prevents ID3D12Device::CreateHeap from being attempted if there isn't enough budget, which allows OOM to be generated by GPGMM instead of D3D12 which prevents OOM-runtime crashes related to the fuzzer.

@bjjones PTAL. Thanks!

Is it an option to fall back to allocating a resource as non-resident instead of failing? Applications can continue to run if they're over budget - I know resource creation can fail when there's not enough budget, but that doesn't necessarily mean it will.
IIRC, the functionality for ensuring we have memory at resource creation time was put in because I saw failures on Nvidia devices when creating certain resources over the limit that were restricted to device memory.
I know this is to fix a fuzzing issue, but there could be valid scenarios where we can't get under budget that otherwise would not fail - possibly due to many locked heaps or something.

Thanks for taking look. Even after this change, the fuzzer still doesn't work (it never terminate). I think I need to work on this more.


Combined tokens orderbook

cf: https://github.com/tonymorony/dexstats_sqlite_py/issues/15
@cipig I've added more logic into order book call to parse more liquidity across the protocol for the CEX aggregators
now if let's say you call http://<IP_ADDRESS>:8080/api/v1/orderbook/KMD_USDC API will try to get and combine all mm2 orderbooks variations bids and asks such as:
KMD / USDC
KMD-BEP20 / USDC
KMD-ERC20 / USDC
KMD / USDC-ERC20
KMD / USDC-BEP20
and provide it as a call result
could you please check if it works on stage http://<IP_ADDRESS>:8080/api/v1/orderbook as expected?
if everything looks fine I'll update the production endpoint with these changes

http://<IP_ADDRESS>:8080/api/v1/orderbook/KMD_USDT-BEP20 has more orders then http://<IP_ADDRESS>:8080/api/v1/orderbook/KMD_USDT, KMD_USDT is the correct one, USDT-BEP20 contains some duplicates. coinpaprika will work fine though, they query KMD_USDT ;-)

http://<IP_ADDRESS>:8080/api/v1/orderbook/KMD_USDT-BEP20 has more orders then http://<IP_ADDRESS>:8080/api/v1/orderbook/KMD_USDT, KMD_USDT is the correct one, USDT-BEP20 contains some duplicates. coinpaprika will work fine though, they query KMD_USDT ;-)

thanks for the report! I think that fixed that behavior. now if one of the tickers in the query contains -ERC20 or -BEP20 I'm checking only one order book without permutations (that's to have a way to get order book for specific protocol tokens if needed)

looks good, thanks for the fix


Implement a hello-strongbox-ruby-gems example

We need a simple "Hello, World!"-styled application that illustrates:

The creation of a Ruby Gems package
Resolving Ruby Gems packages
Deploying Ruby Gems packages to Strongbox
A detailed step-by-step README.md illustrating how to configure things, as well as how to execute the steps above, along with actual successful output

The code should be located under the strongbox-examples project and it should be called strongbox-ruby-gems.
It would probably be helpful to have a look at how things have been done in the other examples under the strongbox-examples project.
This is a sub-task of #829. It should be relatively straight-forward to implement this and you should get acquainted with the master task, before proceeding. This task depends on #833, or should be implemented in parallel with it.

Can I still do this ? This will be my first issue

@theparselmouth ,
As explained above, this is a sub-task of #829. We don't have support for Gems yet. If you would like to implement Ruby Gems support as a whole, then let me know (but that's quite an undertaking). :)