网页打开502啊

  thunder:
    image: gngpp/xunlei:latest
    privileged: true
    container_name: thunder
    environment:
      XUNLEI_AUTH_USER: "xxx"
      XUNLEI_AUTH_PASSWORD: "xxx"
      UID: 1000
      GID: 1000
    ports:
      - 5055:5055
    volumes:
      - /mydata/Downloads/gngpp:/opt/data
      - /mydata/Downloads:/downloads
    restart: unless-stopped

```
```
INFO 2023-09-16 08:47:03: [Asset] LD_LIBRARY_PATH=/var/packages/pan-xunlei-com/target/host/lib
INFO 2023-09-16 08:47:03: [Asset] Real path of the symlink /lib64/ld-linux-x86-64.so.2: /var/packages/pan-xunlei-com/target/host/lib/ld-linux-x86-64.so.2
INFO 2023-09-16 08:47:03: [Asset] LD_LIBRARY_PATH=/var/packages/pan-xunlei-com/target/host/lib
INFO 2023-09-16 08:47:03: [XunleiLauncher] Start Xunlei Pannel UI, listening on <IP_ADDRESS>:5055
INFO 2023-09-16 08:47:03: [XunleiBackendServer] Mount /downloads to /xunlei succeeded
INFO 2023-09-16 08:47:03: [XunleiBackendServer] Start Xunlei Backend Server
INFO 2023-09-16 08:47:03: [XunleiBackendServer] Xunlei Backend Server PID: 58
2023-09-16 08:49:02.237764 UTC - GET / - 29.2us - 303
2023-09-16 08:49:02.265826 UTC - GET /login - 26.6us - 200
2023-09-16 08:49:02.360143 UTC - GET /js/sha3.min.js - 42.2us - 200
2023-09-16 08:49:03.054189 UTC - GET /favicon.ico - 26.6us - 303
2023-09-16 08:49:03.071404 UTC - GET /login - 33.7us - 200
2023-09-16 08:49:06.861270 UTC - POST /login - 52.4us - 303
2023-09-16 08:49:06.885475 UTC - GET / - 27.0us - 307
2023-09-16 08:49:06.908383 UTC - GET /webman/3rdparty/pan-xunlei-com/index.cgi/ - 96.0ms - 502

```

什么设备，什么系统，没有信息我就关了，docker跑没有问题

什么设备，什么系统，没有信息我就关了，docker跑没有问题

ubuntu22.04 docker启动

跑这个
docker run -it --rm --privileged -p 5055:5055 --name=xunlei \
  -e XUNLEI_AUTH_USER=xxx \
  -e XUNLEI_AUTH_PASSWORD=xxx \
  -e GID=1000 \
  -e UID=1000 \
  gngpp/xunlei:latest

docker run -it --rm --privileged -p 5055:5055 --name=xunlei
-e XUNLEI_AUTH_USER=xxx
-e XUNLEI_AUTH_PASSWORD=xxx
-e XUNLEI_GID=1000
-e XUNLEI_UID=1000
-e XUNLEI_DEBUG=true
gngpp/xunlei:latest

DEBUG 2023-09-16 09:07:10: [Asset] ldd --version stdout: musl libc (x86_64)
Version 1.2.4
Dynamic Program Loader
Usage: /lib/ld-musl-x86_64.so.1 [options] [--] pathname

DEBUG 2023-09-16 09:07:10: [Asset] Run on musl environment
DEBUG 2023-09-16 09:07:10: [Asset] ldd --version stdout: musl libc (x86_64)
Version 1.2.4
Dynamic Program Loader
Usage: /lib/ld-musl-x86_64.so.1 [options] [--] pathname

DEBUG 2023-09-16 09:07:10: [Asset] Run on musl environment
DEBUG 2023-09-16 09:07:10: [Asset] ldd stdout:  /lib64/ld-linux-x86-64.so.2 (0x7f47d4c79000)
        libpthread.so.0 => /lib64/ld-linux-x86-64.so.2 (0x7f47d4c79000)
        libc.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7f47d4c79000)

DEBUG 2023-09-16 09:07:10: [Asset] ldd stdout:  /lib64/ld-linux-x86-64.so.2 (0x7fa0a860e000)
        libpthread.so.0 => /lib64/ld-linux-x86-64.so.2 (0x7fa0a860e000)
        libc.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7fa0a860e000)

DEBUG 2023-09-16 09:07:10: [Asset] ldd stdout:  /lib64/ld-linux-x86-64.so.2 (0x7fa619937000)
        libpthread.so.0 => /lib64/ld-linux-x86-64.so.2 (0x7fa619937000)
        libc.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7fa619937000)

INFO 2023-09-16 09:07:10: [Asset] LD_LIBRARY_PATH=/var/packages/pan-xunlei-com/target/host/lib
INFO 2023-09-16 09:07:10: [XunleiBackendServer] Mount /downloads to /xunlei succeeded
INFO 2023-09-16 09:07:10: [XunleiBackendServer] Start Xunlei Backend Server
DEBUG 2023-09-16 09:07:10: [Asset] ldd stdout:  /lib64/ld-linux-x86-64.so.2 (0x7fc1c4fef000)
        libpthread.so.0 => /lib64/ld-linux-x86-64.so.2 (0x7fc1c4fef000)
        libc.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7fc1c4fef000)

INFO 2023-09-16 09:07:10: [Asset] Real path of the symlink /lib64/ld-linux-x86-64.so.2: /var/packages/pan-xunlei-com/target/host/lib/ld-linux-x86-64.so.2
INFO 2023-09-16 09:07:10: [Asset] LD_LIBRARY_PATH=/var/packages/pan-xunlei-com/target/host/lib
INFO 2023-09-16 09:07:10: [XunleiLauncher] Start Xunlei Pannel UI, listening on <IP_ADDRESS>:5055
DEBUG 2023-09-16 09:07:10: Server listening on <IP_ADDRESS>:5055
INFO 2023-09-16 09:07:10: [XunleiBackendServer] Xunlei Backend Server PID: 55
DEBUG 2023-09-16 09:07:10: Running accept thread
09/16 09:07:10.11 INFO loadenv from /var/packages/pan-xunlei-com/target
09/16 09:07:10.12 INFO [error={"Op":"open","Path":"/var/packages/pan-xunlei-com/target/envconfig","Err":2}&file=/var/packages/pan-xunlei-com/target/envconfig]read envconfig failed use default
09/16 09:07:10.12 INFO getEnvs succ DownloadPATH=/xunlei
09/16 09:07:10.12 INFO getEnvs succ DriveListen=unix:///var/packages/pan-xunlei-com/target/var/pan-xunlei-com.sock
09/16 09:07:10.12 INFO getEnvs succ ConfigPath=/opt/data
09/16 09:07:10.12 INFO [device_space=&config_path=/opt/data/.drive/]use config
09/16 09:07:10.12 INFO [device_space=&config_path=/opt/data/.drive/]use config
09/16 09:07:10.12 INFO [use_path=/opt/data/.drive/plugins&report=true]getPluginPATH
09/16 09:07:10.12 INFO [device_space=&config_path=/opt/data/.drive/]use config
09/16 09:07:10.12 INFO setDownloadAlias DriveFileMount :map[]
09/16 09:07:10.12 INFO config.init getEnvStrArray DownloadPATH:[/xunlei] len:1
09/16 09:07:10.12 INFO config.init init succ: &{isInit:true NasIDKey: NasId: NasSubIdKey: NasSubId: DeviceId: WorkDir: BinPath:/var/packages/pan-xunlei-com/target Platform: PathSplit:: DownloadPATHs:[/xunlei] TorrentPath: DriveFileMount:map[] PluginTokenDuration:5h0m0s PluginPATH:/opt/data/.drive/plugins AuthTokenPATH: DriveArgs: DrivePlayer: DriveListen:unix:///var/packages/pan-xunlei-com/target/var/pan-xunlei-com.sock DrivePortFile: DriveLogLevel:info DriveLogFile: DriveLogSize:10MB DriveLogFormat: DriveUpdate: DriveConfigPATH:/opt/data DrivePIDFile: DriveInfoFile: DrivePublicPort:21603 FreePortRange:[] FreePortRangeUDP:[] LauncherLogFile: LauncherLogSize: LauncherPIDFile: LauncherListen:<IP_ADDRESS>:5051 NfoIsDisable: RefreshTokenDuration:1h KvCacheDuration:24h0m0s TaskCfgPath: ScrapeCacheDuration:24h0m0s SyncWatchDogDuration:30m0s CachePATH: DeviceSpace: DeviceName: TLSInsecureSkipVerify:true ImportTask:true SingleTaskMaxMB:100 SingleTaskReserveMB:20 OverallShareMaxMB:200 ThirdAuthURL: PanCliEnv: GeneDBShadowFileDuration:24h DebugPrintFileEvents:[] GossipFile:/opt/data/.drive/gossip.json PluginWithBash:false Webhook:{Modules:map[] URL:} HostXluser:https://xluser-ssl.xunlei.com HostApiPan:https://api-pan.xunlei.com HostShoulei:https://api-shoulei-ssl.xunlei.com HostHighSpeedFlow:https://api-pan.xunlei.com EnableTaskCfg:true WebhookHealthzToken:}
09/16 09:07:10.12 INFO try to lock pid /var/packages/pan-xunlei-com/target/var/pan-xunlei-com.pid
09/16 09:07:10.12 INFO [device_space=&config_path=/opt/data/.drive/]use config
09/16 09:07:10.12 INFO copy varsion target not exists
09/16 09:07:10.12 INFO prepare binary error :open /opt/data/.drive/bin/.version: no such file or directory
09/16 09:07:10.12 ERROR loadHistory ReadFile err:open /opt/data/.drive/bin/.history: no such file or directory path:/opt/data/.drive/bin/.history
09/16 09:07:10.12 INFO launcher init
09/16 09:07:10.12 INFO write launcher pid to file /var/packages/pan-xunlei-com/target/var/pan-xunlei-com.pid 55
09/16 09:07:10.12 INFO use unix socket unix:///var/packages/pan-xunlei-com/target/var/pan-xunlei-com-launcher.sock
09/16 09:07:10.12 INFO start new version %s
09/16 09:07:10.12 ERROR version file is not writable
09/16 09:07:10.12 ERROR KillDrivePid ioutil.ReadFile err:open /var/packages/pan-xunlei-com/target/var/pan-xunlei-com.pid.child: no such file or directory
09/16 09:07:10.12 WARNING kill process error:open /var/packages/pan-xunlei-com/target/var/pan-xunlei-com.pid.child: no such file or directory
09/16 09:07:10.12 ERROR launcher file /opt/data/.drive/bin/xunlei-pan-cli..amd64 not executable
09/16 09:07:10.12 ERROR startVersion err:file not executable:  version:
09/16 09:07:10.12 ERROR start new version => err:file not executable:
09/16 09:07:10.12 WARNING launcher version error file not executable:  retry 1
09/16 09:07:10.12 INFO write launcher pid to file /var/packages/pan-xunlei-com/target/var/pan-xunlei-com.pid 55
2023-09-16 09:07:18.909544 UTC - GET / - 32.8us - 303
2023-09-16 09:07:18.940124 UTC - GET /login - 37.9us - 200
2023-09-16 09:07:19.049807 UTC - GET /js/sha3.min.js - 51.1us - 200
2023-09-16 09:07:19.721014 UTC - GET /favicon.ico - 25.9us - 303
2023-09-16 09:07:19.729818 UTC - GET /login - 35.3us - 200
2023-09-16 09:07:25.470032 UTC - POST /login - 154.0us - 303
2023-09-16 09:07:25.496631 UTC - GET / - 27.1us - 307
09/16 09:07:25.61 INFO loadenv from /var/packages/pan-xunlei-com/target
09/16 09:07:25.61 INFO [error={"Op":"open","Path":"/var/packages/pan-xunlei-com/target/envconfig","Err":2}&file=/var/packages/pan-xunlei-com/target/envconfig]read envconfig failed use default
09/16 09:07:25.61 INFO getEnvs succ DownloadPATH=/xunlei
09/16 09:07:25.61 INFO getEnvs succ DriveListen=unix:///var/packages/pan-xunlei-com/target/var/pan-xunlei-com.sock
09/16 09:07:25.61 INFO getEnvs succ ConfigPath=/opt/data
09/16 09:07:25.61 INFO [config_path=/opt/data/.drive/&device_space=]use config
09/16 09:07:25.61 INFO [device_space=&config_path=/opt/data/.drive/]use config
09/16 09:07:25.61 INFO [use_path=/opt/data/.drive/plugins&report=true]getPluginPATH
09/16 09:07:25.61 INFO [device_space=&config_path=/opt/data/.drive/]use config
09/16 09:07:25.61 INFO setDownloadAlias DriveFileMount :map[]
09/16 09:07:25.61 INFO config.init getEnvStrArray DownloadPATH:[/xunlei] len:1
09/16 09:07:25.61 INFO config.init init succ: &{isInit:true NasIDKey: NasId: NasSubIdKey: NasSubId: DeviceId: WorkDir: BinPath:/var/packages/pan-xunlei-com/target Platform: PathSplit:: DownloadPATHs:[/xunlei] TorrentPath: DriveFileMount:map[] PluginTokenDuration:5h0m0s PluginPATH:/opt/data/.drive/plugins AuthTokenPATH: DriveArgs: DrivePlayer: DriveListen:unix:///var/packages/pan-xunlei-com/target/var/pan-xunlei-com.sock DrivePortFile: DriveLogLevel:info DriveLogFile: DriveLogSize:10MB DriveLogFormat: DriveUpdate: DriveConfigPATH:/opt/data DrivePIDFile: DriveInfoFile: DrivePublicPort:21603 FreePortRange:[] FreePortRangeUDP:[] LauncherLogFile: LauncherLogSize: LauncherPIDFile: LauncherListen:<IP_ADDRESS>:5051 NfoIsDisable: RefreshTokenDuration:1h KvCacheDuration:24h0m0s TaskCfgPath: ScrapeCacheDuration:24h0m0s SyncWatchDogDuration:30m0s CachePATH: DeviceSpace: DeviceName: TLSInsecureSkipVerify:true ImportTask:true SingleTaskMaxMB:100 SingleTaskReserveMB:20 OverallShareMaxMB:200 ThirdAuthURL: PanCliEnv: GeneDBShadowFileDuration:24h DebugPrintFileEvents:[] GossipFile:/opt/data/.drive/gossip.json PluginWithBash:false Webhook:{Modules:map[] URL:} HostXluser:https://xluser-ssl.xunlei.com HostApiPan:https://api-pan.xunlei.com HostShoulei:https://api-shoulei-ssl.xunlei.com HostHighSpeedFlow:https://api-pan.xunlei.com EnableTaskCfg:true WebhookHealthzToken:}
09/16 09:07:25.61 INFO start detect platform
09/16 09:07:25.62 INFO Detector.Detect envPlatform:
09/16 09:07:25.62 ERROR DetectPlatform err:env PLATFORM=lexar:ea94acab567b9cc724e943be3e4ac5c5 not exist name:lexar
09/16 09:07:25.62 ERROR DetectPlatform err:stat /.dockerenv: no such file or directory name:docker
09/16 09:07:25.62 ERROR DetectPlatform err:env PLATFORM=zspace:a68b3d890b860d0165a8f6f66acc6d45 not exist name:zspace
09/16 09:07:25.62 INFO detect platform: synology X9ibISwpIp8jQ4Ya nasid: labels: [withQrcodeLogin withOtherAuthLogin withPlugin withPreviewPrivilege allowUseConfigPathAsCachePath withRootDiskSelect withInstallLocalPlugin withHighSpeedFlowCtrl withFetchFolder withSyncDriveFile withUserResetScrapeResult]
2023/09/16 09:07:25 Failed to dial: dial unix /var/packages/pan-xunlei-com/target/var/pan-xunlei-com.sock: connect: no such file or directory
2023/09/16 09:07:25 http: proxy error: dial unix /var/packages/pan-xunlei-com/target/var/pan-xunlei-com.sock: connect: no such file or directory
2023-09-16 09:07:25.549897 UTC - GET /webman/3rdparty/pan-xunlei-com/index.cgi/ - 71.6ms - 502
09/16 09:07:30.12 INFO start new version %s
09/16 09:07:30.12 ERROR KillDrivePid ioutil.ReadFile err:open /var/packages/pan-xunlei-com/target/var/pan-xunlei-com.pid.child: no such file or directory
09/16 09:07:30.12 WARNING kill process error:open /var/packages/pan-xunlei-com/target/var/pan-xunlei-com.pid.child: no such file or directory
09/16 09:07:30.12 ERROR launcher file /opt/data/.drive/bin/xunlei-pan-cli..amd64 not executable
09/16 09:07:30.12 ERROR startVersion err:file not executable:  version:
09/16 09:07:30.12 ERROR start new version => err:file not executable:
09/16 09:07:30.12 WARNING launcher version error file not executable:  retry 2
09/16 09:07:30.12 INFO write launcher pid to file /var/packages/pan-xunlei-com/target/var/pan-xunlei-com.pid 55
09/16 09:07:40.12 ERROR version file is not writable

docker暂时不能用gid uid，等我看看能不能修复

看了一下确实没东西
/rootfs # ls
bin        dev        etc        lib64      opt        root       sbin       tmp        var
boot       downloads  lib        mnt        proc       run        sys        usr        xunlei
/rootfs # ls /opt/data/
/rootfs # ls opt
data
/rootfs # ls opt/data
/rootfs #

我把

docker暂时不能用gid uid，等我看看能不能修复

好的，谢谢

docker暂时不能用gid uid，等我看看能不能修复

神奇，docker可以用，docker-compose还是502
docker-compose除过比docker多挂了目录外，也没有什么差异啊
docker run -it --rm --privileged -p 5055:5055 --name=xunlei1 \
  -e XUNLEI_AUTH_USER=xxx \
  -e XUNLEI_AUTH_PASSWORD=xxx \
  -e XUNLEI_DEBUG=true \
  gngpp/xunlei:latest

  thunder:
    image: gngpp/xunlei:latest
    privileged: true
    container_name: thunder
    environment:
      XUNLEI_AUTH_USER: "xxx"
      XUNLEI_AUTH_PASSWORD: "xxx"
      XUNLEI_DEBUG: true
    ports:
      - 5055:5055
    volumes:
      - /mydata/Downloads/gngpp:/opt/data
      - /mydata/Downloads:/downloads
    restart: unless-stopped

09/16 09:22:46.71 INFO get version list [] map[hour:9]
09/16 09:22:46.71 INFO create client unix:///var/packages/pan-xunlei-com/target/var/pan-xunlei-com.sock
2023-09-16 09:23:01.353691 UTC - GET / - 55.8us - 303
2023-09-16 09:23:01.385780 UTC - GET /login - 32.9us - 200
2023-09-16 09:23:01.408359 UTC - GET /js/sha3.min.js - 38.8us - 200
2023-09-16 09:23:02.019235 UTC - GET /favicon.ico - 26.2us - 303
2023-09-16 09:23:02.027264 UTC - GET /login - 26.5us - 200
09/16 09:23:06.5 INFO start new version %s3.11.2
09/16 09:23:06.5 ERROR KillDrivePid ioutil.ReadFile err:open /var/packages/pan-xunlei-com/target/var/pan-xunlei-com.pid.child: no such file or directory
09/16 09:23:06.5 WARNING kill process error:open /var/packages/pan-xunlei-com/target/var/pan-xunlei-com.pid.child: no such file or directory
09/16 09:23:06.5 ERROR launcher file /opt/data/.drive/bin/xunlei-pan-cli.3.11.2.amd64 not executable
09/16 09:23:06.5 ERROR startVersion err:file not executable: 3.11.2 version:3.11.2
09/16 09:23:06.5 ERROR start new version 3.11.2=>3.11.2 err:file not executable: 3.11.2
09/16 09:23:06.5 WARNING launcher version error file not executable: 3.11.2 retry 2
09/16 09:23:06.5 INFO write launcher pid to file /var/packages/pan-xunlei-com/target/var/pan-xunlei-com.pid 58
2023-09-16 09:23:08.996614 UTC - POST /login - 33.9us - 303
2023-09-16 09:23:09.025989 UTC - GET / - 29.5us - 307
09/16 09:23:09.1 INFO loadenv from /var/packages/pan-xunlei-com/target
09/16 09:23:09.1 INFO [error={"Op":"open","Path":"/var/packages/pan-xunlei-com/target/envconfig","Err":2}&file=/var/packages/pan-xunlei-com/target/envconfig]read envconfig failed use default
09/16 09:23:09.1 INFO getEnvs succ DownloadPATH=/xunlei
09/16 09:23:09.1 INFO getEnvs succ DriveListen=unix:///var/packages/pan-xunlei-com/target/var/pan-xunlei-com.sock
09/16 09:23:09.1 INFO getEnvs succ ConfigPath=/opt/data
09/16 09:23:09.1 INFO [device_space=&config_path=/opt/data/.drive/]use config
09/16 09:23:09.1 INFO [device_space=&config_path=/opt/data/.drive/]use config
09/16 09:23:09.1 INFO [report=true&use_path=/opt/data/.drive/plugins]getPluginPATH
09/16 09:23:09.1 INFO [device_space=&config_path=/opt/data/.drive/]use config
09/16 09:23:09.1 INFO setDownloadAlias DriveFileMount :map[]
09/16 09:23:09.1 INFO config.init getEnvStrArray DownloadPATH:[/xunlei] len:1
09/16 09:23:09.1 INFO config.init init succ: &{isInit:true NasIDKey: NasId: NasSubIdKey: NasSubId: DeviceId: WorkDir: BinPath:/var/packages/pan-xunlei-com/target Platform: PathSplit:: DownloadPATHs:[/xunlei] TorrentPath: DriveFileMount:map[] PluginTokenDuration:5h0m0s PluginPATH:/opt/data/.drive/plugins AuthTokenPATH: DriveArgs: DrivePlayer: DriveListen:unix:///var/packages/pan-xunlei-com/target/var/pan-xunlei-com.sock DrivePortFile: DriveLogLevel:info DriveLogFile: DriveLogSize:10MB DriveLogFormat: DriveUpdate: DriveConfigPATH:/opt/data DrivePIDFile: DriveInfoFile: DrivePublicPort:21603 FreePortRange:[] FreePortRangeUDP:[] LauncherLogFile: LauncherLogSize: LauncherPIDFile: LauncherListen:<IP_ADDRESS>:5051 NfoIsDisable: RefreshTokenDuration:1h KvCacheDuration:24h0m0s TaskCfgPath: ScrapeCacheDuration:24h0m0s SyncWatchDogDuration:30m0s CachePATH: DeviceSpace: DeviceName: TLSInsecureSkipVerify:true ImportTask:true SingleTaskMaxMB:100 SingleTaskReserveMB:20 OverallShareMaxMB:200 ThirdAuthURL: PanCliEnv: GeneDBShadowFileDuration:24h DebugPrintFileEvents:[] GossipFile:/opt/data/.drive/gossip.json PluginWithBash:false Webhook:{Modules:map[] URL:} HostXluser:https://xluser-ssl.xunlei.com HostApiPan:https://api-pan.xunlei.com HostShoulei:https://api-shoulei-ssl.xunlei.com HostHighSpeedFlow:https://api-pan.xunlei.com EnableTaskCfg:true WebhookHealthzToken:}
09/16 09:23:09.1 INFO start detect platform
09/16 09:23:09.1 INFO Detector.Detect envPlatform:
09/16 09:23:09.1 ERROR DetectPlatform err:env PLATFORM=lexar:ea94acab567b9cc724e943be3e4ac5c5 not exist name:lexar
09/16 09:23:09.1 ERROR DetectPlatform err:stat /.dockerenv: no such file or directory name:docker
09/16 09:23:09.1 ERROR DetectPlatform err:env PLATFORM=zspace:a68b3d890b860d0165a8f6f66acc6d45 not exist name:zspace
09/16 09:23:09.1 INFO detect platform: synology X9ibISwpIp8jQ4Ya nasid: labels: [withQrcodeLogin withOtherAuthLogin withPlugin withPreviewPrivilege allowUseConfigPathAsCachePath withRootDiskSelect withInstallLocalPlugin withHighSpeedFlowCtrl withFetchFolder withSyncDriveFile withUserResetScrapeResult]
2023/09/16 09:23:09 Failed to dial: dial unix /var/packages/pan-xunlei-com/target/var/pan-xunlei-com.sock: connect: no such file or directory
2023/09/16 09:23:09 http: proxy error: dial unix /var/packages/pan-xunlei-com/target/var/pan-xunlei-com.sock: connect: no such file or directory
2023-09-16 09:23:09.046747 UTC - GET /webman/3rdparty/pan-xunlei-com/index.cgi/ - 59.3ms - 502
09/16 09:23:11.3 INFO loadenv from /var/packages/pan-xunlei-com/target
09/16 09:23:11.3 INFO [file=/var/packages/pan-xunlei-com/target/envconfig&error={"Op":"open","Path":"/var/packages/pan-xunlei-com/target/envconfig","Err":2}]read envconfig failed use default
09/16 09:23:11.3 INFO getEnvs succ DownloadPATH=/xunlei
09/16 09:23:11.3 INFO getEnvs succ DriveListen=unix:///var/packages/pan-xunlei-com/target/var/pan-xunlei-com.sock
09/16 09:23:11.3 INFO getEnvs succ ConfigPath=/opt/data
09/16 09:23:11.3 INFO [device_space=&config_path=/opt/data/.drive/]use config
09/16 09:23:11.3 INFO [config_path=/opt/data/.drive/&device_space=]use config
09/16 09:23:11.3 INFO [report=true&use_path=/opt/data/.drive/plugins]getPluginPATH
09/16 09:23:11.3 INFO [config_path=/opt/data/.drive/&device_space=]use config
09/16 09:23:11.3 INFO setDownloadAlias DriveFileMount :map[]
09/16 09:23:11.31 INFO config.init getEnvStrArray DownloadPATH:[/xunlei] len:1
09/16 09:23:11.31 INFO config.init init succ: &{isInit:true NasIDKey: NasId: NasSubIdKey: NasSubId: DeviceId: WorkDir: BinPath:/var/packages/pan-xunlei-com/target Platform: PathSplit:: DownloadPATHs:[/xunlei] TorrentPath: DriveFileMount:map[] PluginTokenDuration:5h0m0s PluginPATH:/opt/data/.drive/plugins AuthTokenPATH: DriveArgs: DrivePlayer: DriveListen:unix:///var/packages/pan-xunlei-com/target/var/pan-xunlei-com.sock DrivePortFile: DriveLogLevel:info DriveLogFile: DriveLogSize:10MB DriveLogFormat: DriveUpdate: DriveConfigPATH:/opt/data DrivePIDFile: DriveInfoFile: DrivePublicPort:21603 FreePortRange:[] FreePortRangeUDP:[] LauncherLogFile: LauncherLogSize: LauncherPIDFile: LauncherListen:<IP_ADDRESS>:5051 NfoIsDisable: RefreshTokenDuration:1h KvCacheDuration:24h0m0s TaskCfgPath: ScrapeCacheDuration:24h0m0s SyncWatchDogDuration:30m0s CachePATH: DeviceSpace: DeviceName: TLSInsecureSkipVerify:true ImportTask:true SingleTaskMaxMB:100 SingleTaskReserveMB:20 OverallShareMaxMB:200 ThirdAuthURL: PanCliEnv: GeneDBShadowFileDuration:24h DebugPrintFileEvents:[] GossipFile:/opt/data/.drive/gossip.json PluginWithBash:false Webhook:{Modules:map[] URL:} HostXluser:https://xluser-ssl.xunlei.com HostApiPan:https://api-pan.xunlei.com HostShoulei:https://api-shoulei-ssl.xunlei.com HostHighSpeedFlow:https://api-pan.xunlei.com EnableTaskCfg:true WebhookHealthzToken:}
09/16 09:23:11.31 INFO start detect platform
09/16 09:23:11.31 INFO Detector.Detect envPlatform:
09/16 09:23:11.31 ERROR DetectPlatform err:env PLATFORM=lexar:ea94acab567b9cc724e943be3e4ac5c5 not exist name:lexar
09/16 09:23:11.31 ERROR DetectPlatform err:stat /.dockerenv: no such file or directory name:docker
09/16 09:23:11.31 ERROR DetectPlatform err:env PLATFORM=zspace:a68b3d890b860d0165a8f6f66acc6d45 not exist name:zspace
09/16 09:23:11.31 INFO detect platform: synology X9ibISwpIp8jQ4Ya nasid: labels: [withQrcodeLogin withOtherAuthLogin withPlugin withPreviewPrivilege allowUseConfigPathAsCachePath withRootDiskSelect withInstallLocalPlugin withHighSpeedFlowCtrl withFetchFolder withSyncDriveFile withUserResetScrapeResult]
2023/09/16 09:23:11 Failed to dial: dial unix /var/packages/pan-xunlei-com/target/var/pan-xunlei-com.sock: connect: no such file or directory
2023/09/16 09:23:11 http: proxy error: dial unix /var/packages/pan-xunlei-com/target/var/pan-xunlei-com.sock: connect: no such file or directory
2023-09-16 09:23:11.250559 UTC - GET /webman/3rdparty/pan-xunlei-com/index.cgi/ - 61.9ms - 502
09/16 09:23:16.76 INFO filter not match { false map[] map[] map[] <nil> null [{"match":["platform","in","synology","linux"]} {"matchAny":[{"match":["user_id","in","737602543","190725001","855720291","838406881","228546131","256148940","5860805431","284819130","278937470","252654726"]},{"match":["user_id","in","278937470","251044528","1326477","653746584","745324194","252007571","745522874","654875186","25253890","133695995","375430455","25804265","843492209","134161831","55983967","375792247","658718064","258066121","74963098","134528176","659207639","260855875","135104410","751667809","66034538","559986467","754462250","660650288","260877669","56047929","136467368","756134720","560822695","13806118","38027751","261879","660730427","560869895","846668351","138366959","3806579","26246396","663205553","382304565","263265951","565792994","138408429","663551705","3837170","56654045","138667816","386397157","666908145","760546507","56715105","139573347","387228","847842685","668285739","139615824","567572488","761132899","26533077","3882740","668369083","568147219","84789018","14141967","76177287","669559335","39064485","847975896","670248693","272888341","848075345","143069427","27751952","672354596","143195024","574342440","278344598","763350911","672920014","14335079","278686286","676101978","144380643","278780669","676581745","575074061","676784651","849656464","677937491","1460722","849700988","678120699","850908028","14712394","281791470","580976070","678210568","28481233","851160991","582733710","775849639","678454046","775899945","586553104","776091135","853813927","77655098","29133977","854044151","77725977","85422254","293376855","777391346","680517124","59003253","149226182","295146943","854580758","778855494","680684324","855864686","681698725","149551142","6839351","29910818","5907955","149568823","299118928","59080532","5920141","780378797","150151347","783023243","593727890","857727981","150923123","783799207","858352643","15104541","689454600","785084316","15162079","691433011","858724825","691450122","151757057","858804282","152412361","597433746","6934658","152798207","597748196","693701547","859737209","860838096","694518374","154429206","787038796","695096463","599202791","154566024","861443","154841259","788987956","789823123","699466866","861903182","155836122","789982589","6999250","156756996","793484472","600386","793942968","610548312","862609337","15732215","635128941","862711064","79527395","795999","15732916","862779483","15745623","862960395","798137558","157673776","863920468","158194120","864210946","729675206","158471779","864338858","74918811","15870457","865606400","158945686","865718956","866219400","159226055","867666809","159849917","16143277","161618970","868779659","161714106","16638399","167157442","868882986","868887595","169206049","169886970","170048760","170165706","870540606","170454658","170514114","870913744","171018712","871159001","171972268","871748726","17235751","872043655","175828671","176559342","17867919","872899086","873062865","873733043","180892741","181532944","875075675","182030320","875116304","182784813","875308673","1832519","184805877","875399191","875438145","18547287","875513083","18683633","876972659","877525059","878684431","878709858","19128861","191385262","879956668","880224750","19144734","19216040","193134569","19348965","1978577","842131721","199107636","133267483","374909133","843174624","74778934","37823704","758432258","758975487","264732756","846709448","399110424","569792974","848596545","574701799","849193927","765349025","14452542","769524980","28158740","575296802","772872424","852583400","148756392","289196984","679475228","587998669","29796648","779160549","150112123","857694532","68908476","593981996","859444979","788693302","861597887","15499015","697750275","868905005","176969531","872105712","1853176","88214810"]}]}] []} map[hour:9]
09/16 09:23:16.76 INFO filter not match { false map[] map[] map[] <nil> null [{"match":["platform","in","synology","linux"]} {"matchAny":[{"match":["user_id","notIn","0"]}]}] []} map[hour:9]
09/16 09:23:16.76 INFO filter not match { false map[] map[] map[] <nil> null [{"match":["platform","in","synology","linux"]} {}] []} map[hour:9]
09/16 09:23:16.76 INFO filter not match { false map[] map[] map[] <nil> null [{"match":["platform","in","synology","linux"]} {"matchAny":[{"match":["user_id","notIn","0"]}]}] []} map[hour:9]
09/16 09:23:16.77 INFO filter not match { false map[] map[] map[] <nil> null [{"match":["platform","in","synology","linux"]} {"matchAny":[{"match":["user_id","in","540961191","168781425","398665435","743319635","8429088","877014517","86895216","127756923","41964005","114693321","659337124","349298120","35990661","1144807","536452810","278870368","55394038","307967428","640673357","76776030","763572","565200880","583484080","437154734","1910576","17161539","798151967","783826598","604659258","711308568","201746240","735634294","857168549","214775467","19534985","729884237","108601202","44934962","689744503","132334460","31870193","908759377","729273695","268843875","273238339","49242803","902971234","193816487","736041666","143574668","67287476","521718616","6895553","483898904","98660563","154767383","34310099","906874439","831730296","648003382","318129722","461334120","136687764","2843172","6004206","442688643","582309189","41556936","9224233","822203146","16705190","901138077","824108608","575124466","198391346","908562843","686646297","113128923","776839094","906385593","172973122","578892294","6768079","183966095","559168683","901079268","755906084","150912706","209523598","127896335","862193274","731066191","705984211","1081914","715121579","869306548","742629215","1239633","797541711","494101764","253112095","568876317","848928716","135729400","14606471","17457649","338605158","641871109","83630627","735303174","9573373","738833337","825771537","80418662","612237238","79429612","802184276","897219480","270162265","43127894","549395916","293101160","71162873","789913402","75398982","898176240","320418816","20889233","896270362","559685687","9192","94815946","602050601","13392458","2217458","698759","157664760","894732536","825922690","10485280","20053537","27584633","583117398","666305052","63856748","903597162","82564572","830681621","111642007","751800539","146640080","37779494","3246100","34943171","713556172","883533288","355588127","624005897","831191644","664499721","97573882","70399","871114017","12287698","680381821","771343932","824165422","30720397","532649741","782296611","606174089","10746824","760239363","222265423","890283878","75542443","903904405","662427606","19481418","298074097","811035879","172847969","833098122","408359793","747640360","366590570","347608923","98123018","280768788","860969296","580697390","460425667","119687245","75024698","204184545","896405524","217672787","397757517","256428030","207443558","823296560","273953360","94872186","744546011","631358943","31099703","264071","86449092","692968250","618447581","855745930","312556981","742588151","14866861","769909839","793632632","597407173","224762184","601442902","131894874","74160043","251140780","129606338","745724017","21354353","631760231","10877981","904560103","11195956","16668869","730262744","167485326","553903361","738043413","9100074","378812389","310017591","12497371","462603091","834940346","154618075","61674","871870794","15094115","243607185","696631356","116026090","712042048","695222733","69463010","549180703","149173096","225151923","599122522","824345306","649198419","7199654","399142132","14963822","362668375","260258858","18406989","258312687","877488228","143291337","62770441","149385845","883966524","48317609","1133434","377013654","103860673","831414806","157455396","853155280","823927124","46605199","535093249","693952883","889639012","759939960","26250234","802916950","836979972","874890506","48014879","694333287","889077436","898124287","662772275","532384228","538946212","741652262","745932280","640335721","172002146","700682651","553900700","68256785","671456023","766127308","613218553","775343324","896461716","9739936","158175085","116700430","94670127","579018543","47532445","631320457","46480654","746939892","592008822","690165508","227785372","5118225","735980970","906723987","804875531","62089952","771667537","27635068","782876271","38044","836657616","874231666","822086323","590031569","5199264","2832915","11146998","55890682","43580699","597987619","790093975","589910620","76885683","867143323","702434945","245285316","835495","4141896","6953553","769848676","3058442","413459062","1946209","748188117","574790170","864359232","19292450","309151274","880964113","36626886","672493957","38662048","28730370","13934521","28565691","106255681","131685537","859871549","25535194","838673700","168690842","850627672","50648451","760399583","541285898","43848769","833699856","223741881","838406881","907423926","879807012","863540931","722995145","849474040","847402587","215026407","908068848","69376841","675536243","291117064","159950286","10819322","725818596","5485760","830953525","166153311","741493087","907707962","699509648","23051772","397884196","143595146","724198602","743061244","81825810","908625133","864802979","569639840","722624276","158084690","843841685","29475890","658499599","798535442","606174089","60654863","808842470","8583714","8078690","709690576","6842068","398838291","695304137","588627869","549245858","7249834","6669343","38942378","610411452","776848782","208287870","25660971","35655496","60481318","23581917","260202228","201816176","512006184","228546131","807012255","577941302","123369008","573771831","158240418","170909015","654168053","704145285","335518056","1133321","417271815","659388728","218524038","363342771","842483212","878212472","662671098","629835882","541906519","13915635","204771353","5011175","128418167","67155728","129821324","593003830","205339429","257769727","825922690","850031412","515786241","140018549","602903008","621346534","641871109","29610078","281791470","95459043","627858792","669785391","805088738","638149799","53838597","641958233","825771537","909495731","12451964","627110384","812513769","55995891","147476024","85202776","485175225","531738525","5221757","303288253","566283037","129284991","546816194","1540772","832784785","720581136","676171426","133365804","830853889","777090955","654546813","713072193","866079432","900124100","228732797","742254287","535371579","33925172","908871279","263632241","680403716","641871109","14724646","49811737","309321150","295780325","516055565","701277493","408359793","22260143","673996858","287226414","291921479","4055748","37712032","578954365"]}]}] []} map[hour:9]
09/16 09:23:16.77 INFO filter not match { false map[] map[] map[] <nil> null [{"match":["platform","in","synology","linux"]} {"matchAny":[{"match":["user_id","notIn","0"]}]}] []} map[hour:9]
09/16 09:23:16.77 INFO filter not match { false map[] map[] map[] <nil> null [{"match":["platform","in","synology","linux"]}] []} map[hour:9]
09/16 09:23:16.77 INFO filter not match { false map[] map[] map[] <nil> null [{"match":["platform","in","synology","linux"]} {"matchAny":[{"match":["client_version","in","0"]}]}] []} map[hour:9]
09/16 09:23:16.77 INFO filter not match { false map[] map[] map[] <nil> null [{"match":["platform","in","synology","linux"]} {"matchAny":[{"match":["client_version","notIn","0"]}]}] []} map[hour:9]
09/16 09:23:16.77 INFO filter not match { false map[] map[] map[] <nil> null [{"match":["platform","in","synology","linux"]} {"matchAny":[{"match":["client_version","notIn","0"]}]}] []} map[hour:9]
09/16 09:23:16.77 INFO filter not match { false map[] map[] map[] <nil> null [{"match":["platform","in","synology","linux"]} {"matchAny":[{"match":["client_version","notIn","0"]}]}] []} map[hour:9]
09/16 09:23:16.77 INFO filter not match { false map[] map[] map[] <nil> null [{"match":["platform","in","synology","linux"]} {"match":["hour","in","5","6","7","8"]} {"matchAny":[{"match":["user_id","in","737602543","827350621","728680263"]},{"match":["user_id","in","111642007","701875897","838406881"]},{"match":["user_id","hasSuffix","6"]},{"match":["user_id","hasSuffix","7"]},{"match":["user_id","hasSuffix","8"]},{"match":["user_id","hasSuffix","9"]}]}] []} map[hour:9]
09/16 09:23:16.77 INFO get version list [] map[hour:9]
09/16 09:23:36.5 INFO start new version %s3.11.2
09/16 09:23:36.5 ERROR KillDrivePid ioutil.ReadFile err:open /var/packages/pan-xunlei-com/target/var/pan-xunlei-com.pid.child: no such file or directory
09/16 09:23:36.5 WARNING kill process error:open /var/packages/pan-xunlei-com/target/var/pan-xunlei-com.pid.child: no such file or directory
09/16 09:23:36.5 ERROR launcher file /opt/data/.drive/bin/xunlei-pan-cli.3.11.2.amd64 not executable
09/16 09:23:36.5 ERROR startVersion err:file not executable: 3.11.2 version:3.11.2
09/16 09:23:36.5 ERROR start new version 3.11.2=>3.11.2 err:file not executable: 3.11.2
09/16 09:23:36.5 WARNING launcher version error file not executable: 3.11.2 retry 3
09/16 09:23:36.5 INFO write launcher pid to file /var/packages/pan-xunlei-com/target/var/pan-xunlei-com.pid 58
09/16 09:24:16.5 INFO start new version %s3.11.2
09/16 09:24:16.5 ERROR KillDrivePid ioutil.ReadFile err:open /var/packages/pan-xunlei-com/target/var/pan-xunlei-com.pid.child: no such file or directory
09/16 09:24:16.5 WARNING kill process error:open /var/packages/pan-xunlei-com/target/var/pan-xunlei-com.pid.child: no such file or directory
09/16 09:24:16.5 ERROR launcher file /opt/data/.drive/bin/xunlei-pan-cli.3.11.2.amd64 not executable
09/16 09:24:16.5 ERROR startVersion err:file not executable: 3.11.2 version:3.11.2
09/16 09:24:16.5 ERROR start new version 3.11.2=>3.11.2 err:file not executable: 3.11.2
09/16 09:24:16.5 WARNING launcher version error file not executable: 3.11.2 retry 4
09/16 09:24:16.5 INFO write launcher pid to file /var/packages/pan-xunlei-com/target/var/pan-xunlei-com.pid 58
2023-09-16 09:24:55.763668 UTC - GET / - 67.5us - 303
2023-09-16 09:24:55.771122 UTC - GET /login - 42.6us - 200
2023-09-16 09:24:55.823723 UTC - GET /js/sha3.min.js - 53.1us - 200
2023-09-16 09:24:55.906673 UTC - GET /favicon.ico - 23.3us - 303
2023-09-16 09:24:55.908508 UTC - GET /login - 29.8us - 200
2023-09-16 09:25:01.187104 UTC - POST /login - 145.7us - 303
2023-09-16 09:25:01.194647 UTC - GET / - 22.9us - 307
09/16 09:25:01.26 INFO loadenv from /var/packages/pan-xunlei-com/target
09/16 09:25:01.26 INFO [error={"Op":"open","Path":"/var/packages/pan-xunlei-com/target/envconfig","Err":2}&file=/var/packages/pan-xunlei-com/target/envconfig]read envconfig failed use default
09/16 09:25:01.26 INFO getEnvs succ DownloadPATH=/xunlei
09/16 09:25:01.26 INFO getEnvs succ DriveListen=unix:///var/packages/pan-xunlei-com/target/var/pan-xunlei-com.sock
09/16 09:25:01.26 INFO getEnvs succ ConfigPath=/opt/data
09/16 09:25:01.26 INFO [device_space=&config_path=/opt/data/.drive/]use config
09/16 09:25:01.26 INFO [config_path=/opt/data/.drive/&device_space=]use config
09/16 09:25:01.26 INFO [report=true&use_path=/opt/data/.drive/plugins]getPluginPATH
09/16 09:25:01.26 INFO [config_path=/opt/data/.drive/&device_space=]use config
09/16 09:25:01.26 INFO setDownloadAlias DriveFileMount :map[]
09/16 09:25:01.26 INFO config.init getEnvStrArray DownloadPATH:[/xunlei] len:1
09/16 09:25:01.26 INFO config.init init succ: &{isInit:true NasIDKey: NasId: NasSubIdKey: NasSubId: DeviceId: WorkDir: BinPath:/var/packages/pan-xunlei-com/target Platform: PathSplit:: DownloadPATHs:[/xunlei] TorrentPath: DriveFileMount:map[] PluginTokenDuration:5h0m0s PluginPATH:/opt/data/.drive/plugins AuthTokenPATH: DriveArgs: DrivePlayer: DriveListen:unix:///var/packages/pan-xunlei-com/target/var/pan-xunlei-com.sock DrivePortFile: DriveLogLevel:info DriveLogFile: DriveLogSize:10MB DriveLogFormat: DriveUpdate: DriveConfigPATH:/opt/data DrivePIDFile: DriveInfoFile: DrivePublicPort:21603 FreePortRange:[] FreePortRangeUDP:[] LauncherLogFile: LauncherLogSize: LauncherPIDFile: LauncherListen:<IP_ADDRESS>:5051 NfoIsDisable: RefreshTokenDuration:1h KvCacheDuration:24h0m0s TaskCfgPath: ScrapeCacheDuration:24h0m0s SyncWatchDogDuration:30m0s CachePATH: DeviceSpace: DeviceName: TLSInsecureSkipVerify:true ImportTask:true SingleTaskMaxMB:100 SingleTaskReserveMB:20 OverallShareMaxMB:200 ThirdAuthURL: PanCliEnv: GeneDBShadowFileDuration:24h DebugPrintFileEvents:[] GossipFile:/opt/data/.drive/gossip.json PluginWithBash:false Webhook:{Modules:map[] URL:} HostXluser:https://xluser-ssl.xunlei.com HostApiPan:https://api-pan.xunlei.com HostShoulei:https://api-shoulei-ssl.xunlei.com HostHighSpeedFlow:https://api-pan.xunlei.com EnableTaskCfg:true WebhookHealthzToken:}
09/16 09:25:01.26 INFO start detect platform
09/16 09:25:01.26 INFO Detector.Detect envPlatform:
09/16 09:25:01.26 ERROR DetectPlatform err:env PLATFORM=lexar:ea94acab567b9cc724e943be3e4ac5c5 not exist name:lexar
09/16 09:25:01.26 ERROR DetectPlatform err:stat /.dockerenv: no such file or directory name:docker
09/16 09:25:01.26 ERROR DetectPlatform err:env PLATFORM=zspace:a68b3d890b860d0165a8f6f66acc6d45 not exist name:zspace
09/16 09:25:01.26 INFO detect platform: synology X9ibISwpIp8jQ4Ya nasid: labels: [withQrcodeLogin withOtherAuthLogin withPlugin withPreviewPrivilege allowUseConfigPathAsCachePath withRootDiskSelect withInstallLocalPlugin withHighSpeedFlowCtrl withFetchFolder withSyncDriveFile withUserResetScrapeResult]
2023/09/16 09:25:01 Failed to dial: dial unix /var/packages/pan-xunlei-com/target/var/pan-xunlei-com.sock: connect: no such file or directory
2023/09/16 09:25:01 http: proxy error: dial unix /var/packages/pan-xunlei-com/target/var/pan-xunlei-com.sock: connect: no such file or directory
2023-09-16 09:25:01.199605 UTC - GET /webman/3rdparty/pan-xunlei-com/index.cgi/ - 63.3ms - 502
09/16 09:25:06.5 INFO start new version %s3.11.2
09/16 09:25:06.5 ERROR KillDrivePid ioutil.ReadFile err:open /var/packages/pan-xunlei-com/target/var/pan-xunlei-com.pid.child: no such file or directory
09/16 09:25:06.5 WARNING kill process error:open /var/packages/pan-xunlei-com/target/var/pan-xunlei-com.pid.child: no such file or directory
09/16 09:25:06.5 ERROR launcher file /opt/data/.drive/bin/xunlei-pan-cli.3.11.2.amd64 not executable
09/16 09:25:06.5 ERROR startVersion err:file not executable: 3.11.2 version:3.11.2
09/16 09:25:06.5 ERROR start new version 3.11.2=>3.11.2 err:file not executable: 3.11.2
09/16 09:25:06.5 WARNING launcher version error file not executable: 3.11.2 retry 5
09/16 09:25:06.5 INFO write launcher pid to file /var/packages/pan-xunlei-com/target/var/pan-xunlei-com.pid 58


Synthetics push command doesn't detect changes in imported files

Agent Version:  1.3.0
Summary
When using the push command, Synthetics CLI doesn't react to code changes in the imported files, e.g.
import { journey, step, monitor, expect } from '@elastic/synthetics';
import { prepare } from '../helpers/helpers';

journey('Journey Name', ({ page, params }) => {
  step('Step 01', async () => {
    await prepare(page);
  });

  ...
});

for the above journey, any changes in the prepare will not mark the monitor as edited and push will not push the updated monitor to Kibana, unless the journey file itself is modified.
Steps to reproduce

Create an example journey in a Synthetics CLI project.
In one of the steps, make a valid operation inside a helper method imported from an outer file e.g. ../helpers/helpers'.
Push the monitor viaSYNTHETICS_API_KEY=<API-KEY> npm run push

Make a change in the imported helper method and push again.
You'll notice that the changes in the helper method won't be pushed as the modification is not detected by the CLI. If there were no other modifications, CLI will show: > Monitor Diff: Added(0) Updated(0) Removed(0) Unchanged(1)

Expected behavior
Any change in any imported file should mark that journey file as modified, even if the journey file isn't changed. Or if possible, mark only those journeys as modified which are consumers of imported components that have been modified.

Post-FF Testing LGTM
Added an import from an external file to my example project monitor file:


Onboard clients only if they are on same version as provider

Operator major and minor version of client and provider should match for onboarding process to begin
After this commit older clients will fail to get onboarded

Testing:
=== ClientOperatorVersion is not provider, older clients
# grpcurl -d '{"consumerName": "d1344bdd-ce33-4b55-a5b7-0ca41d8b8e46", "onboardingTicket": "eyJp[...]FRY="}' --insecure <IP_ADDRESS>:50051 provider.OCSProvider.OnboardConsumer
ERROR:
  Code: InvalidArgument
  Message: malformed ClientPlatformVersion for client "d1344bdd-ce33-4b55-a5b7-0ca41d8b8e46" is provided. Version string empty

=== ClientOperatorVersion is empty, incorrect data
# grpcurl -d '{"consumerName": "d1344bdd-ce33-4b55-a5b7-0ca41d8b8e46", "clientOperatorVersion": "", "onboardingTicket": "eyJp[...]FRY="}' --insecure <IP_ADDRESS>:50051 provider.OCSProvider.OnboardConsumer
ERROR:
  Code: InvalidArgument
  Message: malformed ClientPlatformVersion for client "d1344bdd-ce33-4b55-a5b7-0ca41d8b8e46" is provided. Version string empty

=== ClientOperatorVersion minor version mismatch, provider is running on 4.15.0
# grpcurl -d '{"consumerName": "d1344bdd-ce33-4b55-a5b7-0ca41d8b8e46", "clientOperatorVersion": "4.14.3", "onboardingTicket": "eyJp[...]FRY="}' --insecure <IP_ADDRESS>:50051 provider.OCSProvider.OnboardConsumer
ERROR:
  Code: InvalidArgument
  Message: both major and minor version of server and client "d1344bdd-ce33-4b55-a5b7-0ca41d8b8e46" should match for onboarding process

=== Supported ODF Client
# grpcurl -d '{"consumerName": "d1344bdd-ce33-4b55-a5b7-0ca41d8b8e46", "clientOperatorVersion": "4.15.3", "onboardingTicket": "eyJp[...]FRY="}' --insecure <IP_ADDRESS>:50051 provider.OCSProvider.OnboardConsumer
{
  "storageConsumerUUID": "e69e0e07-3de5-45ca-97e7-255c1d371b0e"
}

@leelavg This PR got merged before a reviewer with proper context around provider mode could review it.
I can see 2 options here:

we will leave comments on this PR and you will address them in another PR
Have another PR based on Main~1 which will include the changes to this PR and any changes on top. In this case, we need to be very careful to do proper rebasing before merging.

Please do the needed
FYI @iamniting


Disable Certain Dates/Days

Is your feature request related to a problem? Please describe.
I am trying to get it to allow specific Hours/Minutes/Seconds, disable the rest
Describe the solution you'd like
Passing an array of disabled Hours/Minutes/Seconds like:
disableTimes = { hours: [1, 2, 3, 4, 5, 6, 7, 8], minutes: [20, 25] };
//or
enableTimes = { hours: [9, 10, 11, 12], minutes: [0, 15, 30, 45] };

Additional context
Imagine we are trying to make reservation for a restaurant, the backend returns the times that they are free, and only allows the user to select those free days/hours

So you want to disable days or some period of time?

So, let's say I only work form 9-5, it's pointless to allow the user to select 4 AM and then tell them 'it needs to be in this time-frame'
my idea is mostly being able to disable certain dates, I won't work on the 25 of December, why allow the user to pick it in the first place. or, I already have a meeting at 3, don't allow that time to be selected

@AxelAli you can disable any day by custom shouldDisableDate function passed to the date or datetime picker.

@dmtrKovalenko Hi,
so we have this situation that we disabled all the weekends and holidays. However user can still type in an invalid date. And if they do so, once you open the picker it will be automatically picked at 2100/1/1. Is there any solution/suggestion about this issue? Thanks.

@dmtrKovalenko Hi,
so we have this situation that we disabled all the weekends and holidays. However user can still type in an invalid date. And if they do so, once you open the picker it will be automatically picked at 2100/1/1. Is there any solution/suggestion about this issue? Thanks.

I actually found the solution. When using shouldDisableDate prop, we better add a mindate, because it will become the default fallback date.
Its cause by the findClosestEnabledDate in https://github.com/dmtrKovalenko/material-ui-pickers/blob/develop/lib/src/_helpers/date-utils.ts
the function will compare the invalid date with minDate(defaulted to 1900/1/1) and maxDate(defaulted to 2100/1/1) and return the closet one.

Ok, I will take a look on that today

I suspect the mindate issue here is the same as #823 ?
I am running into the min/max time issue here as well, for pretty much the same use case (reservation system). I see a two extra complexities:

the minimum and maximum possible times are not the same for every day, so I need the ability to derive them from the week day. This would either require a callback for a DateTimePicker to determine minTime and maxTime after date selection, or use of separate date and time pickers.
I may have time slots in the middle of the day that are fully booked, so I need the ability to disable specific time intervals. I'm not sure what kind of hooks would be needed to handle this cleanly. I may just end up using a selection dropdown which only lists available time slots instead of using a TimePicker.

Issue is not replicable. For disable certain dates use shouldDisableDate for time there is #519


Continue to use content after exception PhantomJS

When running the PhantomJS command below and reviewing the content of temp file. I would like to ignore the exception and work with the content that was stored in temp file. The HTML in there has the content I am looking for.
Please advise.
Thank you!
Exception in thread "StreamConsumer-STDOUT" com.norconex.commons.lang.io.StreamException: Problem consuming input stream.
        at com.norconex.commons.lang.io.InputStreamConsumer.run(InputStreamConsumer.java:102)
Caused by: java.io.IOException: Stream closed
        at java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:170)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:336)
        at java.io.FilterInputStream.read(FilterInputStream.java:107)
        at com.norconex.commons.lang.io.InputStreamConsumer.run(InputStreamConsumer.java:97)
ERROR [SystemCommand] Command returned with exit value 143 (command properly escaped?). Command: /opt/phantomjs-2.1.1-linux-x86_64/bin/phantomjs --ssl-protocol=any --ignore-ssl-errors=true --web-security=false --cookies-file=/tmp/cookies.txt --load-images=false /opt/crawler/scripts/phantom.js https://voordeelvloeren-c005d.web.app/klantenservice/retourneren/ /tmp/1607605936369000000 3000 -1 https   1.0 Error: ""
ERROR [PhantomJSDocumentFetcher] PhantomJS:
  ReferenceError: Can't find variable: fetch
INFO  [PhantomJSDocumentFetcher] PhantomJS:
  ERROR TypeError: undefined is not a constructor (evaluating '_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵpureFunction0"](2, _c0).includes(link_r1.type)')

    https://voordeelvloeren-c005d.web.app/vendor-es5.js:26884 in defaultErrorLogger

Your page has PhantomJS return an exit value of 1.  A non-zero exit value is considered an error and the page is rejected.
I just deployed a new 2.9.1-SNAPSHOT release that adds the ability to specify which exit values should be considered "valid".  I tried your page with the following addition to the PhantomJSDocumentFetcher and it worked just fine:
<validExitCodes>0,1</validExitCodes>

Please try and confirm.

Pascal, thank you for getting back to me.
Not sure why return codes are different, but on my machine it was 143. So I added this to config and the good news is the crawler finished. The bad news is that is seems to be missing the tmp file.
Spidex: 2020-12-14 13:15:32 INFO - PhantomJS screenshot enabled: false
Spidex: 2020-12-14 13:15:34 ERROR - Command returned with exit value 143 (command properly escaped?). Command: /opt/phantomjs-2.1.1-linux-x86_64/bin/phantomjs --ssl-protocol=any --ignore-ssl-errors=true --web-security=false --cookies-file=/tmp/cookies.txt --load-images=false /opt/crawler/scripts/phantom.js https://voordeelvloeren-c005d.web.app/klantenservice/retourneren/ /tmp/1607951732879000000 3000 -1 https   1.0 30000 Error: ""
Spidex: 2020-12-14 13:15:34 ERROR - PhantomJS:
ReferenceError: Can't find variable: fetch
Spidex: 2020-12-14 13:15:34 INFO - PhantomJS:
ERROR TypeError: undefined is not a constructor (evaluating 'angular_core__WEBPACK_IMPORTED_MODULE_0_["ɵɵpureFunction0"](2, _c0).includes(link_r1.type)')
https://voordeelvloeren-c005d.web.app/vendor-es5.js:26884 in defaultErrorLogger

https://www.gstatic.com/firebasejs/7.21.1/firebase-performance-standalone.js:1 in requiredApisAvailable
https://www.gstatic.com/firebasejs/7.21.1/firebase-performance-standalone.js:1 in fn
https://www.gstatic.com/firebasejs/7.21.1/firebase-performance-standalone.js:1 in hn
https://www.gstatic.com/firebasejs/7.21.1/firebase-performance-standalone.js:1
https://www.gstatic.com/firebasejs/7.21.1/firebase-performance-standalone.js:1 in getOrInitializeService
https://www.gstatic.com/firebasejs/7.21.1/firebase-performance-standalone.js:1 in getImmediate

Spidex: 2020-12-14 13:15:44 ERROR - Cannot fetch document: https://voordeelvloeren-c005d.web.app/klantenservice/retourneren/ (/tmp/1607951732879000000 (No such file or directory))
Spidex: 2020-12-14 13:15:44 INFO - Spidex:            REJECTED_ERROR: https://voordeelvloeren-c005d.web.app/klantenservice/retourneren/ (com.norconex.collector.core.CollectorException: java.io.FileNotFoundException: /tmp/1607951732879000000 (No such file or directory))
Spidex: 2020-12-14 13:15:44 INFO - Spidex: Could not process document: https://voordeelvloeren-c005d.web.app/klantenservice/retourneren/ (java.io.FileNotFoundException: /tmp/1607951732879000000 (No such file or directory))
Spidex: 2020-12-14 13:15:44 INFO - Spidex: DOCUMENT_COMMITTED_REMOVE: https://voordeelvloeren-c005d.web.app/klantenservice/retourneren/
Spidex: 2020-12-14 13:15:44 INFO - Spidex: 100% completed (1 processed/1 total)

That's interesting.  I had that error a few times and it seemed intermittent.  When I run it with the debugger (pausing at each line around where it writes that file) the file is always there.  That leads me to believe PhantomJS sometimes returns before that file is written (when I debug that gives it time while I pause).  I made the crawler re-look for that missing file every 0.5 seconds for up to 10 seconds and it fixed it for me (that's been added to the code as well).
I wonder if one of the reasons could be the page has not finished rendering when it returns, which could be caused due to timeouts being reached.  Look at timeout options and see if increasing them significantly changes anything.
If that does not change anything for you, we'll have to look deeper into why this happens.

For me it is constant. I raised timeout to
`  300000
600000
This made no difference.

@OkkeKlein, do you still have the issue?  I just tried and now I get a 404 when trying to access the page directly, so I cannot reproduce.  Were there some changes done to the site?

@OkkeKlein, do you still have the issue?  I just tried and now I get a 404 when trying to access the page directly, so I cannot reproduce.  Were there some changes done to the site?

Yes @essiembre I still need a fix. The domain moved to production.
Thank you and best wishes.

Yes @essiembre I still need a fix. The domain moved to production.
Thank you and best wishes.

Hello @OkkeKlein, I am getting a "Not Found" error from PhantomJS, which seems accurate since I get the same thing in my browser, as per the attached picture.

Has the page disappeared? Do you have another URL that I can use to reproduce the original issue?

Hello @OkkeKlein, I am getting a "Not Found" error from PhantomJS, which seems accurate since I get the same thing in my browser, as per the attached picture.

Has the page disappeared? Do you have another URL that I can use to reproduce the original issue?

@essiembre The URL works for me. Maybe the developer was working on it.
Please try again. Or try https://voordeelvloeren-development.web.app/klantenservice as an alternative.

@essiembre The URL works for me. Maybe the developer was working on it.
Please try again. Or try https://voordeelvloeren-development.web.app/klantenservice as an alternative.

I tried with both URLs and they are no longer failing.   On the other hand, what I get for content is:
Please enable JavaScript to continue using this application.

The PhantomJS logs have this:
ReferenceError: Can't find variable: globalThis

It seems it has trouble interpreting the JavaScript on your page.  This is a recurrent issue (increasing in frequency).  PhantomJS has not been updated in quite a while (it is no longer supported by its authors).  It can be too dated already.  Some people have created polyfills to help with JavaScript interpreter issues on more recent JavaScript versions/libraries, but at some point, I fear there is a limit to how the old PhantomJS can be hacked to maintain it compatible with newer sites.
I think your options are getting more and more limited with PhantomJS.  You can try to research workarounds by injecting scripts that help with the page rendering, or you can try with HTTP Collector v3.
HTTP Collector v3 has native browser support (chrome, firefox, etc.).  It is available for download but not "officially" released yet (snapshot releases only), so using it depends on your comfort level.
Another approach is to create your own IHttpDocumentFetcher which would use a local browser or some other javascript interpreter.  At that point though, it is probably easier to migrate to v3.
Finally, you can try the PhantomJS support community at https://github.com/ariya/phantomjs/issues but I am not sure how active it is.

I tried with both URLs and they are no longer failing.   On the other hand, what I get for content is:
Please enable JavaScript to continue using this application.

The PhantomJS logs have this:
ReferenceError: Can't find variable: globalThis

It seems it has trouble interpreting the JavaScript on your page.  This is a recurrent issue (increasing in frequency).  PhantomJS has not been updated in quite a while (it is no longer supported by its authors).  It can be too dated already.  Some people have created polyfills to help with JavaScript interpreter issues on more recent JavaScript versions/libraries, but at some point, I fear there is a limit to how the old PhantomJS can be hacked to maintain it compatible with newer sites.
I think your options are getting more and more limited with PhantomJS.  You can try to research workarounds by injecting scripts that help with the page rendering, or you can try with HTTP Collector v3.
HTTP Collector v3 has native browser support (chrome, firefox, etc.).  It is available for download but not "officially" released yet (snapshot releases only), so using it depends on your comfort level.
Another approach is to create your own IHttpDocumentFetcher which would use a local browser or some other javascript interpreter.  At that point though, it is probably easier to migrate to v3.
Finally, you can try the PhantomJS support community at https://github.com/ariya/phantomjs/issues but I am not sure how active it is.

OK. Because the content changed since I created this issue. It is hard to replicate. But the issue originally (that you confirmed oh the 15th of December) was not with PhantomJS but the fact that the collector could not find the temp file anymore. The temp file at that time contained the content I needed.
I have been experimenting with version 3 and webdriver. I installed chrome 87 and the matching chromedriver, but while chromedriver seems to start fine ```
Starting ChromeDriver 87.0.4280.88 (89e2380a3e36c3464b5dd1302349b1382549290d-refs/branch-heads/4280@{#1761}) on port 25050
Only local connections are allowed.
Chrome itself is not  `(The process started from chrome location /opt/google/chrome/chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)`

I also tried to get Firefox working with geckodriver, but that also didnt work.

It is very likely I am doing something wrong. If so please let me know.

Feel free to close this issue, as the original issue can't be replicated anymore.

OK. Because the content changed since I created this issue. It is hard to replicate. But the issue originally (that you confirmed oh the 15th of December) was not with PhantomJS but the fact that the collector could not find the temp file anymore. The temp file at that time contained the content I needed.
I have been experimenting with version 3 and webdriver. I installed chrome 87 and the matching chromedriver, but while chromedriver seems to start fine ```
Starting ChromeDriver 87.0.4280.88 (89e2380a3e36c3464b5dd1302349b1382549290d-refs/branch-heads/4280@{#1761}) on port 25050
Only local connections are allowed.
Chrome itself is not  `(The process started from chrome location /opt/google/chrome/chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)`

I also tried to get Firefox working with geckodriver, but that also didnt work.

It is very likely I am doing something wrong. If so please let me know.

Feel free to close this issue, as the original issue can't be replicated anymore.

OK, I could not reproduce the original issue once I applied my fix to it (but you kept having it).  If it pops up again, feel free to reopen, or create a new ticket.

OK, I could not reproduce the original issue once I applied my fix to it (but you kept having it).  If it pops up again, feel free to reopen, or create a new ticket.


Created the tutorials.rst file

Added a user guide for tutorials in tutorials.rst file
Updated components.rst file

Updated the tutorials.rst file and added some text files.

Fixing them....

Fixed the typos in the text files.

Added the tutorial_performancesettings.txt file

Fixed typos in performance text file.


[mtl] fix index buffer range check

Another silly thing that wasn't covered by release testing.
PR checklist:

[ ] make succeeds (on *nix)
[ ] make reftests succeeds
[ ] tested examples with the following backends:
[ ] rustfmt run on changed code

bors r=wgpu


Remove AppsAndFeaturesEntries from HydrusNetwork.HydrusNetwork v520

Microsoft Reviewers: Open in CodeFlow

URL:
Invalid URI: The hostname could not be parsed.
(Automated message - build 891)


TreeMap.remove() leaves tree in inconsistent state

TreeMap.remove() sometimes deletes extra nodes.  Patch forthcoming.

See pull request https://github.com/konsoletyper/teavm/pull/113

Can you provide a sequence of operations that causes this bug?

TreeMap<Double,Double> tm = new TreeMap<Double,Double>();
        for (double year = 1910; year <= 2010; year +=10) {
            tm.put(new Double(year), new Double(year));
        }
        for (double year = 1910; year <= 2010; year +=10) {
            System.out.println("Removing "+year);
            Double removed = tm.remove(new Double(year));
            System.out.println("Removed: "+removed);
            tm.put(new Double(year), new Double(year+1));
            System.out.println("Is 2000 still there?: "+tm.get(new Double(2000)));
        }

Output:
[EDT] 0:0:0,322 - Removing 1910.0
getData:1697 [EDT] 0:0:0,325 - Removed: 1910.0
getData:1697 [EDT] 0:0:0,328 - Is 2000 still there?: 2000.0
getData:1697 [EDT] 0:0:0,330 - Removing 1920.0
getData:1697 [EDT] 0:0:0,331 - Removed: 1920.0
getData:1697 [EDT] 0:0:0,335 - Is 2000 still there?: 2000.0
getData:1697 [EDT] 0:0:0,337 - Removing 1930.0
getData:1697 [EDT] 0:0:0,339 - Removed: 1930.0
getData:1697 [EDT] 0:0:0,341 - Is 2000 still there?: 2000.0
getData:1697 [EDT] 0:0:0,342 - Removing 1940.0
getData:1697 [EDT] 0:0:0,344 - Removed: 1940.0
getData:1697 [EDT] 0:0:0,346 - Is 2000 still there?: 2000.0
getData:1697 [EDT] 0:0:0,347 - Removing 1950.0
getData:1697 [EDT] 0:0:0,349 - Removed: 1950.0
getData:1697 [EDT] 0:0:0,352 - Is 2000 still there?: 2000.0
getData:1697 [EDT] 0:0:0,354 - Removing 1960.0
getData:1697 [EDT] 0:0:0,356 - Removed: 1960.0
getData:1697 [EDT] 0:0:0,357 - Is 2000 still there?: null
getData:1697 [EDT] 0:0:0,359 - Removing 1970.0
getData:1697 [EDT] 0:0:0,362 - Removed: 1970.0
getData:1697 [EDT] 0:0:0,365 - Is 2000 still there?: null
getData:1697 [EDT] 0:0:0,367 - Removing 1980.0
getData:1697 [EDT] 0:0:0,369 - Removed: 1980.0
getData:1697 [EDT] 0:0:0,371 - Is 2000 still there?: null
getData:1697 [EDT] 0:0:0,373 - Removing 1990.0
getData:1697 [EDT] 0:0:0,375 - Removed: 1990.0
getData:1697 [EDT] 0:0:0,377 - Is 2000 still there?: null
getData:1697 [EDT] 0:0:0,379 - Removing 2000.0
getData:1697 [EDT] 0:0:0,381 - Removed: null
getData:1697 [EDT] 0:0:0,383 - Is 2000 still there?: 2001.0
getData:1697 [EDT] 0:0:0,385 - Removing 2010.0
getData:1697 [EDT] 0:0:0,388 - Removed: null
getData:1697 [EDT] 0:0:0,390 - Is 2000 still there?: 2001.0

This output shows that removing 1960 caused 2000 to be removed as well.

Thank you! Now I have a change to reproduce and fix this

Check out the changes I made inside pollFirstEntry() and pollLastEntry() also.  This test case doesn't expose the problem, but it's easy to see that this changes needs to be made by looking at the code.
(If deleteNode() is called without assigning the return value, there is a case where no deletion will occur at all - and possibly other strange results).

I just tried another build in my app, and I'm still seeing problems with the TreeMap after your changes (I don't think this is related to pollFirstEntry() and pollLastEntry() - it is still a problem with deleteNode().
I'll try to narrow it down to a small test case.

TreeMap<Double,Double> tm = new TreeMap<Double,Double>();
        for (double year = 1910; year <= 2010; year +=10) {
            tm.put(new Double(year), new Double(year));
        }
        for (double year = 1910; year <= 2010; year +=10) {
            System.out.println("Size before removal: "+tm.size());
            System.out.println("Removing "+year);
            Double removed = tm.remove(new Double(year));
            System.out.println("Size after removal: "+tm.size());
            System.out.println("Removed: "+removed);
            tm.put(new Double(year), new Double(year+1));
            System.out.println("Is 2000 still there?: "+tm.get(new Double(2000)));
            System.out.println("Size after reinsertion: "+tm.size());
        }

Output:

 Removing 1910.0
 Size after removal: 11
 Removed: 1910.0
 Is 2000 still there?: 2000.0
 Size after reinsertion: 11
 Size before removal: 11
 Removing 1920.0
 Size after removal: 11
 Removed: 1920.0
 Is 2000 still there?: 2000.0
 Size after reinsertion: 11
 Size before removal: 11
 Removing 1930.0
 Size after removal: 11
 Removed: 1930.0
 Is 2000 still there?: 2000.0
 Size after reinsertion: 11
 Size before removal: 11
 Removing 1940.0
 Size after removal: 10
 Removed: 1940.0
 Is 2000 still there?: 2000.0
 Size after reinsertion: 11
 Size before removal: 11
 Removing 1950.0
 Size after removal: 10
 Removed: 1950.0
 Is 2000 still there?: 2000.0
 Size after reinsertion: 11
 Size before removal: 11
 Removing 1960.0
 Size after removal: 10
 Removed: 1960.0
 Is 2000 still there?: 2000.0
 Size after reinsertion: 11
 Size before removal: 11
 Removing 1970.0
 Size after removal: 10
 Removed: 1970.0
 Is 2000 still there?: 2000.0
 Size after reinsertion: 11
 Size before removal: 11
 Removing 1980.0
 Size after removal: 10
 Removed: 1980.0
 Is 2000 still there?: 2000.0
 Size after reinsertion: 11
 Size before removal: 11
 Removing 1990.0
 Size after removal: 11
 Removed: 1990.0
 Is 2000 still there?: 2000.0
 Size after reinsertion: 11
 Size before removal: 11
 Removing 2000.0
 Size after removal: 11
 Removed: 2000.0
 Is 2000 still there?: 2001.0
 Size after reinsertion: 11
 Size before removal: 11
 Removing 2010.0
 Size after removal: 11
 Removed: 2010.0
 Is 2000 still there?: 2001.0
 Size after reinsertion: 11

This shows that for some removals (e.g. 1990), the size is not updated correctly.

What if you use integer instead of double? Does the bug persist?

Yes.  The issue is that "fix()" needs to be called in certain places upon deletion or the node size is not updated and propagated up to the root.  I think I have a fix.. I'm just testing it now.

OK.  This latest pull request fixes this issue.

I made one more change. Could you please test against it?

Tested and works fine.  I have another small issue with EntryIterator that occurs when the owner's root node is null.. basically just need a null check in the constructor.  Will push fix once I've tested it.


fixing a typo in CIDR

This is not correct. The tutorial is already correct. Your proposal gives us a /24, which with the default --node-cidr-mask-size of 24 gives one subnet, which would mean one node.

thanks


Split streams

Implemented the split option cf #1, also included a small bug fix for disposing a spawn subscription w/o options.

This is a great PR - thanks for submitting it!  Published as 0.2.0


Benchmark Java Binding.

          > By the way, I would strongly recommend to substitute the JNI implementation (com.risingwave.java.binding.Binding) of serialization/deserialization for a pure Java implementation.

I think before we decide to substitute the implementation we may need some benchmark to see if the cost of JNI call is significant. @idx0-dev Could you make a testing on it?
Originally posted by @wenym1 in https://github.com/risingwavelabs/risingwave/issues/8914#issuecomment-1491566100

Write some test in this branch: feat/stream_chunk_benchmark:

Test data: construct 500k rows. Each row has 10 items: short, int, long, float, double, bool, string, timestep, decimal, null
ArrayList Test: Using ArrayList to construct and get data. In average, it will spend 10 ms.
StreamChunk Test: construct payload and get data. In average, it will spend 2300ms. For StreamChunk Construction, it will spend 1000-2000ms.

Try more tests:
Remove the String, TimeStamp, and Decimal those object data types. Only left short, int, long, float, double, bool

For Array List, it still spends 10 ms. The log out for running the test 10 times:

Time elapsed: 9 milliseconds
Time elapsed: 10 milliseconds
Time elapsed: 8 milliseconds
Time elapsed: 10 milliseconds
Time elapsed: 8 milliseconds
Time elapsed: 10 milliseconds
Time elapsed: 8 milliseconds
Time elapsed: 10 milliseconds
Time elapsed: 9 milliseconds
Time elapsed: 9 milliseconds

For Stream Chunk, it will spend 300ms. The log out for running the test 10 times:

Time elapsed: 358 milliseconds
Time elapsed: 336 milliseconds
Time elapsed: 334 milliseconds
Time elapsed: 361 milliseconds
Time elapsed: 358 milliseconds
Time elapsed: 344 milliseconds
Time elapsed: 508 milliseconds
Time elapsed: 347 milliseconds
Time elapsed: 348 milliseconds
Time elapsed: 361 milliseconds

Code for ArrayList:

import java.util.ArrayList;
public class Test {
    static int loopTime = 500000;
    public static ArrayList<Object> myFunction(int index) {
        short v1 = (short) index;
        int v2 = (int) index;
        long v3 = (long) index;
        float v4 = (float) index;
        double v5 = (double) index;
        boolean v6 = index % 3 == 0;
        String v7 = "'"
                + new String(new char[(index % 10) + 1])
                        .replace("\0", String.valueOf(index))
                + "'";
        String v8 = "to_timestamp(" + index + ")";
        int v9 = index;
        Integer mayNull = null;
        ArrayList<Object> rowData = new ArrayList<>();
        rowData.add(v1);
        rowData.add(v2);
        rowData.add(v3);
        rowData.add(v4);
        rowData.add(v5);
        rowData.add(v6);
        rowData.add(v7);
        rowData.add(v8);
        rowData.add(v9);
        rowData.add(mayNull);
        return rowData;
    }

    public static double processRowData(ArrayList<Object> rowData) {
        short value1 = (short) rowData.get(0);
        int value2 = (int) rowData.get(1);
        long value3 = (long) rowData.get(2);
        float value4 = (float) rowData.get(3);
        double value5 = (double) rowData.get(4);
        boolean value6 = (boolean) rowData.get(5);
        // String value7 = (String) rowData.get(6);
        // String value8 = (String) rowData.get(7);
        // int value9 = (int) rowData.get(8);
        Integer mayNull = (Integer) rowData.get(9);
        return value1 + value2 + value3 + value4 + value5;
    }

    public static void main(String[] args) {
        // Start measuring the time
        ArrayList<ArrayList<Object>> data = new ArrayList<>();
        for (int i = 0; i < loopTime; i++) {
            data.add(myFunction(i));
        }
        for (int t = 0; t < 10; t++) {
            long startTime = System.currentTimeMillis();
            // Call your function here
            for (int i = 0; i < loopTime; i++) {
                processRowData(data.get(i));
            }
            // Stop measuring the time
            long endTime = System.currentTimeMillis();

            // Calculate the time elapsed
            long elapsedTime = endTime - startTime;

            // Print the elapsed time
            System.out.println("Time elapsed: " + elapsedTime + " milliseconds");
        }
    }
}

If you want to test StreamChunk, remember to change row countlet row_count = 500000; in data-chunk-payload-generator.rs  file
Code for StreamChunk:
package com.risingwave.java.binding;

import java.io.IOException;

public class StreamChunkDemo {
    public static double getValue(StreamChunkRow rowData) {
        short value1 = (short) rowData.getShort(0);
        int value2 = (int) rowData.getInt(1);
        Long value3 = (Long) rowData.getLong(2);
        float value4 = (float) rowData.getFloat(3);
        double value5 = (double) rowData.getDouble(4);
        boolean value6 = (boolean) rowData.getBoolean(5);
        // String value7 = (String) rowData.getString(6);
        // java.sql.Timestamp value8 = (java.sql.Timestamp) rowData.getTimestamp(7);
        // int value9 = rowData.getDecimal(8).intValue();
        boolean mayNull = rowData.isNull(9);
        return value1 + value2 + value3 + value4 + value5;
    }

    public static void main(String[] args) throws IOException {
        byte[] payload = System.in.readAllBytes();
        for (int t = 0; t < 10; t++) {
            StreamChunkIterator iter = new StreamChunkIterator(payload);
            long startTime = System.currentTimeMillis();
            while (true) {
                try (StreamChunkRow row = iter.next()) {
                    if (row == null) {
                        break;
                    }
                    getValue(row);
                }
            }
            long endTime = System.currentTimeMillis();
            long elapsedTime = endTime - startTime;
            System.out.println("Time elapsed: " + elapsedTime + " milliseconds");
        }
    }
}

@yufansong With https://github.com/risingwavelabs/risingwave/pull/10229, the java binding can be run without any extra setting. Do you mind modifying the benchmark code to integrate with JMH so that we can easily run the benchmark to do performance improvement? You may refer to https://nickolasfisher.com/blog/How-to-Benchmark-Java-Code-Using-JUnit-and-JMH

@yufansong With #10229, the java binding can be run without any extra setting. Do you mind modifying the benchmark code to integrate with JMH so that we can easily run the benchmark to do performance improvement? You may refer to https://nickolasfisher.com/blog/How-to-Benchmark-Java-Code-Using-JUnit-and-JMH

Sure, I will check it.


Dropped items not visible

Is it a mod compatibility issue?
Yes
Minecraft version
1.19.4
Describe the issue
As the warning in game said - I have probably found some kind of incompatibility between Immersive Portals and my other mods.
The issue is that the dropped items do not render/appear. I can pick them up, but they do not show up on the ground.
Here's the full log: https://mclo.gs/mZgV0ub
Disabling Immersive Portals fixes the issue

Does this issue occur without Iris?

Maybe related to this https://github.com/iPortalTeam/ImmersivePortalsMod/issues/1332


[Feature Request] Change to SUSE brands

AutoK3s UI needs to be changed to the SUSE brand.

button

tab label

dropdown hover bg

Verify on v0.7.0-rc1

button
tab label
dropdown hover bg
form: border and label change color if input focus
nav font size and spacing adjustment

All verification passed


link is not working

https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/training-with-deep-learning/tensorboard/tensorboard.ipynb

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 650239f8-0c0f-aeca-a8ff-f74a03b15e61
Version Independent ID: 3bbf5d1a-0be8-e8a9-318b-71dfcdc336bf
Content: Distributed training of deep learning models on Azure
Content Source: docs/reference-architectures/ai/training-deep-learning.md
Service: architecture-center
Sub-service: reference-architecture
GitHub Login: @msalvaris
Microsoft Alias: pnp

Thanks for reporting. Will look into it.

@msalvaris Any updates on this ?

AB#160242 - Thanks for reporting - this issue is under review

@jmertens1, thanks for pointing this out.  The link has been updated.


Update .gitattributes

This PR is a follow-up on #109212.
This PR will ensure that .md files at the root of the directory aren't included in language statistics:
ie.:

CODE_OF_CONDUCT.md
SECURITY.md
ThirdPartyNotices.md

This is consistent with other important documentation repos such as the MDN documentation repo where they exclude .md files at the root one-by-one.

@tynevi @markjulmar - update to a root directory file
Can you review the proposed changes?
Important: When the changes are ready for publication, adding a #sign-off comment is the best way to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

If you have any questions, please let me know.
Btw, this is similar to what is in place for vscode-docs : https://github.com/microsoft/vscode-docs/blob/main/.gitattributes
Also note that I'm planning to make that change for all other MicrosoftDocs repo where it applies.

I'm going to close this PR for now, but @DecimalTurn you can reopen it and/or continue the conversation by addressing @markjulmar 's question here: https://github.com/MicrosoftDocs/azure-docs/pull/124136#issuecomment-2355955552
thanks!

I don't think we should make this change here since this is a mirror of a private repo. Config changes like this need to be made to the primary repo and would then propagate to this copy.

I'm a bit surprised since this didn't come up in the previous PR (https://github.com/MicrosoftDocs/azure-docs/pull/109212). However, if there is a better way to make that change across all MicrosoftDocs repos that doesn't have to go through the GitHub PR process, that would indeed make things easier.

can you tell me why this would be helpful for the repo? I understand what it does, I'm trying to better understand the value for these headless CMS repos.

I think it is helpful to reduce confusion for a new contributor that sees the repo for the first time on GitHub. Before the change in my previous PR, they would have seen that it's a PowerShell repo and they might think that it only stores scripts related to the documentation website and not the actual markdown content itself. I personally was first confused by this the first time I interacted with one of MicrosoftDocs repos.
Note that this PR is a minor tweak to follow good practices, so the change won't be noticable since it is already detected as 99.99% markdown. I just wanted to make sure the configurations here are optimal before suggesting other repos to adopt it in case this makes a difference for smaller repos.

@Jak-MS I think I've addressed the questions related to this PR. Can we reopen it or should I create an issue instead and let the team do it on their end?

@DecimalTurn - reopened, but whether we can merge the changes is up to @markjulmar .... perhaps they were already made in the private azure-docs-pr repo?
@markjulmar - thoughts? please add #sign-off if you approve or @mention me in your review comment. thanks!

Declining - Any config changes will be handled internally if prioritized.


Clicking the hash link quickly shows this warning.

Warning: Hash history cannot PUSH the same path; a new entry will not be added to the history stack.

This is from the history library and is being discussed here: ReactTraining/history#470


drop assertion compatibility function?  Fix assert_in_list to avoid dummy variable?

Since you mentioned dropping compatibility functions I assume there's no reason to keep assertion() around.
Also, assert_in_list bugs me because it forces the use of dummy variables, which are not necessary with the regular assert() call.  It seems like this should be reworked so that the in_list error can be asserted without the dummy variable by passing something to assert() instead of having the function do the work.   (Doing this will presumably also get rid of duplicated code in the module vs function.)

Removed assertion()

Also removed the duplicate code in module assert_in_lint()


[fix] polyfill object.fromEntries.

object.fromEntries arrived in node in 12.0.0

Yeah very strange.. I though this was totally fine to use but apparently not :S


T distributed errors nathan

Hi @donotdespair ,
Here is my pull request for my contribution to the 'Student t Errors' section of the collaborative repository.
I have included the following points as requested:

Motivation for t-distributed errors
Presentation of the scale mixture representation
Full conditionals for the parameters
Gibbs sampler including extension

Thanks!

Hey @nathanh93
This is such a good submission! Thank you so much! All is correct and the section is comprevensive! Fantastic!
Greetings, T


ask help for the codeclone dataset

great work! I need some help of your codeclone dataset. If you do not mind spend a little time and help me figure out it , I will be very appreciated to you. I download it by the "scripts/download_data.py" in your repo (codeclone/full_data.json.gz) , but I do not know wether it is the dataset used in "4.1 Evaluating Functionality and Robustness: Zero-shot Code Clone Detection" in your paper. I see the "split" function in "representjs/clone_detection.py", so I'm confused... And for the 2065 pairs you mention in your paper, ( also in 4.1) , is it from the same dataset? and how to get it? If you do not mind spend a little time and help me figure out it , I will be very appreciated to you.

@LeeSureman I haven't been following the issues on this project, but I would love to help. Are you still facing these issues when running the code?
I'm looking into the dataset we uploaded as full_data.json.gz and it does seem to be incompatible with clone_detection.py.

I apologize for the delay in reply!

Thank you for your response. We needed to compare your model on the codeclonedetection task when we submit our paper to ACL 2022. Finally we cancel the comparison. But we will still consider your model and your released dataset in future work.

Best of luck with your submission! Closing this issue, but please email or reopen the PR if needed.


feat: add blog post about React render engine

Description
As in title.
Related issue(s)
Resolves https://github.com/asyncapi/website/issues/172

@jonaslagoni Applied :) Thanks for review!

@jonaslagoni Applied :) Thanks for review!

@magicmatatjahu @jonaslagoni on it

@magicmatatjahu @jonaslagoni on it

@fmvilas Thanks for review :) I changed to underscore.string example.

@fmvilas Thanks for review :) I changed to underscore.string example.


Not able to spin pokestops or catch lured pokemon.

Bot log states that every pokestop is out of range and it wont catch lured pokemon stating : "Possibly searching too often taking rest" This starts after 1 hour of running the bot

Not enough debug information. I'm closing this and you can reopen when you add more informaion.

For example
`Python: 2016-08-07 18:38:25,764 [  SpinFort] [INFO] [pokestop_out_of_range] Pokestop 2nd Street Angel out of range.
Python: 2016-08-07 18:38:25,764 [  SpinFort] [INFO] [pokestop_searching_too_often] Possibly searching too often, take a rest.
`
It constantly gives me these two messages after running the bot for an hour, regardless of which pokestop I'm currently at

Only solution is to log out and log back in