java.lang.IllegalStateException: Handler (android.location.LocationManager$GnssStatusListenerTransport$GnssHandler) {7798ff5} sending message to a Handler on a dead thread

I have this class on my project which returns the location of the device. When I ran it on the android emulator there is no problem in getting the current location, also when I'm using other physical devices with dual sim. But when I ran it on my RedMi Note 7 which has dual sim network, it's not working, I tried to disable the other sim, restarted the phone, also I've toggled the airplane mode on and off, it worked but only once, I can't figure out what the problem is. I also saw an exception using the ADB logcat. See below
class LocationService {
  final DialogService _dialogService = locator<DialogService>();
  Position _currentPos;
  Position get currentPos => _currentPos;
  Geolocator geolocator = Geolocator()..forceAndroidLocationManager = true;
  Future getCurrentLocation() async {
    try {
      if(await Permission.location.isDenied || await Permission.location.isPermanentlyDenied || await Permission.location.isRestricted ||await Permission.location.isUndetermined ) {
        await Permission.locationAlways.request();
        _currentPos = await geolocator.getCurrentPosition(desiredAccuracy: LocationAccuracy.best);
        print(_currentPos);
      } else {
        _currentPos = await geolocator.getCurrentPosition(desiredAccuracy: LocationAccuracy.best);
        print(_currentPos);
      }
    } catch (e) {
      await _dialogService.showDialog(
        title: 'Location Access Denied',
        description: 'You can turn on your device\'s location on your phone\'s settings.',
      );
      return null;
    }

  }

  void showToast(message) {
    Fluttertoast.showToast(
      msg: message,
      toastLength: Toast.LENGTH_SHORT,
      gravity: ToastGravity.BOTTOM,
      timeInSecForIosWeb: 1,
      backgroundColor: Colors.red,
      textColor: Colors.white,
      fontSize: 16.0,
    );
  }
}

[√] Flutter (Channel stable, 1.20.2, on Microsoft Windows [Version 10.0.19041.329], locale en-US)
    • Flutter version 1.20.2 at D:\Utilities\flutter
    • Framework revision bbfbf1770c (6 days ago), 2020-08-13 08:33:09 -0700
    • Engine revision 9d5b21729f
    • Dart version 2.9.1

[√] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at C:\Users\Development\AppData\Local\Android\sdk
    • Platform android-29, build-tools 29.0.3
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
    • All Android licenses accepted.

[√] Android Studio (version 4.0)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin version 46.0.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)

[√] VS Code (version 1.48.0)
    • VS Code at C:\Users\Development\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.13.2

[√] Connected device (2 available)
    • Redmi Note 7 (mobile)        • 12acda02      • android-arm64 • Android 10 (API 29)
    • AOSP on IA Emulator (mobile) • emulator-5554 • android-x86   • Android 9 (API 28) (emulator)

• No issues found!

08-19 21:42:37.218  3713  3999 I NetworkLocationManager: start get current Location
08-19 21:42:37.219  3713  3713 I MetokLocationProvider: report position from 2
08-19 21:42:37.493 23005 23005 I subsystem_ramdump: Usage:./system/bin/subsystem_ramdump [arg1] [arg2] [arg3]
08-19 21:42:37.493 23005 23005 I subsystem_ramdump: [arg1]: (1/2) Ramdump location: 1: eMMC: /data/vendor/ramdump or 2: SD card: /sdcard/ramdump
08-19 21:42:37.493 23005 23005 I subsystem_ramdump: [arg2]: (1/0) 1: Enable RPM log / 0: Disable RPM log
08-19 21:42:37.493 23005 23005 I subsystem_ramdump: [arg3]: (1/0) 1: Enable qdss ramdump / 0: Disable qdss ramdump
08-19 21:42:37.493 23005 23005 I subsystem_ramdump:  Using default ramdump location 1: eMMC: /data/vendor/ramdump
08-19 21:42:37.483 23005 23005 W subsystem_ramdu: type=1400 audit(0.0:3860): avc: denied { read } for name="enable_ramdumps" dev="sysfs" ino=25533 scontext=u:r:vendor_subsystem_ramdump:s0 tcontext=u:object_r:sysfs:s0 tclass=file permissive=0
08-19 21:42:37.493 23005 23005 I subsystem_ramdump:  Using default 0: Disable RPM log
08-19 21:42:37.493 23005 23005 I subsystem_ramdump:  Using default 0: Disable qdss ramdump
08-19 21:42:37.493 23005 23005 E subsystem_ramdump: Unable to open /sys/module/subsystem_restart/parameters/enable_ramdumps
08-19 21:42:37.516  4500  5810 W MessageQueue: Handler (android.location.LocationManager$GnssStatusListenerTransport$GnssHandler) {7798ff5} sending message to a Handler on a dead thread
08-19 21:42:37.516  4500  5810 W MessageQueue: java.lang.IllegalStateException: Handler (android.location.LocationManager$GnssStatusListenerTransport$GnssHandler) {7798ff5} sending message to a Handler on a dead thread
08-19 21:42:37.516  4500  5810 W MessageQueue:  at android.os.MessageQueue.enqueueMessage(MessageQueue.java:561)
08-19 21:42:37.516  4500  5810 W MessageQueue:  at android.os.Handler.enqueueMessage(Handler.java:754)
08-19 21:42:37.516  4500  5810 W MessageQueue:  at android.os.Handler.sendMessageAtTime(Handler.java:703)
08-19 21:42:37.516  4500  5810 W MessageQueue:  at android.os.Handler.sendMessageDelayed(Handler.java:673)
08-19 21:42:37.516  4500  5810 W MessageQueue:  at android.os.Handler.sendMessage(Handler.java:611)
08-19 21:42:37.516  4500  5810 W MessageQueue:  at android.os.Message.sendToTarget(Message.java:474)
08-19 21:42:37.516  4500  5810 W MessageQueue:  at android.location.LocationManager$GnssStatusListenerTransport.onSvStatusChanged(LocationManager.java:1779)
08-19 21:42:37.516  4500  5810 W MessageQueue:  at android.location.IGnssStatusListener$Stub.onTransact(IGnssStatusListener.java:142)
08-19 21:42:37.516  4500  5810 W MessageQueue:  at android.os.Binder.execTransactInternal(Binder.java:1021)
08-19 21:42:37.516  4500  5810 W MessageQueue:  at android.os.Binder.execTransact(Binder.java:994)
08-19 21:42:37.734  1941  1975 D HBMFeatureControl: light lux=33.0
08-19 21:42:37.737  2145  2558 D NetworkController.MobileSignalController(1): 4G level = 5
08-19 21:42:37.936  1941  1975 D HBMFeatureControl: light lux=38.0

@loooookiezxc going on the stack trace this seems to be an OS issue. The device's has acquired a location and tried to send it back to the App but encounters a dead thread.
Is the App running in the background? Maybe you can try with our latest release candidate which has different logic on processing the location updates. And it will specifically assign the main thread to the location fetching process.

Hi @mvanbeusekom, thanks for the response. But this is just the log on the startup of the app where it checks if the current location of the device is inside a google map radius. I am not getting the location in the background. Maybe I should try your suggestion and give feedback later.

Okay, I tried the latest version of the plugin, the prior error seems gone now. But what I've encountered is that the plugin cannot verify what is the state of the location service is. I had my location service enabled before running the app, but the plugin says the location service is not enabled. Again here are the logs from the ADB logcat. Seems like I am doing something wrong.
08-29 12:43:13.161 20778 20893 I flutter : ****************************************************
08-29 12:43:13.161 20778 20893 I flutter :
08-29 12:43:13.161 20778 20893 I flutter :
08-29 12:43:13.161 20778 20893 I flutter :
08-29 12:43:13.161 20778 20893 I flutter :
08-29 12:43:13.161 20778 20893 I flutter : Flutter App Starts Here
08-29 12:43:13.161 20778 20893 I flutter :
08-29 12:43:13.161 20778 20893 I flutter :
08-29 12:43:13.161 20778 20893 I flutter :
08-29 12:43:13.161 20778 20893 I flutter :
08-29 12:43:13.161 20778 20893 I flutter : *****************************************************************
08-29 12:43:13.174  1872  1872 E Indicator: not support setTranslationX
08-29 12:43:13.190  1872  1872 E Indicator: not support setTranslationX
08-29 12:43:13.201  1058  1058 D Zygote  : Forked child process 21855
08-29 12:43:13.192 21855 21855 W main    : type=1400 audit(0.0:63916): avc: granted { read } for name="u:object_r:net_dns_prop:s0" dev="tmpfs" ino=18820 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:net_dns_prop:s0 tclass=file
08-29 12:43:13.207  1872  1872 E Indicator: not support setTranslationX
08-29 12:43:13.217  1943  1970 D Boost   : hostingType=content provider, hostingName={com.google.android.gsf/com.google.android.gsf.settings.GoogleSettingsProvider}, callerPackage=com.google.android.gms, isSystem=false, isBoostNeeded=false.
08-29 12:43:13.218  1091  1306 D OemNetd : setPidForPackage: packageName=com.google.android.gsf, pid=21855, pid=10161
08-29 12:43:13.218  1943  1970 I ActivityManager: Start proc 21855:com.google.process.gapps/u0a161 for content provider {com.google.android.gsf/com.google.android.gsf.settings.GoogleSettingsProvider} caller=com.google.android.gms
08-29 12:43:13.222 21855 21855 E e.process.gapp: Not starting debugger since process cannot load the jdwp agent.
08-29 12:43:13.224  1872  1872 E Indicator: not support setTranslationX
08-29 12:43:13.234  1943  1955 D CompatibilityInfo: mCompatibilityFlags - 0
08-29 12:43:13.234  1943  1955 D CompatibilityInfo: applicationDensity - 440
08-29 12:43:13.234  1943  1955 D CompatibilityInfo: applicationScale - 1.0
08-29 12:43:13.240  1872  1872 E Indicator: not support setTranslationX
08-29 12:43:13.257  1872  1872 E Indicator: not support setTranslationX
08-29 12:43:13.265 21855 21855 I e.process.gapp: The ClassLoaderContext is a special shared library.
08-29 12:43:13.274  1872  1872 E Indicator: not support setTranslationX
08-29 12:43:13.276 21855 21855 I Perf    : Connecting to perf service.
08-29 12:43:13.279  2150  2150 D NavBarTintController: onSampleCollected 1.0
08-29 12:43:13.290  1872  1872 E Indicator: not support setTranslationX
08-29 12:43:13.297 21855 21855 I GoogleHttpClient: GMS http client unavailable, use old client
08-29 12:43:13.307  1872  1872 E Indicator: not support setTranslationX
08-29 12:43:13.318 21855 21855 I FeatureParser: can't find lavender.xml in assets/device_features/,it may be in /system/etc/device_features
08-29 12:43:13.320 21855 21855 E libc    : Access denied finding property "ro.vendor.df.effect.conflict"
08-29 12:43:13.312 21855 21855 W e.process.gapps: type=1400 audit(0.0:63917): avc: denied { read } for name="u:object_r:vendor_displayfeature_prop:s0" dev="tmpfs" ino=18875 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:vendor_displayfeature_prop:s0 tclass=file permissive=0
08-29 12:43:13.322   587   587 I hwservicemanager: getTransport: Cannot find entry vendor.qti.hardware.iop@2.0::IIop/default in either framework or device manifest.
08-29 12:43:13.322  1115  1115 E ANDR-IOP: IIop:: Iop HAL Service is not available.
08-29 12:43:13.324 21855 21875 E Perf    : Fail to get file list com.google.android.gsf
08-29 12:43:13.324  1872  1872 E Indicator: not support setTranslationX
08-29 12:43:13.324 21855 21875 E Perf    : getFolderSize() : Exception_1 = java.lang.NullPointerException: Attempt to get length of null array
08-29 12:43:13.324 21855 21875 E Perf    : Fail to get file list com.google.android.gsf
08-29 12:43:13.324 21855 21875 E Perf    : getFolderSize() : Exception_1 = java.lang.NullPointerException: Attempt to get length of null array
08-29 12:43:13.325 21855 21875 E Perf    : Fail to get file list oat
08-29 12:43:13.325 21855 21875 E Perf    : getFolderSize() : Exception_1 = java.lang.NullPointerException: Attempt to get length of null array
08-29 12:43:13.336  1943  3709 I ActivityTaskManager: START u0 {act=com.google.android.gms.location.settings.CHECK_SETTINGS pkg=com.google.android.gms cmp=com.google.android.gms/com.google.android.location.settings.LocationSettingsCheckerActivity (has extras)} from uid 10161
08-29 12:43:13.337  1943  3709 D ActivityTaskManagerServiceInjector: MIUILOG- Permission Denied Activity : Intent { act=com.google.android.gms.location.settings.CHECK_SETTINGS pkg=com.google.android.gms cmp=com.google.android.gms/com.google.android.location.settings.LocationSettingsCheckerActivity (has extras) } pkg : com.google.android.gms uid : 10161 tuid : 10262
08-29 12:43:13.341  1872  1872 E Indicator: not support setTranslationX
08-29 12:43:13.357  1872  1872 E Indicator: not support setTranslationX
08-29 12:43:13.360   587   587 E SELinux : avc:  denied  { find } for interface=vendor.qti.hardware.servicetracker::IServicetracker sid=u:r:system_server:s0 pid=1943 scontext=u:r:system_server:s0 tcontext=u:object_r:hal_srvctracker_hwservice:s0 tclass=hwservice_manager permissive=0
08-29 12:43:13.362  1943  4087 D CompatibilityInfo: mCompatibilityFlags - 0
08-29 12:43:13.362  1943  4087 D CompatibilityInfo: applicationDensity - 440
08-29 12:43:13.362  1943  4087 D CompatibilityInfo: applicationScale - 1.0
08-29 12:43:13.363   587   587 E SELinux : avc:  denied  { find } for interface=vendor.qti.hardware.servicetracker::IServicetracker sid=u:r:system_server:s0 pid=1943 scontext=u:r:system_server:s0 tcontext=u:object_r:hal_srvctracker_hwservice:s0 tclass=hwservice_manager permissive=0

=======Update=======
I have found out that the prior error which is that it cannot get the current status of the location service only appears when I am using the mobile network for geolocation, when I'm on wifi it works fine but goes back to the first issue that I've posted earlier.
I'm so fed up with Chinese brand phones as it complicates things like this. Please, I need help.

@loooookiezxc you code looks good. Regarding the location services, from the logs I see that geolocator tries to verify if the required settings are correctly set, which is a feature from the Google Play Services. However somehow Android is failing to find or get access to some of the needed vendor libraries:
08-29 12:43:13.320 21855 21855 E libc    : Access denied finding property "ro.vendor.df.effect.conflict"
...
...
08-29 12:43:13.360   587   587 E SELinux : avc:  denied  { find } for interface=vendor.qti.hardware.servicetracker::IServicetracker sid=u:r:system_server:s0 pid=1943 scontext=u:r:system_server:s0 tcontext=u:object_r:hal_srvctracker_hwservice:s0 tclass=hwservice_manager permissive=0

This really makes me believe this is an device / vendor software problem. Maybe something you could try is to use force the Android LocationManager (maybe parts of the Google Play Services are not available for the RedMi due to the trade embargo issues between Trump and China). You could do so by calling the getCurrentPosition method like this:
      _currentPos = await getCurrentPosition(
          desiredAccuracy: LocationAccuracy.best,
          forceAndroidLocationManager: true);

I don't see anything wrong in the snippet you posted. Unfortunately I don't have access to a RedMi Note 7 which makes it difficult for me to reproduce the problem (since for me it also simply works on the emulator and my Android devices, LG Nexus 5x and Samsung Galaxy S9).
Hope this helps a little bit.

@mvanbeusekom sorry if I'm giving a headache. Your suggestion gives me a little breathing room, prior errors are now gone. But still, it's not working and there is something I've noticed on the log. Please tell me what do you think about this. Will this make you conclude that it is indeed a problem or a bug on the device provider itself?
08-29 20:03:45.746  3495  4500 I BehaviorRecord-Monitor: com.taraphilippines.orderingapp , perm: 32 , operation 2 , current size: 1 , foreground com.taraphilippines.orderingapp
08-29 20:03:45.746  1943  1958 I GnssLocationProvider: GNSS HAL Requesting location updates from network provider for 10000 millis.
08-29 20:03:45.747  3729  4282 I MetokLocationProvider: onSetRequest
08-29 20:03:45.748  3729  3729 I MetokLocationProvider: setRequest: request =ProviderRequest[ON interval=+1s0ms] ; client =WorkSource{1000 android}
08-29 20:03:45.750  2150  2150 D SignalClusterView: updateMobileTypeImage  0
08-29 20:03:45.767  2150  2150 D SignalClusterView: updateMobileTypeImage  0
08-29 20:03:45.769  2150  2150 D NavBarTintController: onSampleCollected 1.0
08-29 20:03:45.787  1943  4846 I WifiService: startScan uid=10107
08-29 20:03:45.787  1943  2078 D MiuiScanRequestProxy: Package com.xiaomi.metoknlp is in white list
08-29 20:03:45.788  1943  2078 E WifiScanRequestProxy: Scan failure received. reason: -1,description: not available
08-29 20:03:45.788  3729  4109 I NetworkLocationManager: start get current Location
08-29 20:03:45.791  3729  3729 I MetokLocationProvider: report position from 2
08-29 20:03:45.791  3729  4109 I NetworkLocationManager: start get current Location
08-29 20:03:45.792  3729  3729 I MetokLocationProvider: report position from 2
08-29 20:03:45.882  2150  2150 D NavBarTintController: onSampleCollected 1.0
08-29 20:03:46.000  2150  2150 D NavBarTintController: onSampleCollected 1.0
08-29 20:03:46.712  2150  2604 D NetworkController.MobileSignalController(1): 4G level = 5
08-29 20:03:46.835  3729  4109 I NetworkLocationManager: start get current Location
08-29 20:03:46.836  3729  3729 I MetokLocationProvider: report position from 2
08-29 20:03:47.360  4559  4559 I subsystem_ramdump: Usage:./system/bin/subsystem_ramdump [arg1] [arg2] [arg3]
08-29 20:03:47.360  4559  4559 I subsystem_ramdump: [arg1]: (1/2) Ramdump location: 1: eMMC: /data/vendor/ramdump or 2: SD card: /sdcard/ramdump
08-29 20:03:47.360  4559  4559 I subsystem_ramdump: [arg2]: (1/0) 1: Enable RPM log / 0: Disable RPM log
08-29 20:03:47.360  4559  4559 I subsystem_ramdump: [arg3]: (1/0) 1: Enable qdss ramdump / 0: Disable qdss ramdump
08-29 20:03:47.360  4559  4559 I subsystem_ramdump:  Using default ramdump location 1: eMMC: /data/vendor/ramdump
08-29 20:03:47.360  4559  4559 I subsystem_ramdump:  Using default 0: Disable RPM log
08-29 20:03:47.342  4559  4559 W subsystem_ramdu: type=1400 audit(0.0:68673): avc: denied { read } for name="enable_ramdumps" dev="sysfs" ino=25533 scontext=u:r:vendor_subsystem_ramdump:s0 tcontext=u:object_r:sysfs:s0 tclass=file permissive=0
08-29 20:03:47.360  4559  4559 I subsystem_ramdump:  Using default 0: Disable qdss ramdump
08-29 20:03:47.360  4559  4559 E subsystem_ramdump: Unable to open /sys/module/subsystem_restart/parameters/enable_ramdumps
08-29 20:03:47.877  3729  4109 I NetworkLocationManager: start get current Location
08-29 20:03:47.877  3729  3729 I MetokLocationProvider: report position from 2
08-29 20:03:48.930  3729  4109 I NetworkLocationManager: start get current Location
08-29 20:03:48.931  3729  3729 I MetokLocationProvider: report position from 2
08-29 20:03:49.691  2150  2604 D NetworkController.MobileSignalController(1): 4G level = 5
08-29 20:03:49.943  3729  4109 I NetworkLocationManager: start get current Location
08-29 20:03:49.943  3729  3729 I MetokLocationProvider: report position from 2
08-29 20:03:50.814  3200  3229 W dix.fingerprin: Reducing the number of considered missed Gc histogram windows from 103 to 100
08-29 20:03:50.991  3729  4109 I NetworkLocationManager: start get current Location
08-29 20:03:50.992  3729  3729 I MetokLocationProvider: report position from 2
08-29 20:03:51.933  2150  2604 D NetworkController.MobileSignalController(1): 4G level = 5
08-29 20:03:52.040  3729  4109 I NetworkLocationManager: start get current Location
08-29 20:03:52.041  3729  3729 I MetokLocationProvider: report position from 2
08-29 20:03:52.365  4561  4561 I subsystem_ramdump: Usage:./system/bin/subsystem_ramdump [arg1] [arg2] [arg3]
08-29 20:03:52.365  4561  4561 I subsystem_ramdump: [arg1]: (1/2) Ramdump location: 1: eMMC: /data/vendor/ramdump or 2: SD card: /sdcard/ramdump
08-29 20:03:52.365  4561  4561 I subsystem_ramdump: [arg2]: (1/0) 1: Enable RPM log / 0: Disable RPM log
08-29 20:03:52.365  4561  4561 I subsystem_ramdump: [arg3]: (1/0) 1: Enable qdss ramdump / 0: Disable qdss ramdump
08-29 20:03:52.365  4561  4561 I subsystem_ramdump:  Using default ramdump location 1: eMMC: /data/vendor/ramdump
08-29 20:03:52.365  4561  4561 I subsystem_ramdump:  Using default 0: Disable RPM log
08-29 20:03:52.365  4561  4561 I subsystem_ramdump:  Using default 0: Disable qdss ramdump
08-29 20:03:52.365  4561  4561 E subsystem_ramdump: Unable to open /sys/module/subsystem_restart/parameters/enable_ramdumps
08-29 20:03:52.352  4561  4561 W subsystem_ramdu: type=1400 audit(0.0:68674): avc: denied { read } for name="enable_ramdumps" dev="sysfs" ino=25533 scontext=u:r:vendor_subsystem_ramdump:s0 tcontext=u:object_r:sysfs:s0 tclass=file permissive=0
08-29 20:03:52.845  4524  4545 I .android.camer: ProcessProfilingInfo new_methods=0 is saved saved_to_disk=0 resolve_classes_delay=8000
08-29 20:03:53.096  3729  4109 I NetworkLocationManager: start get current Location
08-29 20:03:53.097  3729  3729 I MetokLocationProvider: report position from 2
08-29 20:03:54.151  3729  4109 I NetworkLocationManager: start get current Location
08-29 20:03:54.152  3729  3729 I MetokLocationProvider: report position from 2
08-29 20:03:55.206  3729  4109 I NetworkLocationManager: start get current Location
08-29 20:03:55.207  3729  3729 I MetokLocationProvider: report position from 2
08-29 20:03:55.748  1943  1958 I GnssLocationProvider: Removing location updates from network provider.
08-29 20:03:55.749  1943  1958 I GnssLocationProvider: GNSS HAL Requesting location updates from network provider for 10000 millis.
08-29 20:03:55.749  3729  8226 I MetokLocationProvider: onSetRequest
08-29 20:03:55.749  3729  3729 I MetokLocationProvider: setRequest: request =ProviderRequest[OFF] ; client =WorkSource{}
08-29 20:03:55.749  3729  3729 I NLPWrapper: request exit
08-29 20:03:55.750  3729  8226 I MetokLocationProvider: onSetRequest
08-29 20:03:55.750  3729  3729 I MetokLocationProvider: setRequest: request =ProviderRequest[ON interval=+1s0ms] ; client =WorkSource{1000 android}
08-29 20:03:55.751  2150  2604 D NetworkController.MobileSignalController(1): 4G level = 5
08-29 20:03:55.752  1943  4846 I WifiService: startScan uid=10107
08-29 20:03:55.753  1943  2078 D MiuiScanRequestProxy: Package com.xiaomi.metoknlp is in white list
08-29 20:03:55.753  1943  2078 E WifiScanRequestProxy: Scan failure received. reason: -1,description: not available
08-29 20:03:55.755  3729  4109 I NetworkLocationManager: start get current Location
08-29 20:03:55.793  3729  3729 I MetokLocationProvider: report position from 6
08-29 20:03:55.795  3729  4109 I NetworkLocationManager: start get current Location
08-29 20:03:55.795  3729  3729 I MetokLocationProvider: report position from 2
08-29 20:03:55.816  1943  3688 W DevicePolicyManager: Package com.xiaomi.metoknlp (uid=10107, pid=3729) cannot access Device IDs
08-29 20:03:55.817  2377  2401 W TelephonyPermissions: reportAccessDeniedToReadIdentifiers:com.xiaomi.metoknlp:getDeviceId:isPreinstalled=true:isPrivApp=false
08-29 20:03:55.834  1943  3688 W DevicePolicyManager: Package com.xiaomi.metoknlp (uid=10107, pid=3729) cannot access Device IDs
08-29 20:03:55.835  2377  2401 W TelephonyPermissions: reportAccessDeniedToReadIdentifiers:com.xiaomi.metoknlp:getDeviceId:isPreinstalled=true:isPrivApp=false
08-29 20:03:55.851  1943  3688 W DevicePolicyManager: Package com.xiaomi.metoknlp (uid=10107, pid=3729) cannot access Device IDs
08-29 20:03:55.852  2377  2401 W TelephonyPermissions: reportAccessDeniedToReadIdentifiers:com.xiaomi.metoknlp:getSubscriberId:isPreinstalled=true:isPrivApp=false
08-29 20:03:55.852  3729  4562 W System  : Ignoring header MIUICVER because its value was null.
08-29 20:03:55.852  3729  4562 W System  : Ignoring header MIUIPVER because its value was null.
08-29 20:14:49.394  3729  4109 I NetworkLocationManager: start get current Location
08-29 20:14:49.395  3729  4109 I NetworkLocationManager: start get current Location
08-29 20:14:49.395  3729  3729 I MetokLocationProvider: report position from 2
08-29 20:14:49.396  3729  3729 I MetokLocationProvider: report position from 2
08-29 20:14:50.483  3729  4109 I NetworkLocationManager: start get current Location
08-29 20:14:50.484  3729  3729 I MetokLocationProvider: report position from 2
08-29 20:14:51.532  3729  4109 I NetworkLocationManager: start get current Location
08-29 20:14:51.533  3729  3729 I MetokLocationProvider: report position from 2
08-29 20:14:52.585  3729  4109 I NetworkLocationManager: start get current Location
08-29 20:14:52.586  3729  3729 I MetokLocationProvider: report position from 2
08-29 20:14:52.906   587   587 E SELinux : avc:  denied  { find } for interface=vendor.qti.hardware.servicetracker::IServicetracker sid=u:r:system_server:s0 pid=1943 scontext=u:r:system_server:s0 tcontext=u:object_r:hal_srvctracker_hwservice:s0 tclass=hwservice_manager permissive=0
08-29 20:14:53.010  1943  1969 I ActivityManager: Waited long enough for: ServiceRecord{d35eecf u0 com.google.android.gms/.gcm.GcmService}
08-29 20:14:52.909   587   587 E SELinux : avc:  denied  { find } for interface=vendor.qti.hardware.servicetracker::IServicetracker sid=u:r:system_server:s0 pid=1943 scontext=u:r:system_server:s0 tcontext=u:object_r:hal_srvctracker_hwservice:s0 tclass=hwservice_manager permissive=0
08-29 20:14:53.293  5517  5517 I subsystem_ramdump: Usage:./system/bin/subsystem_ramdump [arg1] [arg2] [arg3]
08-29 20:14:53.293  5517  5517 I subsystem_ramdump: [arg1]: (1/2) Ramdump location: 1: eMMC: /data/vendor/ramdump or 2: SD card: /sdcard/ramdump
08-29 20:14:53.293  5517  5517 I subsystem_ramdump: [arg2]: (1/0) 1: Enable RPM log / 0: Disable RPM log
08-29 20:14:53.293  5517  5517 I subsystem_ramdump: [arg3]: (1/0) 1: Enable qdss ramdump / 0: Disable qdss ramdump
08-29 20:14:53.293  5517  5517 I subsystem_ramdump:  Using default ramdump location 1: eMMC: /data/vendor/ramdump
08-29 20:14:53.293  5517  5517 I subsystem_ramdump:  Using default 0: Disable RPM log
08-29 20:14:53.293  5517  5517 I subsystem_ramdump:  Using default 0: Disable qdss ramdump
08-29 20:14:53.293  5517  5517 E subsystem_ramdump: Unable to open /sys/module/subsystem_restart/parameters/enable_ramdumps
08-29 20:14:53.282  5517  5517 W subsystem_ramdu: type=1400 audit(0.0:68827): avc: denied { read } for name="enable_ramdumps" dev="sysfs" ino=25533 scontext=u:r:vendor_subsystem_ramdump:s0 tcontext=u:object_r:sysfs:s0 tclass=file permissive=0
08-29 20:14:53.458   587   587 E SELinux : avc:  denied  { find } for interface=vendor.qti.hardware.servicetracker::IServicetracker sid=u:r:system_server:s0 pid=1943 scontext=u:r:system_server:s0 tcontext=u:object_r:hal_srvctracker_hwservice:s0 tclass=hwservice_manager permissive=0
08-29 20:14:53.628  3729  4109 I NetworkLocationManager: start get current Location
08-29 20:14:53.628  3729  3729 I MetokLocationProvider: report position from 2
08-29 20:14:54.683  3729  4109 I NetworkLocationManager: start get current Location
08-29 20:14:54.684  3729  3729 I MetokLocationProvider: report position from 2
08-29 20:14:54.980  2150  2604 D NetworkController.MobileSignalController(1): 4G level = 5
08-29 20:14:55.736  3729  4109 I NetworkLocationManager: start get current Location
08-29 20:14:55.737  3729  3729 I MetokLocationProvider: report position from 2
08-29 20:14:56.792  3729  4109 I NetworkLocationManager: start get current Location
08-29 20:14:56.793  3729  3729 I MetokLocationProvider: report position from 2
08-29 20:14:57.845  3729  4109 I NetworkLocationManager: start get current Location
08-29 20:14:57.846  3729  3729 I MetokLocationProvider: report position from 2
08-29 20:14:58.301  5518  5518 I subsystem_ramdump: Usage:./system/bin/subsystem_ramdump [arg1] [arg2] [arg3]
08-29 20:14:58.301  5518  5518 I subsystem_ramdump: [arg1]: (1/2) Ramdump location: 1: eMMC: /data/vendor/ramdump or 2: SD card: /sdcard/ramdump
08-29 20:14:58.301  5518  5518 I subsystem_ramdump: [arg2]: (1/0) 1: Enable RPM log / 0: Disable RPM log
08-29 20:14:58.301  5518  5518 I subsystem_ramdump: [arg3]: (1/0) 1: Enable qdss ramdump / 0: Disable qdss ramdump
08-29 20:14:58.292  5518  5518 W subsystem_ramdu: type=1400 audit(0.0:68828): avc: denied { read } for name="enable_ramdumps" dev="sysfs" ino=25533 scontext=u:r:vendor_subsystem_ramdump:s0 tcontext=u:object_r:sysfs:s0 tclass=file permissive=0
08-29 20:14:58.301  5518  5518 I subsystem_ramdump:  Using default ramdump location 1: eMMC: /data/vendor/ramdump
08-29 20:14:58.301  5518  5518 I subsystem_ramdump:  Using default 0: Disable RPM log
08-29 20:14:58.301  5518  5518 I subsystem_ramdump:  Using default 0: Disable qdss ramdump
08-29 20:14:58.301  5518  5518 E subsystem_ramdump: Unable to open /sys/module/subsystem_restart/parameters/enable_ramdumps
08-29 20:14:58.893  3729  4109 I NetworkLocationManager: start get current Location
08-29 20:14:58.894  3729  3729 I MetokLocationProvider: report position from 2

As you can see the plugin retries to get the current location several times.

========Update========
I just let the phone still for a while, while reading the logs on adb logcat. I don't understand why, but after about 10 it the plugin returns the location of the device. I am clueless now. For real.

@loooookiezxc which permissions do you have in your AndroidManifest.xml file? We know that if you only have ACCESS_COARSE_LOCATION Android will only use the cellular network to determine the device's location and this can take a long time.
If this is the case in your setup, you could try also adding the ACCESS_FINE_LOCATION permission which makes sure Android will also use the GPS chip to get hold of the device's location.

Hello @mvanbeusekom yes I've also added the ACCESS_FINE_LOCATION permission. I'm starting to get familiarized with the plugin, one thing I noticed is that on some devices, especially the ones came Chinese manufacturers, when getting the location and setting the LocationAccuracy to other but medium, the plugin cannot return the current location, so I'm stuck with using only LocationAccuracy.medium. I'm still trying to look for the cause of this behavior. Or do you have any idea why is this happening?

Also, I saw deprecation warnings on the plugin, the one came from the LocationClientManager.java file, It says that the LocationProvider.AVAILABLE is deprecated. Might refer as well to this link https://developer.android.com/reference/android/location/LocationProvider

Hey, @mvanbeusekom I'll be closing this issue. I know now what is the cause of my problem. But I will open another thread regarding all the use cases I've experienced instead and maybe this can help you to enhance the geolocator plugin. Thanks for all the help :)

Hi @loooookiezxc, I am very much looking forward at your other thread / issue as this information is very valuable to me. Especially since I don't have access to all these different devices and their quarks and your willingness to endure all the effort helping me to improve the plugin.
At this very moment I am working on a new release to solve some smaller issues (like the deprecation warning you mentioned and some documentation updates), I will hopefully be able to release that tomorrow morning.
Let me finish by thanking you for the great and detailed feedback!


SecConn[Read/Write]StateLimit Instantly hits limit - ap_get_scoreboard_worker method failing

Apache 2.4.12
modsecurity 2.8.0
Setting either SecConnReadStateLimit or SecConnWriteStateLimit causes near immediate hit of the limit value (in line with every connection being counted), this is because every iteration started at apache2/mod_security2.c:1446/1447 is causing the count to be increased at 1466 (READ) and 1471 (WRITE).
This appears to be due to line 1455 and the condition for Apache 2.4+ API differences:
ws_record = ap_get_scoreboard_worker(sbh);
Replacing this with:
ws_record = ap_get_scoreboard_worker_from_indexes(i, j);
Fixes the problem.
I would imagine the surrounding code also needs a tidy up.

I believe I have the same problem with Apache 2.4.16 and ModSecurity 2.9.0. I'm using cPanel.
How to reproduce:
SecConnEngine "On"
SecConnReadStateLimit 50
SecConnWriteStateLimit 50

After Apache restart, every connection to server is blocked and thread count in apache error_log always show maximum number of threads - 256, for this is my Max Request Workers (MaxClients) setting.
Log example:

[Wed Jan 20 07:55:38.439996 2016] [:warn] [pid 64146] ModSecurity: Access denied with code 400. Too many threads [256] of 50 allowed in READ state from x.x.x.x - Possible DoS Consumption Attack [Rejected]
[Wed Jan 20 07:55:38.457756 2016] [:warn] [pid 64147] ModSecurity: Access denied with code 400. Too many threads [256] of 50 allowed in READ state from x.x.x.x - Possible DoS Consumption Attack [Rejected]
[Wed Jan 20 07:55:38.461716 2016] [:warn] [pid 64148] ModSecurity: Access denied with code 400. Too many threads [256] of 50 allowed in READ state from x.x.x.x - Possible DoS Consumption Attack [Rejected]
[Wed Jan 20 07:55:47.133584 2016] [:warn] [pid 64149] ModSecurity: Access denied with code 400. Too many threads [256] of 50 allowed in READ state from y.y.y.y - Possible DoS Consumption Attack [Rejected]
[Wed Jan 20 07:55:47.869582 2016] [:warn] [pid 64150] ModSecurity: Access denied with code 400. Too many threads [256] of 50 allowed in READ state from z.z.z.z - Possible DoS Consumption Attack [Rejected]

These are legitimate requests; it blocked my IP also after performing only one web page refresh.
ModSec obviously gets number of threads wrong in my case.
Line 1455 of mod_security2.c also has ap_get_scoreboard_worker(sbh). I'm unwilling to modify and recompile, since this is a production server.

Fixed as part of #1340.


add some of these to the payphone demulitplexer

https://www.ndhfilms.com/other/coloradopayphones
all numbers not labeled as not accepting incoming

Tracking 3dc615f458fd523cee559f95c085ab6fa051d650


Further improve appdata compliance

Looks like flathub is stricter than before and now refuses to build with these minor appdata problems.
builddir/files/share/appdata/org.laptop.TurtleArtActivity.appdata.xml: FAILED:
• tag-invalid           : <project_license> is not valid [MIT;GPLv2+;LGPLv2+;LGPLv2.1+;GPLv3+]SPDX ID 'MIT;GPLv2+;LGPLv2+;LGPLv2.1+;GPLv3+' unknown
• url-not-found         : <screenshot> failed to download (HTTP 404: Not Found) [https://raw.githubusercontent.com/sugarlabs/turtleart-activity/master/screenshots/1.png,]
• url-not-found         : <screenshot> failed to download (HTTP 404: Not Found) [https://raw.githubusercontent.com/sugarlabs/turtleart-activity/master/screenshots/2.png,]

Reviewed.


Fix error: cannot read property first of undefined

New Pull Request Information
In the case of a custom css property an error is thrown while linting because the declaration doesn't contain a property node but instead a customProperty node
This fixes that error
<DCO 1.1 Signed-off-by: Adrien Foulon>

Coverage remained the same at 97.532% when pulling 8b7997e574847674e08f784c8e9b53344e239ee8 on Tofandel:patch-1 into 52ccf2e1fa3e4d17d9f8f7bd748f7caf20830f30 on sasstools:develop.


new release?

Was wondering if a new release was coming soon?
I have been seeing lots of updates coming through - but the last version release was almost 6 months ago.
Keep up the good work
Cheers

Yeah, I probably have enough fixes in now to make a new release worthwhile - so soon I'd say.

v<IP_ADDRESS> has been published to GitHub and to the PowerShell Gallery.


fix: use all lowercase for authMode

I'm seeing encountered: authorization mode "workloadIdentity" not valid from here.
The constant in ASO is workloadidentity all in lowercase.

@rbjorklin could you also update the chart version in charts/azure-aks-aso/Chart.yaml to 0.4.1?

@rbjorklin could you also update the chart version in charts/azure-aks-aso/Chart.yaml to 0.4.1?

Done!


Is there a way to set --git_dir?

I have a setup of syncing obsidian repos between Mac and Win via iCloud Drive.
Initially, I put the .git in the root dir of the obsidian repo, but iCloud always messes up the objects in .git when I switch OS.
Now I'm thinking of having a git directory for each machine locally that's not synced by iCloud, and have a host specific --git_dir for the plugin to pass to git binary.
Going through the current plugin setting scheme, I guess adding a GIT_DIR env var into the "Additional PATH env var paths" could help? Yet when I tried it out on Windows, it looks like the plugin tries to split the : in my disk reference, i.e. D:\.
Is the PATH field a right fit for my use case? If so, how do I set it on WIndows?
Thanks in advance.

+1 I would like to do this as well.
Though I want to point obsidian-git plugin at --git-dir=.gitContent for the purpose of having a separation of revision history to .md content and obsidian vault files

I found a workaround using plaintext .git file similar to this issue https://github.com/denolehov/obsidian-git/issues/55
however I cannot use ~ to direct it to my home directory so I use relative path to the vault path in iCloud
Assuming that your .git is at ~/obsidian.git, create .git file with this content:
gitdir: ../../../../../obsidian.git

If all of your machines share the same username you can use absolute path, too
gitdir: /Users/yourusername/obsidian.git

However it would be best if this plugin supports setting git & gitdir from the plugin's option, since isomorphic-git already supported those options https://isomorphic-git.org/docs/en/dir-vs-gitdir, or at least support adding environment variables apart from PATH so I can set GIT_DIR

You should now be able to specify a GIT_DIR via a new added setting.  Works for mobile as well.

Works like a charm. Thank you guys!


2.0.0 readiness check

@weierophinney since there are a number of pending releases in various repos that may be affected (or depended on) by this, can you give this a quick sanity check before I release 2.0.0?
Process after 👍 :

Rebase to update CHANGELOG.md from 1c7411f to reflect what the actual release date will be.
Rebase with upstream/master and force-push the updated master to my fork (which will update this pull request).
Merge the pull request.
Tag 2.0.0 off of whatever the new commit hash for 1c7411f ends up being.
Follow the remaining release steps to bring develop into sync with master.
Delete the dev-2.0.0 branch.

End result should be that 2.0.0 is released, develop and master are in sync, dev-2.0.0 is deleted, and there is no unreleased code in any branch or PR (at the time this PR was submitted).
Make sense?

Coverage remained the same at 100.0% when pulling 63a8fd7d143a4636b45bbba503421dd59a47669a on michaelmoussa:master into 50c9e4dff0cf65d9937c56b597c530e1bf5f8ef0 on zendframework:master.

Coverage remained the same at 100.0% when pulling 1c7411f626919cffb901e22e34de76ead598e61a on michaelmoussa:master into 50c9e4dff0cf65d9937c56b597c530e1bf5f8ef0 on zendframework:master.

My understanding, then, is that once this is merged and 2.0.0 is created, we will need to create new major or minor versions of the router implementations that pin to the new major version presented here, so that they can update their implementations of the RouterInterface; is that correct?

Yes. I think they'd need to be major, though, wouldn't they? If someone is simply letting Expressive do it's thing, then they wouldn't be affected by a change to the interface, but if anyone has actually implemented that interface, their implementation will be missing the new parameter.

Yes. I think they'd need to be major, though, wouldn't they? If someone is simply letting Expressive do it's thing, then they wouldn't be affected by a change to the interface, but if anyone has actually implemented  that interface, their implementation will be missing the new parameter.

I realized that later myself. Additionally, it's more an issue for folks extending the implementations; the extensions, if they override that method, would be broken at that point if they do not define the additional, optional argument. As such, agreed that we need new major versions.

Coverage remained the same at 100.0% when pulling c4526c38947088cdc86a3e70304043ca7cdb6e26 on michaelmoussa:master into 50c9e4dff0cf65d9937c56b597c530e1bf5f8ef0 on zendframework:master.

Coverage remained the same at 100.0% when pulling 49373a33fe6852470f50cb2f164e0003611c3cf8 on michaelmoussa:master into 50c9e4dff0cf65d9937c56b597c530e1bf5f8ef0 on zendframework:master.

@michaelmoussa about commit c4526c3 please see:
https://github.com/zendframework/zend-expressive/pull/418#issuecomment-270484049
... so you shouldn't update year in files you didn't change.

Thanks @webimpress, I hadn't seen that comment, but removing the update breaks the build. How should I proceed, @weierophinney ?

removing the update causes the license check to fail. How should I proceed

Change the following in .docheader:
%regexp:(20\d{2}-)?%%year%

to read:
%regexp:(20\d{2}-)?20\d{2}%

That will allow it to keep existing date ranges; unfortunately, it also has the side effect of not enforcing the current year for new files. I'll see if I can work with the author of the license checker library to figure out something more robust for the future, but the above will get us moving forward.


Fix caller position for errorResponse

Hi @goccy. Thank you for the nice OSS.
I debug some features in this emulator. But, it is difficult to find where the error occurs. So, I fixed caller position with zap.AddCallerSkip.
Before:
server/handler.go:28 show the line zap.Logger called.
2022-10-23T11:00:49.663+0900    ERROR   server/handler.go:28    invalid {"error": "invalid: failed to decode job: invalid character '-' in numeric literal"}

After:
server/handler.go:182 show the line the handler returns the error.
2022-10-23T11:01:26.637+0900    ERROR   server/handler.go:182   invalid {"error": "invalid: failed to decode job: invalid character '-' in numeric literal"}

Thank you for the great PR ! LGTM


Add xz compression to tar packaging choices.

A few tweaks to scons_dev_master.py which needed to have xz added anyway:
changed mercurial to git in initial setup, install different java,
more pythons.  Note about adding ipkg-build.
Docs updated slightly for wording in addition to adding the new tar packager.
This is near-trivial: the actual code is basically identical to the tar.bz2 case, just swapping bz2 for xz.
The changes to scons_dev_master are not strictly related except the add of xz, could be left to a separate change.
Signed-off-by: Mats Wichmann<EMAIL_ADDRESS>Contributor Checklist:

[X] I have created a new test or updated the unit tests to cover the new/changed functionality.
[X] I have updated master/src/CHANGES.txt directory (and read the README.txt in that directory)
[X] I have updated the appropriate documentation

Coverage decreased (-1.4%) to 78.911% when pulling 4d5876fc98ef438b8d92d211dfdd91b4136f483e on mwichmann:packaging-xz into ea56f6332709476cf81f758bd357001787f466da on SCons:master.

Can you add DefaultEnvironment(tools=[]) to your tests?
Also will they run with just packaging tools and without default in the tools list?

Can you add DefaultEnvironment(tools=[]) to your tests?
Also will they run with just packaging tools and without default in the tools list?

The change copies the bz2 steps, and only fixed up comments where they seemed out of skew. I'll experiment with the tools=[] type changes if you like.

it doesn't really pay off, it seems.  all three (was two) packaging/tar tests compile a program first. I still don't know what tools need to be specified for that to work - I had a comment in irc on that.  It seems that if you leave out a tool a builder needs, then the builder is left out.  The time saved by letting the build happen in the default environment and then constructing env with the required tools (packaging, filesystem, tar) instead of the full list is minimal, because scons went through the expensive setup anyway for the Program() call.


[Chip] Fix color contrast against default dark background

Closes #9407

Hmm... just realised this is going to be problematic against a dark paper background (also grey[800]).
Running out of ideas here...

I was suggesting 700 in the issue.

As mentioned in the issue, 700 doesn't contrast with dark avatar.

@mbrookes It's a tradeoff then. We can pick what's more important 😬 .


Systems showing 0/0 at setup

We’re having an issue setting up Pathfinder where the number of systems on the setup page to be built is displaying as 0/0.
Whether we click clear or build, it always goes green but remains at 0/0, and we get an internal server error when trying to actually track a user, due to something about it not being a valid system ID.
Do you have any insight on what may be causing this issue for us? We’ve looked through the existing issues but can’t seem to find anything related or similar.

It looks like you forget to import the eve_universe DB dump see:
https://github.com/exodus4d/pathfinder/wiki/Database#3-import-initial-eve_universesql-db-dump
0/0 means there are no systems that can be indexed... The current system count is read from the eve_universe DB. If the dump was loaded you should see something like 0/8235, then you can click the button for indexing.
if this does not help, please let me know.


About License

Hi,
Let me check about the license.
Beyka-san is written as
https://github.com/Beyka/Android-TiffBitmapFactory/issues/7

In future I will try to remove GPL code from project to use MIT license

Is it MIT license now?
If it is not MIT license,
what does "licences = ['MIT']" in build.gradle mean?
Regards.

yes, It is MIT

Thank you for answering.
"license.txt" is notation like GPL,
Does that mean you do not have to worry about it?
Since I want to use it for commercial use, I am asking a question.
Regards.

I didn't know that I have license.txt file :) It was created somewhere in past by some other person. I think that I will delete it

But I think that it should be MIt - you can use this lib in any product in any way you want, but not forget to add link to this github repo

Now changed text of license.txt

Thank you very much.

you can use this lib in any product in any way you want, but not forget to add link to this github repo
I understand.
Do not forget to link.

Close the issue.


Airtouch 4

Describe Your Problem:
 I enter  <IP_ADDRESS> which is where my controller is connected but always get error message
Done everything you have suggested but won’t work
Logs:
Show the Homebridge logs here, remove any sensitive information.

Plugin Config:
Show your Homebridge config.json here, remove any sensitive information.

Screenshots:

Environment:

Plugin Version:
Homebridge Version:
Node.js Version:
NPM Version:
Operating System:

Can you help?
Please

Sorry <IP_ADDRESS> and it added ok but that's all it does. Nothing comes up to enable it to be used?

Sorry; this only supports airtouch5.


Differences in the build_tags (pre-compiled/source) and upgrade documentation

There are differences of tags between compiled from source and pre-built binaries (v. 0.10.0x)
# akash version --long
name: akash
server_name: akash
version: 0.10.0
commit: af43b89e47e50bfeedcc35c7ee77229bd258ed0d
build_tags: netgo,ledger                            <--------
go: go version go1.15.7 linux/amd64

name: akash
server_name: akash
version: v0.10.0
commit: af43b89e47e50bfeedcc35c7ee77229bd258ed0d
build_tags: netgo,ledger,mainnet                    <--------
go: go version go1.15.7 linux/amd64
Pre-build version contains mainnet build tag

and the current upgrade guide "Akash Testnet Upgrade Instructions" suggest to compile from source

add export MAINNET=true at step 6 (before make install)
replace with wget pre-compiled / unpack / mv / etc.


Reduce current EC2 instance provisioning

We're currently running a hefty number of highly provisioned EC2 instances to keep things stable. We should consider whether we can reduce the number of running instances, move down to less well-provisioned instance types, or both, without significantly sacrificing application reliability or performance.

I investigated application metrics with an eye toward reducing our spending on EC2 resources. I had initially planned to try to experimentally determine the application's memory requirements, but after some investigation, I believe that there is enough information available in the AWS console to come up with a plan, so I didn't end up doing any experimentation.
Context
Our application servers have persistently high memory requirements because they keep information about the geometries for every jurisdiction in memory at all times. In addition, they have transiently even higher memory requirements during startup, because the processing required to load the jurisdiction geometries requires additional memory. Lastly, there are as-yet undiagnosed issues with application stability under load which require us to maintain a buffer of running application servers in case one or more of them fails.
All of the issues above will require significant engineering investment to resolve, so we've responded in the short-term by provisioning more compute and memory resources. The current state of things is that we host the production site on eight (8) r5.2xlarge instances, which is fairly expensive. Our goal is to reduce these costs as much as we can, without impacting application stability, until we can complete the larger engineering efforts that will be required to address the root causes of the problems described above.
Note that there is another source of high infrastructure cost on this project: any pages listing multiple maps (specifically, the Maps and Community Maps pages) have also been a source of increased costs. I didn't investigate strategies for reducing those costs here, but in summary, the situation with those pages is as follows:

Returning un-simplified map geometries caused the browser to load many megabytes of geometries, which slowed down the page.
Simplifying map geometries on the fly fixed the issue...until we encountered imperfect state geometries, which caused the simplification library we were using to explode and made the page fail to load if it included any states with corrupt geometries.
We moved the simplification into the database, which fixed the issue with corrupted geometries, but increased load on the database. This required us to increase the database size to a t3.large.
Separately, we started encountering Postgresql query planner misses on these pages which slowed them down and impacted other application functionality because it increased overall database load. We purchased provisioned IOPS on the database as an immediate recovery response, and suspect that regularly REINDEXing the projects table may provide a permanent fix.

Again, I didn't look into reducing costs from those pages, but am noting them here because we will probably need to address the cost of those pages in order to further reduce costs once we've done all we can do with the application servers.
Investigation
I looked into two potential approaches for reducing resource usage (and hence cost):

Reducing the number of application server instances / servers (we run one task per EC2 instance, so tasks and instances are interchangeable at the moment).
Reducing the amount of memory allocated to each application server task, which would allow us to either use a smaller EC2 instance size or pack more of them into a single instance. We know that the baseline memory usage of the app is lower than 32GB, so if the startup usage is also below 32GB, we could potentially drop down to r5.xlarge instances, which would roughly halve our hosting costs.

Number of application tasks
When investigating item 1, I concluded that the current number of tasks (8) provides a sufficient buffer to avoid outages from the stability issues noted in #1015 , but may not provide us with a lot of room to reduce the number of tasks. In this graph of the number of healthy application tasks over the past 6 weeks, you can see that the number rarely dips below 7, but has occasionally dropped to 6 or 5.

CPU load per application host also shows a good amount of headroom, remaining in the range of 10-40% CPU utilization.

However, it's important to remember that decreasing the number of application tasks will increase the load on the remaining tasks, which may make failures more likely. For example, if we assume that CPU usage is directly proportional to the number of application tasks, we would expect reducing the number of application tasks to 4 to double the load on each task, and might expect to see CPU utilization of 20-80%. That seems fine for the base case, but it looks less fine in cases where 1 or 2 tasks might become unhealthy. That would leave us with only 3 or 2 remaining healthy tasks until the replacement tasks spin up (which takes 20-30 minutes). If those remaining tasks can't handle the load, they might also become unhealthy, which could cause a spiraling outage. I think our best bet here is to slowly decrease the number of application tasks over a period of weeks, checking resource utilization and frequency of task failure each time.
Memory limit per-task
When looking into item 2, AWS makes memory utilization metrics available (as distinct from memory reservation, which is also available, and which is essentially 100% for us at all times because we allocate one task per host). Here's the maximum memory utilization percentage for the past six weeks on production (I used a period of six hours to smooth out the graph a bit, but because I'm using the Maximum statistic it doesn't change the height of the tallest peaks):

We can see that the baseline memory usage is around 47%. Our current memory allocation is 61440 MB, so 47% utilization works out to just under 29GB for the baseline. I remember this number being more like 20GB previously, and I'm not sure what might have caused it to increase. Anyway, there are also peaks to around 57%; I've verified that these correspond with deployments or otherwise launching new application tasks (e.g. to replace one that failed). Therefore, these peaks should be close to the application's startup memory usage. ECS only collects metrics at 1-minute intervals, but during a deploy the maximum statistic will be pulling the maximum usage from across 8 new tasks all booting up at about the same time, so I think there's a good chance that we've captured something close to the true value. There's also one peak all the way up to 61%, which I'm unsure about. 57% of our current memory allocation is is 35GB, and 61% is 37.5GB. Neither of these will fit into a 32GB machine directly, but they're tantalizingly close, so it's possible that running the garbage collector more frequently as memory usage increases will still allow the application to function within 32GB, or that we could tweak something about how we handle application data in order to make it fit.
One thing I noticed in passing is that it appears that all of the existing Fargate infrastructure is still in place. We abandoned Fargate earlier because it has a memory limit of 30GB per task, but the fact that it still exists might allow us to easily experiment with a lower memory limit per task because we could run a parallel set of application tasks on production without impacting the existing production tasks.
Recommendations

Vary the number of application tasks and the resources dedicated to them separately. Changing the number of tasks may change the resources they require, so we shouldn't try to change both at once.
Experiment with deploying a parallel production application task using Fargate, limited to 30GB of memory, and see if it becomes healthy. If it does, consider migrating back to Fargate for the application tasks.
Slowly reduce the total number of application tasks (perhaps by 1 task per week) while monitoring resource usage and stability.

Experiment with deploying a parallel production application task using Fargate

I don't believe we can switch back to Fargate right now, as we can't set the vm.max_map_count parameter we started using in https://github.com/PublicMapping/districtbuilder/pull/942 on Fargate.

I don't believe we can switch back to Fargate right now, as we can't set the vm.max_map_count parameter we started using in #942 on Fargate.

Ah, good point! In that case I think the quickest way to have an impact is to start reducing the number of running application tasks.
To test reducing memory, if we can't use Fargate, it might be helpful to stand up a second EC2-based launch type--that would allow us to test out different resource configurations under production conditions in a safer way because we could still maintain our existing capacity in parallel.

Update for archival purposes:

We decreased the number of active application service tasks from 8 to 6. This went smoothly and has not caused problems so far, but it did surface that the alarm responsible for scaling down the EC2 instances in response to a decrease in the number of application service tasks is stuck in the alarm state.
We compared the region_config tables for both staging and production, and added 11 regions to staging so that it would have a similar memory profile to production. We then attempted to deploy the staging application using r5.xlarge instances, which have 32GB of memory. However, this was not successful; the available memory on a 32GB instance did not allow the application to load all of the required data, and it failed during the initialization process. The below graph shows the application churning through service tasks that hit the memory limit and then fail:

There are some additional changes we could make to try to get the application to fit within 32GB, but any success here seems at risk of being only temporary, given that we expect memory usage to continue to grow due to adding new regions. Therefore, our best use of scarce engineering time is probably to invest in a permanent fix for the memory problem, rather than trying to squeeze further memory efficiency out of the current architecture.

For next steps, I'm going to continue monitoring the production application and will try to further reduce the number of service tasks to 5 or 4 without impacting stability, but aside from those potential, incremental improvements, I think we've done about all we can here, so I'm closing this.

Also noting for future reference that I've updated the production tfvars with the current value of 6 running service tasks, so production deploys can be safely performed without reverting the reduction in size. I'll return to this once I'm back from leave to try to get it down a bit lower.


Currently shipping broken fabric server derivations

Current broken fabric servers that i have found are all due to missing vanilla variants.

All combat versions.
All experimental-snapshot versions.
All deep-dark-expermimental-snapshot versions.

I would say we should look into seeing if whitelisting known minecraft versions for fabric in the update.py file. For example, i can currently find the pre, rc, oneblockatatime, Pre-Release, infinite in vanillaServers from a quick look over.

Luckily quilt-servers packages only recent enough minecraft versions that this is not an issue there currently.

Also the current fabric-servers/libraries.json ships with multiple empty hashes, causing errors if you try to build these versions.
List:

1.14.2 Pre-Releases
1.14.1 Pre-Releases
1.14 Pre-Releases
3D Shareware v1.34

This is a small enough amount that this may be able to be manually updated.

Hmm, I think the better solution for the missing vanilla variants in particular would be to include them, since they should be packaged.
For the empty hashes, yeah they can be done manually (or I suppose completely regenerate libraries/locks).
Might look into making the update script check for empty hashes and regenerate if necessary.

These are now all building correctly under #11 and will be fixed upstream when the PR gets finalized.


minor config problem - macos

so I have installed SFT4 toolchain / and configured xcode toolchain / and  terminal
(base) ➜  ~ export SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk
export PATH=/Library/Developer/Toolchains/swift-tensorflow-RELEASE-0.3.1.xctoolchain/usr/bin:$PATH
(base) ➜  ~ which swift
/Library/Developer/Toolchains/swift-tensorflow-RELEASE-0.3.1.xctoolchain/usr/bin/swift
when I run the jupyter notebook - I hit this snag

so I dug a bit deeper - and obviously there's the dependency on swift-jupyter - but this depends on

        libpython = glob(sys.prefix+'/lib/libpython*.so')[0]

->

        libpython = glob(sys.prefix+'/lib/libpython*.dylib')[0]

python register.py --sys-prefix --swift-python-use-conda --use-conda-shared-libs   --swift-toolchain /Library/Developer/Toolchains/swift-tensorflow-RELEASE-0.3.1.xctoolchain

kernel.json:
{
  "argv": [
    "/Users/johndpope/miniconda3/envs/swift-tensorflow/bin/python",
    "/Users/johndpope/Documents/gitWorkspace/swift-jupyter/parent_kernel.py",
    "-f",
    "{connection_file}"
  ],
  "display_name": "Swift",
  "language": "swift",
  "env": {
    "PYTHONPATH": "/Library/Developer/Toolchains/swift-tensorflow-RELEASE-0.3.1.xctoolchain/System/Library/PrivateFrameworks/LLDB.framework/Resources/Python",
    "LD_LIBRARY_PATH": "/Library/Developer/Toolchains/swift-tensorflow-RELEASE-0.3.1.xctoolchain/usr/lib/swift/macosx:/Users/johndpope/miniconda3/envs/swift-tensorflow/lib",
    "REPL_SWIFT_PATH": "/Library/Developer/Toolchains/swift-tensorflow-RELEASE-0.3.1.xctoolchain/System/Library/PrivateFrameworks/LLDB.framework/Resources/repl_swift",
    "PYTHON_LIBRARY": "/Users/johndpope/miniconda3/envs/swift-tensorflow/lib/libpython3.6m.dylib"
  }
}

Registered kernel 'Swift' as 'swift'!

I ended up creating this xcode project - https://github.com/johndpope/s4tf-style-transfer


spawn C:\Windows\system32\cmd.exe ENOENT error with childProcess.exec() on Debugger

- VSCode Version: 1.13.0
- OS Version: Windows 10 Pro v1703 (OS Build 15063.332)

Steps to Reproduce:

Create a new file and run a command using childProcess.exec()
The script runs fine when I run the script through integrated terminal (node myfile.js)
The script fails with an error Error: spawn C:\Windows\system32\cmd.exe ENOENT when running through the debugger.

http://i.imgur.com/YMXIY7l.png

@atif089 I cannot reproduce this.
Please provide a small code snippet that I can use to reproduce the problem (and please real code and not a screenshot since I do not want to enter it by typing).

Thanks for the follow-up @weinand. Here's all the code from the actual screenshot.
This file works fine when I run it in the terminal (both cmd and the integrated one in VS Code) but then when I run it by pressing F5 I see the error mentioned. I tried running VS Code as Administrator assuming that might make difference but there was no change.
And this file was working fine in at least until version 1.10
var config       = require('../config/config');
var childProcess = require('child_process');
var datejs       = require('datejs');
var path         = require('path');

var filename = 'backup__' + (new Date).toString('yyyy-MM-dd') + '.sql';
var execPath = 'C:\\__PATH_TO_SOME_FOLDER__\\mysql\\bin\\mysqldump.exe'
                  + ' -h ' + config.DB.hostname
                  + ' -u ' + config.DB.username
                  + ' -p' + config.DB.password
                  + ' ' + config.DB.database + ' > '
                  + filename;

console.log(execPath);

childProcess.exec(
  execPath, { cwd: path.resolve('__dirname' + '/../../backups') + '/' },
    function (err, data) {
      debugger;
    }
);

I figured this has nothing to do with VS code. The exec command fails because the resolved cwd path was invalid and it didn't exist.
When I was running it through the terminal, I was always in the appropriate directory and that is why the command was working fine.

@atif089 thanks for investigating (and resolving) the issue.


[fix: bug] fix motan examples build error

// Describe your PR here; eg. Fixes #issueNo

Make sure that:

[ ] You have read the contribution guidelines.
[ ] You submit test cases (unit or integration tests) that back your changes.
[ ] Your local test passed mvn clean install -Dmaven.javadoc.skip=true.

Codecov Report

Merging #2580 (aa53592) into master (4439a31) will decrease coverage by 0.11%.
The diff coverage is n/a.

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

@@             Coverage Diff              @@
##             master    #2580      +/-   ##
============================================
- Coverage     60.68%   60.56%   -0.12%
+ Complexity     4215     4186      -29
============================================
  Files           653      653
  Lines         18529    18529
  Branches       1660     1659       -1
============================================
- Hits          11245    11223      -22
- Misses         6410     6416       +6
- Partials        874      890      +16

Impacted Files
Coverage Δ

...gister/server/consul/ConsulConfigChangedEvent.java
0.00% <0.00%> (-85.72%)
:arrow_down:

.../server/consul/ConsulServerRegisterRepository.java
0.00% <0.00%> (-80.44%)
:arrow_down:

...rg/apache/shenyu/admin/utils/ThreadLocalUtils.java
0.00% <0.00%> (-66.67%)
:arrow_down:

...a/org/apache/shenyu/common/utils/VersionUtils.java
67.85% <0.00%> (-10.72%)
:arrow_down:

...henyu/admin/service/impl/UpstreamCheckService.java
55.55% <0.00%> (-7.94%)
:arrow_down:

...henyu/plugin/grpc/resolver/ShenyuNameResolver.java
56.84% <0.00%> (-7.37%)
:arrow_down:

.../apache/shenyu/admin/model/dto/BatchCommonDTO.java
50.00% <0.00%> (-7.15%)
:arrow_down:

...apache/shenyu/admin/model/dto/AuthPathWarpDTO.java
57.14% <0.00%> (-7.15%)
:arrow_down:

...org/apache/shenyu/admin/model/dto/AuthPathDTO.java
58.82% <0.00%> (-5.89%)
:arrow_down:

...che/shenyu/sync/data/http/HttpSyncDataService.java
71.28% <0.00%> (-4.96%)
:arrow_down:

... and 25 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 4439a31...1ca24f2. Read the comment docs.


Change Mailchimp import to use campaigns

Branch
1st round

[x] Show users who have opened a campaign
[x] anonimize data returned (emails)
[x] Replace old code that used lists

2nd round

[x] Remove campaigns who have tracking disabled
[x] Change flow to:

retrieve campaign list
retrieve then subscriber activity
set opened field of campaign data with subscriber activity data
anonymize emails and other personal data (except ip)

3rd round

[x] Try to apply some CartoCSS to color differently opened=true emails

cc @saleiva

@saleiva  If you want to customize the CartoCSS, edit here.

Assigning to @xavijam to update the texts

Texts changed, but if we need to change them, let's open a new ticket, but it is really easy
https://github.com/CartoDB/cartodb/blob/master/lib/assets/javascripts/cartodb/new_common/views/create/listing/import_mailchimp_fallback.jst.ejs


MyLocation Button

Hi Community.
Is there a MyLocation button available to show the users location with a blue dot on the map?
I searched everything, maybe i miss the right search term?
Thanks for your help!!!

Hello @worldpeaceenginelabs ! This question would be better addressed on the community forum. We have more members active there, so you're more likely to get a response. Thanks!

I'll do. thx


Updates inquiryType text and ensures the modal has the correct title based on the CTA clicked

This is a redo of this PR based on @ashleyjelks and @zephraph suggestions (see discussion here)
If anyone has any ideas on how to mock inquiryType so I can test this please let me know!
Before:

After:

If anyone has any ideas on how to mock inquiryType so I can test this please let me know!

I've never tried this, don't know if it is an antipattern, just found it on a [search]
(https://www.havemybooks.com/blogs/40/How-to-properly-mock-React.useContext--with-JEST)
const mockDispatch = jest.fn()
const mockUseContext = jest.fn()
jest.mock("react", () => ({
  ...jest.requireActual("react"),
  useContext: mockUseContext
}))

/* ... */

useContext.mockReturnValue({state: { inquiryType: "whatever" }, dispatch: mockDispatch})

Those updates look good to me @lilyfromseattle! It'd probably be good to close the other PR.
If you need some eyes on writing any tests just let me know.


--help and --version built-ins should stop processing even in verbs scenario

What in object it seems not happen.

Already working on it in this temporary branch: helpvers190.

Fixed with test coverage (+ refactored some tests).

In verb scenario now you can also give this command:
$ app version
YourApp 9.34.33-beta


add Pydantic models for CAPE sandbox

This PR adds Pydantic data models for the CAPE sandbox report. There's a bunch of code, though it's pretty declarative and doesn't have much direct logic.
The primary purpose is to explicitly declare what data we expect to be in a CAPE sandbox report. If a given report doesn't match this shape, then we can't really make any guarantees that we'll interpret it correctly. Therefore, we should bail. These Pydantic models make it easy to do this validation.
closes #1701 CAPE v2.4 support
closes #1700 "static" may not be present
closes #1535 CAPE sandbox format
Checklist

[x] No CHANGELOG update needed

[ ] No new tests needed

[ ] No documentation update needed

test failures identified in CI. please continue to review, but i'll address those test failures before marking ready to merge.

I think we'd probably want to relax some of the restrictions made by pydantic, in order to support a larger set of reports.
I ran the previous version of the cape extractor and this one, and the previous version was able to extract features from certain reports, while this one would throw a lots of pydantic validation errors. Example:
Previous version of the CAPE extractor:

Pydantic version:

I've ran the stress tests locally on a subset of the avast set (around 900 samples), and I got no failures. Here are the capa results: https://raw.githubusercontent.com/yelhamer/avast-ctu-cape-dataset/main/capa_output.txt
This should be ready for merge now.

I ran these models against all 45k CAPE reports in the Avast dataset. Only two errors that I think are unrelated and I'll triage separately:
> parallel --progress --eta --bar --jobs 12 -a ~/malware/cape/avast/filenames.txt python scripts/try-deserialize-cape.py ~/malware/cape/avast/mnt2/public_full_reports/{}
27% 13645:35331=1h08m08s 46614eefee017008cc8a1e7355029c842739b1251c4cf2d5fe50965f898ca10c.json                                                            Traceback (most recent call last):
  File "/usr/local/google/home/wballenthin/code/public/capa/scripts/try-deserialize-cape.py", line 57, in <module>
    sys.exit(main())
             ^^^^^^
  File "/usr/local/google/home/wballenthin/code/public/capa/scripts/try-deserialize-cape.py", line 51, in main
    _ = CapeReport.from_buf(path.read_bytes())
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/google/home/wballenthin/code/public/capa/capa/features/extractors/cape/models.py", line 431, in from_buf
    return cls.model_validate_json(buf)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/google/home/wballenthin/code/public/capa/.direnv/python-3.11/lib/python3.11/site-packages/pydantic/main.py", line 523, in model_validate_json
    return cls.__pydantic_validator__.validate_json(json_data, strict=strict, context=context)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pydantic_core._pydantic_core.ValidationError: 1 validation error for CapeReport
  Invalid JSON: recursion limit exceeded at line 1774055 column 509 [type=json_invalid, input_value=b'{\n    "statistics": {\...1.0,\n    "ttps": {}\n}', input_type=bytes]
    For further information visit https://errors.pydantic.dev/2.1/v/json_invalid
63% 31235:17741=36m41s a2c81d4de7022e4ceefadbda984ac3b9d82075f0341eb182979cd50b3f33b140.json                                                              Traceback (most recent call last):
  File "/usr/local/google/home/wballenthin/code/public/capa/scripts/try-deserialize-cape.py", line 57, in <module>
    sys.exit(main())
             ^^^^^^
  File "/usr/local/google/home/wballenthin/code/public/capa/scripts/try-deserialize-cape.py", line 51, in main
    _ = CapeReport.from_buf(path.read_bytes())
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/google/home/wballenthin/code/public/capa/capa/features/extractors/cape/models.py", line 431, in from_buf
    return cls.model_validate_json(buf)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/google/home/wballenthin/code/public/capa/.direnv/python-3.11/lib/python3.11/site-packages/pydantic/main.py", line 523, in model_validate_json
    return cls.__pydantic_validator__.validate_json(json_data, strict=strict, context=context)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pydantic_core._pydantic_core.ValidationError: 1 validation error for CapeReport
  Invalid JSON: recursion limit exceeded at line 2411981 column 509 [type=json_invalid, input_value=b'{\n    "statistics": {\...1.0,\n    "ttps": {}\n}', input_type=bytes]
    For further information visit https://errors.pydantic.dev/2.1/v/json_invalid
100% 48976:0=0s ffff450d574e5e5706fb82a65cf515a9fa01346b3a72b2e259a7be091c727fd6.json


Discuss supported Android versions

Find out what API we will need and find the right Android version.

That is matter of Flutter, isn't it?

So we will set the version to Android 5+ and iOS 8+.


Disable setting currency for members

Currently, workspace members are able to select the Currency row in the Profile page and doing so leads to a not found page. Members shouldn't be able to interact with that row.
cc @narefyev91

Gonna close this issue

@JmillsExpensify we closed the PR because there was a dupe issue and that PR got merged first. However, @getusha had already completed the checklist, could you help with payment?

Payment summary: $500 for PR reviews.

All paid out, so closing this one.


[TODO] Split readme into seperate files

The read me is too long, we should split it into multiple files that match each section, this involves several steps:

[ ] Add section to new file, or merge with some of the content that exists in separated files already, reducing duplication. For example bounties.md
[ ] Make sure that there is a contents or tldr that links to those new files and that everything is interlinked when needed.

First step is likely the biggest, but we can divide and conquer, maybe comment with which files you work on in the comments or add a checklist to keep track.

I'm starting with the bounties/prizes section now.

Now starting team building/hackers etc

Event details done in #29 now adding links


Improvement for k8s.io/docs/setup/production-environment/tools/

Please add a Ansible guide to deploy Kubernetes on ubuntu 20.04 by play-book

This is quite a specific request @Pickacho
Can you outline why this improvement would be worthwhile?
/kind feature
/language en
/priority awaiting-more-evidence

Hi
I will be happy to help.
I believe in writing a guide of this kind, or its equivalent under operating systems like Red Hat / Centos
Can greatly promote beginners in the process of familiarization and installation of Kubernetes
While giving beginners an understanding of the tools they will most likely use during their job - such as Ansible