downloading data problem -- undefined symbol: _ZSt28__throw_bad_array_new_lengthv

my envs are
python3.9.7
cython 0.29.28
gcc 11.2
linux ubuntu_64
when I download cn data in qlib dir by command
" python scripts/get_data.py qlib_data --target_dir ~/.qlib/qlib_data/cn_data --region cn"
I got a problem:
Do not import qlib package in the repository directory in case of importing qlib from . without compiling
Traceback (most recent call last):
File "/home/yqm/Programs/qlib/scripts/get_data.py", line 5, in
from qlib.tests.data import GetData
File "/home/yqm/miniconda3/lib/python3.9/site-packages/pyqlib-<IP_ADDRESS>-py3.9-linux-x86_64.egg/qlib/tests/init.py", line 5, in
from qlib.data.filter import NameDFilter
File "/home/yqm/miniconda3/lib/python3.9/site-packages/pyqlib-<IP_ADDRESS>-py3.9-linux-x86_64.egg/qlib/data/init.py", line 8, in
from .data import (
File "/home/yqm/miniconda3/lib/python3.9/site-packages/pyqlib-<IP_ADDRESS>-py3.9-linux-x86_64.egg/qlib/data/data.py", line 20, in
from .cache import H
File "/home/yqm/miniconda3/lib/python3.9/site-packages/pyqlib-<IP_ADDRESS>-py3.9-linux-x86_64.egg/qlib/data/cache.py", line 36, in
from .ops import Operators  # pylint: disable=W0611  # noqa: F401
File "/home/yqm/miniconda3/lib/python3.9/site-packages/pyqlib-<IP_ADDRESS>-py3.9-linux-x86_64.egg/qlib/data/ops.py", line 18, in
from ._libs.rolling import rolling_slope, rolling_rsquare, rolling_resi
ImportError: /home/yqm/miniconda3/lib/python3.9/site-packages/pyqlib-<IP_ADDRESS>-py3.9-linux-x86_64.egg/qlib/data/_libs/rolling.cpython-39-x86_64-linux-gnu.so: undefined symbol: _ZSt28__throw_bad_array_new_lengthv
I tried command " python setup.py build_ext --inplace " it backs
skipping 'qlib/data/_libs/rolling.cpp' Cython extension (up-to-date)
skipping 'qlib/data/_libs/expanding.cpp' Cython extension (up-to-date)
copying build/lib.linux-x86_64-3.9/qlib/data/_libs/rolling.cpython-39-x86_64-linux-gnu.so -> qlib/data/_libs
copying build/lib.linux-x86_64-3.9/qlib/data/_libs/expanding.cpython-39-x86_64-linux-gnu.so -> qlib/data/_libs
but it didn't work , so I need help!

I resolved this error by
`sudo apt remove gcc-11 g++-11
sudo apt install gcc-10 g++10
in your qlib dir
sudo python setup.py install
`

I resolved this error by
sudo apt remove gcc-11 g++-11
sudo apt install gcc-10 g++10

in your qlib dir
sudo python setup.py install

I resolved this error by
sudo apt remove gcc-11 g++-11
sudo apt install gcc-10 g++10

in your qlib dir sudo python setup.py install

I tried buy it doesnt seems to be working. Any other workarounds ?

check qlib/build has been upgraded or not. If upgrade, if you use a Pycharm, may be you need run
python setup.py build_ext --inplace

check qlib/build has been upgraded or not. If upgrade, if you use a Pycharm, may be you need run
python setup.py build_ext --inplace

It gives me output like this.
running build_ext
skipping 'qlib/data/_libs/rolling.cpp' Cython extension (up-to-date)
skipping 'qlib/data/_libs/expanding.cpp' Cython extension (up-to-date)
copying build/lib.linux-x86_64-3.8/qlib/data/_libs/rolling.cpython-38-x86_64-linux-gnu.so -> qlib/data/_libs

is your cython version wrong?  mine is cython==3.0a1 . maybe install cython and then run install again.
finally,  check your  site-packages/qlib/data/_libs/ , it should include 6 file:
expanding.cpp ; rolling.cpp
rolling.cpython-38-x86_64-linux-gnu.so;  expanding.cpython-38-x86_64-linux-gnu.so
rolling.pxy ;  expanding.pxy

file:///home/hemang/Pictures/Screenshot%20from%202022-04-26%2016-39-53.png
-22:-47:59:67

still getting the same error
ImportError: /home/hemang/anaconda3/lib/python3.8/site-packages/qlib/data/_libs/rolling.cpython-38-x86_64-linux-gnu.so: undefined symbol: _ZSt28__throw_bad_array_new_lengthv

@hemangjoshi37a   Can you reproduce this error in a new Conda environment?
If you can reproduce it consistently, please give more info about your environment.
https://github.com/microsoft/qlib/blob/main/scripts/collect_info.py maybe helpful to you.

@hemangjoshi37a Can you reproduce this error in a new Conda environment? If you can reproduce it consistently, please give more info about your environment. https://github.com/microsoft/qlib/blob/main/scripts/collect_info.py maybe helpful to you.

running : python3.8 collect_info.py all
It gives me this output
(base) hemang@hemang-HP-Pavilion-g6-Notebook-PC:~/Downloads/notebook_scripts$ python3.8 collect_info.py all
Linux
x86_64
Linux-5.15.0-27-generic-x86_64-with-glibc2.10
#28-Ubuntu SMP Thu Apr 14 04:55:28 UTC 2022

Python version: 3.8.8 (default, Apr 13 2021, 19:58:26)  [GCC 7.3.0]

Qlib version: <IP_ADDRESS>
numpy==1.19.5
pandas==1.1.5
scipy==1.4.1
requests==2.26.0
sacred==0.8.2
python-socketio==5.4.0
redis==3.5.3
python-redis-lock==3.7.0
schedule==1.1.0
cvxpy==1.2.0
hyperopt==0.2.5
fire==0.4.0
statsmodels==0.12.2
xlrd==1.1.0
plotly==5.7.0
matplotlib==3.5.0
tables==3.6.1
pyyaml==6.0
mlflow==1.25.1
tqdm==4.62.3
loguru==0.5.3
lightgbm==3.3.2
tornado==6.1
joblib==1.1.0
fire==0.4.0
ruamel.yaml==0.16.12


ti_generic_queue_pkg set_scope procedure broken

When calling set_scope with ALL_INSTANCES (which is default -2 in the adaptations_pkg.vhd) then the procedure call fails. The reason for this is line 556 in ti_generic_queue_pkg.vhd. Please see a code snippet below:
if instance = ALL_INSTANCES then
      if scope'length > C_LOG_SCOPE_WIDTH then
        vr_scope := (others => scope(1 to C_LOG_SCOPE_WIDTH));
      else
        vr_scope(instance)                    := (others =>  NUL);
        vr_scope(instance)(1 to scope'length) := scope;
      end if;
      vr_scope_is_defined := (others => true);
    else

The line after will also fail in the same way.

Hi, and thank you for your feedback!
I will have a look into this issue and add a fix for our next release.
Best regards,
Marius

Fixed in release v2019.09.02


[incubator/couchdb] Allow overriding of full name in couchdb chart

What this PR does / why we need it:
This PR adds the possibility to provide a custom name in the values instead of the helm release name for the CouchDB chart.
Special notes for your reviewer:
This is my first contribution to kubernetes (or any OSS project) so if something is missing or not up to standard, please let me know and I'll fix to the best of my abilities

/assign @scottrigby

/ok-to-test

/assign

/lgtm


bugfix: Not to include data and errors in a same document

http://jsonapi.org/format/#document-top-level

The members data and errors MUST NOT coexist in the same
document.

Looks good @dopin , thank you!


Add Chrysalis history API as an INX plugin

As a node operator, I want to retain my Chrysalis database, so I can serve historical data.

see https://github.com/iotaledger/inx-api-core-v1


Different sensor activation options

As discussed on the Home Assistant forum, there should be some different options around each sensor. My existing alarm system is really good for this. So you can set a sensor to be:

Immediate
Entry/Exit
2x Entry Delay
4x Entry Delay
Fire

Immediate is as you currently have, whilst entry/exit allows the current delays. 2 and 4 times are useful for things like garages where the garage door opens but you don't necessarily get in to turn it off quickly enough.
Fire will always cause the alarm to go off whether the alarm is activated or not.
Hopefully you can implement something like this - would be great!

I added some extra options:

The always-on mode causes immediate triggering (regardless of the alarm state).
The 'allow open' setting ignores the state of a sensor when transitioning from arming -> armed. After that, the sensor is watched for a OFF->ON transition (so it may remain ON for a while longer).
I'm not sure about the 2x/4x entry delay yet.
In that case I might as well make the delay a property of a sensor instead of the arm-mode.

I wonder for each sensor if it should be a drop-down with the options:
Immediate on armed
Entry/Exit
2x Entry Delay
4x Entry Delay
Immediate siren (i.e: Always sensing)
Notify but no siren (see below)
Otherwise the dialog could get a bit complex.
Sadly can't currently test this as it's not picking up any sensors. It is not picking up the updater sensor anymore :-(.  Interestingly it's not even picking up the Shelly overheating sensor which I would expect I should be able to add to the alarm:
binary_sensor.downstairs_office_light_overheating
If it's overheating, I'd want to be notified immediately, although in that case may not want the siren to go off so maybe there should be another one in the list above, Notify but no siren.
Stefan

Fyi: overheating sensor details:
friendly_name: Downstairs Office Light Overheating
device_class: problem

Hi Stefan,
I like your idea about having a dropdown per sensor for choosing the response.
I will think about it, and check how much effort it would be to implement.
Regarding sensor types, check here:
https://github.com/nielsfaber/alarmo/blob/a4ae0acf20d499c248720e9d294774014ac884e9/frontend/src/data/sensors.ts#L15
I made some stricter filtering because I found the candidates list to be filled with irrelevant entities.
It would surprise me if you have not a single entity of the allowed types, it would mean you have no real security devices yet.
The filtering is not meant to be bothering/limiting.
I will consider to add some way of selecting an entity that is not in this list as well.
You could consider to add some template binary_sensors, which check the state of an input_boolean (this is how I test).
For these entities you can define any device_class.

No, haven't got anything set up yet after our previous discussion about the Konnected alarm.  Been looking at your suggestions, plus want to make sure that alarmo has all the features I need to replace the existing alarm.
I'd really like the shellys overheating sensors to be able to be used on the alarm (which makes me think maybe it would be good to be able to group sensors by type - so those sensors are in a group to just notify, the fire alarms notify and set off the siren and then I can put the entry zones into a group, and the 2/4x in a group and the others in an immediate if armed group. But not sure whether you can structure it that way on the backend or it would end up looking too confusing anyway). So would be good to be able to add extra binary sensors.
I'll try and figure out how to set up template binary_sensors.
Thanks!
Stefan

I'm closing this issue.
As for your original request:

2x Entry Delay
4x Entry Delay

Will not be implemented.
Instead I hope the support for multiple areas (with their own timing) will help/solve your use-case.


cmd/vet: teach vet that putting a large value in an interface makes a copy

package main

import "sync"

type T struct {
	sync.Mutex
	_ [4]byte
}

func main() {
	var t T

	var s T
	s = t

	var e interface{}
	e = t
}

$ go vet x.go
x.go:14: assignment copies lock value to s: main.T
exit status 1

vet should also complain about the assignment e = t, since it also copies t's value.

This would have caught some bugs for us.

cc @valyala :)

It looks like this is already fixed in #14664 (go tip):
go vet 1.go
1.go:14: assignment copies lock value to s: main.T
1.go:17: assignment copies lock value to e: main.T

Other cases must be checked such as passing lock as function argument accepting interface{} or returning lock from function returning interface{}

Prepared a CL, which expands copylock check to function calls and return values - see https://go-review.googlesource.com/20832 . This catches passing lock into interface{}.


mongo-connector should accept multiple target URL so it can still connect to the target even if one of the target nodes

mongo-connector does not support multiple targetURL though the elasticsearch python client supports that.
I have an elisticsearch cluster which has 4 nodes. I am using mongo-connector to sync data between mongodb and the elasticsearch service. However, the docManager.targetURL property in mongo-connector's configuration file accepts only a string representing a node address.  If the specified node is down, the mongo-connector cannot work even though the elastic cluster is still working. So the docManager.targetURL should accepts either a string array or a string so that user can specify multiple targetURL as follows:
  ...
  "docManagers": [
    {
      "docManager": "elastic_doc_manager",
      "targetURL": ["host1:9200", "host2:9200", "host3:9200"],
      "args": {
        "clientOptions": {"timeout": 200}
      }
    }
  ]
  ...

I have written my own doc-manager which extends the elastic-doc-manager to achieve what I want.

Please refer to https://github.com/mongodb-labs/mongo-connector/wiki/Writing-Your-Own-DocManager in case others don't know how to write own docmanager


Version bump

Latest version is 0.8.2
Did I missed something ?

My previous pull request did not update the version number, hence CocoaPods not updating the pod.. so now I incremented the version number

This file will not include libPhoneNumber-iOS in cocoapods update. and your pull request will not affect to cocoapods.
Please tell me your purpose.

CocoaPods is now not detecting a new version, so when I run pods update this library is not updated.
I was confusing the proper way to issue a update with another dependency management system. For CocoaPods you should also create a new tag right? Could you do that?

As you see below, it works fine.
I think your issue comes from something else.
And Did you try remove all pod and reinstall it ?
$ pod update
Update all pods
Analyzing dependencies

CocoaPods 0.36.0.beta.2 is available.
To update use: `gem install cocoapods --pre`
[!] This is a test version we'd love you to try.

For more information see http://blog.cocoapods.org
and the CHANGELOG for this version http://git.io/BaH8pQ.

Downloading dependencies
Using AFNetworking (1.3.4)
Using SDWebImage (3.7.1)
Using TMCache (1.2.3)
Installing libPhoneNumber-iOS 0.8.2 (was 0.8.1)
Using pop (1.0.7)
Generating Pods project
Integrating client project

$ cat Podfile
# Uncomment this line to define a global platform for your project
# platform :ios, '6.0'

target 'PhoneNumberDevelopment' do

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
pod 'AFNetworking', '~> 1.3.4'
pod 'SDWebImage', '~> 3.7'
pod 'TMCache', '~> 1.2.0'
pod 'pop', '~> 1.0'
pod 'libPhoneNumber-iOS', '~> 0.7'

end

target 'PhoneNumberDevelopmentTests' do

end

Nope, as you can see you are updating to version 0.8.2, which is the version you commited 10 days ago. 6 days ago you merged my previous pull request. Since the version number is not incremented and a new tag is not being created, the pod will not be updated..

No doubt! :) I did not create new version. All merged pull request will not affect right now. Normally, It would update once a month except critical error.

All right, then I will just wait to when you create a new tag. Was not sure if you want other people to update the version or not.

Anyway, I will create new version. (because variable initialization issue)


ionic start works once in 5 attempts

This is not a ionic-cli bug but something to do with github whenever i ionic start i get following error
Error: Unable to initalize app:  { [Error: getaddrinfo ENOTFOUND] code: 'ENOTFOUND', errno: 'ENOTFOUND', syscall: 'getaddrinfo' }

but after multiple attempts i can manage to get it done successfully
i think this has to something github not responding
and
secondly downloading bare projects every time is waste of bandwidth and time , so i suggest it should be cached like npm modules and downloaded only if its changed on github.
thankis

Any update?

i tried creating 3 different project  all were :+1: A Ok, i thinks it safe to close this issue for now

Solution
In the File   'C:\Users[username]\AppData\Roaming\npm\node_modules\ionic\node_modules\request\request.js'
Add the line
self.proxy = ' http://proxy.com:port ' ;
Just comom to in step 1 of the following link
http://jasonwatmore.com/post/2014/04/02/Ionic-Framework-Getting-ionic-start-appName-Working-Behind-a-Proxy.aspx
Regards


Unpin dependencies blocked on Python 3.8

Closes #4314 and #4014

Closing, will unpin shap and scipy in #4436 and continue to track pandas unpinning once the sktime and pandas incompatibility (issue here) is resolved.


Permanent reconcile of emqx-listeners loadbalancer

Describe the bug
I have setup EMQX in my local K3s dev cluster and also in AWS EKS. In AWS EKS it is running fine but in K3s the emqx-listeners loadbalancer service, daemonset and emqx-listener pods are frequently recreated. This results in disconnects of the MQTT clients.
If I set the type to ClusterIP it works fine but I need an external IP. I also tried to use metallb instead of k3s standardlb but with the same result. I have also seen that sometimes the service config object slightly changes when it gets recreated as the order of the ports is changed.
In the logs I can see the following error message "spec.loadBalancerClass: Invalid value: "null"".
emqx-operator logs
emqx-operator-controller-manager-55bd6f9676-6tcrp {"level":"error","ts":"2023-12-20T15:21:51Z","msg":"Reconciler error","controller":"emqx","controllerGroup":"apps.emqx.io","controllerKind":"EMQX","eMQX":{"name":"emqx","namespace":"phoenix-test"}," ││ namespace":"phoenix-test","name":"emqx","reconcileID":"a344a71c-c724-4a95-9212-8488617c5b28","error":"failed to create or update services: failed to update Service emqx-listeners: Service \"emqx-listeners\" is invalid: spec.loadBalancerClass: Inval ││ id value: \"null\": may not change once set","errorVerbose":"Service \"emqx-listeners\" is invalid: spec.loadBalancerClass: Invalid value: \"null\": may not change once set\nfailed to update Service emqx-listeners\ngithub.com/emqx/emqx-operator/int ││ ernal/handler.(*Handler).Update\n\t/workspace/internal/handler/handler.go:146\ngithub.com/emqx/emqx-operator/internal/handler.(*Handler).CreateOrUpdate\n\t/workspace/internal/handler/handler.go:125\ngithub.com/emqx/emqx-operator/internal/handler.(* ││ Handler).CreateOrUpdateList\n\t/workspace/internal/handler/handler.go:60\ngithub.com/emqx/emqx-operator/controllers/apps/v2beta1.(*addSvc).reconcile\n\t/workspace/controllers/apps/v2beta1/add_svc.go:34\ngithub.com/emqx/emqx-operator/controllers/app ││<EMAIL_ADDRESS>││ ontroller/controller.go:121\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.12.3/pkg/internal/controller/controller.go:320\nsigs.k8s.io/controller-runtime/pkg/i ││ nternal/controller.(*Controller).processNextWorkItem\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.12.3/pkg/internal/controller/controller.go:273\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2\n\t/go/pkg/mod/ ││ sigs.k8s.io/controller-runtime@v0.12.3/pkg/internal/controller/controller.go:234\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1598\nfailed to create or update services\ngithub.com/emqx/emqx-operator/controllers/apps/v2beta1.(*addSvc).re ││ concile\n\t/workspace/controllers/apps/v2beta1/add_svc.go:35\ngithub.com/emqx/emqx-operator/controllers/apps/v2beta1.(*EMQXReconciler).Reconcile\n\t/workspace/controllers/apps/v2beta1/emqx_controller.go:133\nsigs.k8s.io/controller-runtime/pkg/inter ││ nal/controller.(*Controller).Reconcile\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.12.3/pkg/internal/controller/controller.go:121\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler\n\t/go/pkg/mod/sigs.k8s.io ││ /controller-runtime<EMAIL_ADDRESS>││ .go:273\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.12.3/pkg/internal/controller/controller.go:234\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:159 ││ 8","stacktrace":"sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.12.3/pkg/internal/controller/controller.go:273\nsigs.k8s.io/controller-runtime/pkg/internal/c ││ ontroller.(*Controller).Start.func2.2\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.12.3/pkg/internal/controller/controller.go:234"}

emqx-listeners service
Name:                     emqx-listeners
Namespace:                phoenix-test
Labels:                   apps.emqx.io/instance=emqx
                          apps.emqx.io/managed-by=emqx-operator
Annotations:              apps.emqx.io/last-applied:
                            UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAb3JpZ2luYWy8VVtz8jYQ/S/7bFMbDBi99TrTmV5oSzOdxH1Yy+tUg5BUSSZJGf/3jmwDhtCkM+2XN1u7Onv2clYHQCPuyDqhFT...
Selector:                 apps.emqx.io/db-role=core,apps.emqx.io/instance=emqx,apps.emqx.io/managed-by=emqx-operator
Type:                     LoadBalancer
IP Family Policy:         SingleStack
IP Families:              IPv4
IP:                       <IP_ADDRESS>
IPs:                      <IP_ADDRESS>
LoadBalancer Ingress:     <IP_ADDRESS>
Port:                     tcp-default  1883/TCP
TargetPort:               1883/TCP
NodePort:                 tcp-default  31203/TCP
Endpoints:                <IP_ADDRESS>:1883,<IP_ADDRESS>:1883
Port:                     ws-default  8083/TCP
TargetPort:               8083/TCP
NodePort:                 ws-default  30595/TCP
Endpoints:                <IP_ADDRESS>:8083,<IP_ADDRESS>:8083
Port:                     wss-default  8084/TCP
TargetPort:               8084/TCP
NodePort:                 wss-default  31907/TCP
Endpoints:                <IP_ADDRESS>:8084,<IP_ADDRESS>:8084
Port:                     ssl-default  8883/TCP
TargetPort:               8883/TCP
NodePort:                 ssl-default  32631/TCP
Endpoints:                <IP_ADDRESS>:8883,<IP_ADDRESS>:8883
Session Affinity:         None
External Traffic Policy:  Cluster
Events:
  Type     Reason                   Age                  From                Message
  ----     ------                   ----                 ----                -------
  Warning  UnAvailableLoadBalancer  26m (x5 over 32m)                        There are no available nodes for LoadBalancer
  Normal   UpdatedLoadBalancer      26m (x6 over 33m)                        Updated LoadBalancer with new IPs: [] -> [<IP_ADDRESS>]
  Normal   EnsuringLoadBalancer     3m2s (x61 over 33m)  service-controller  Ensuring load balancer
  Normal   AppliedDaemonSet         3m2s (x61 over 33m)                      Applied LoadBalancer DaemonSet kube-system/svclb-emqx-listeners-c1057f0a

emqx-listeners daemonset
Name:           svclb-emqx-listeners-c1057f0a
Selector:       app=svclb-emqx-listeners-c1057f0a
Node-Selector:  <none>
Labels:         objectset.rio.cattle.io/hash=8c4a41d9478c436ff8b5f2af3a960b16b4f6d74b
                svccontroller.k3s.cattle.io/nodeselector=false
                svccontroller.k3s.cattle.io/svcname=emqx-listeners
                svccontroller.k3s.cattle.io/svcnamespace=phoenix-test
Annotations:    deprecated.daemonset.template.generation: 37
                objectset.rio.cattle.io/applied:
                  H4sIAAAAAAAA/8xW3W7jNhN9lQ9zLSnSRkm0Ar6LIAmKoF3HsL29WRjBiBrFrCmSJUfaGIHfvaDyUyV11kGBZgNfGCRnzpDnzEDnDtDK38l5aTSUgNb6gz6DCNZS11DCOVJr9JwYIm...
                objectset.rio.cattle.io/id:
                objectset.rio.cattle.io/owner-gvk: /v1, Kind=Service
                objectset.rio.cattle.io/owner-name: emqx-listeners
                objectset.rio.cattle.io/owner-namespace: phoenix-test
Desired Number of Nodes Scheduled: 1
Current Number of Nodes Scheduled: 1
Number of Nodes Scheduled with Up-to-date Pods: 1
Number of Nodes Scheduled with Available Pods: 1
Number of Nodes Misscheduled: 0
Pods Status:  1 Running / 0 Waiting / 0 Succeeded / 0 Failed
Pod Template:
  Labels:           app=svclb-emqx-listeners-c1057f0a
                    svccontroller.k3s.cattle.io/svcname=emqx-listeners
                    svccontroller.k3s.cattle.io/svcnamespace=phoenix-test
  Service Account:  svclb
  Containers:
   lb-tcp-8083:
    Image:      rancher/klipper-lb:v0.4.4
    Port:       8083/TCP
    Host Port:  8083/TCP
    Environment:
      SRC_PORT:    8083
      SRC_RANGES:  <IP_ADDRESS>/0
      DEST_PROTO:  TCP
      DEST_PORT:   8083
      DEST_IPS:    <IP_ADDRESS>
    Mounts:        <none>
   lb-tcp-8084:
    Image:      rancher/klipper-lb:v0.4.4
    Port:       8084/TCP
    Host Port:  8084/TCP
    Environment:
      SRC_PORT:    8084
      SRC_RANGES:  <IP_ADDRESS>/0
      DEST_PROTO:  TCP
      DEST_PORT:   8084
      DEST_IPS:    <IP_ADDRESS>
    Mounts:        <none>
   lb-tcp-8883:
    Image:      rancher/klipper-lb:v0.4.4
    Port:       8883/TCP
    Host Port:  8883/TCP
    Environment:
      SRC_PORT:    8883
      SRC_RANGES:  <IP_ADDRESS>/0
      DEST_PROTO:  TCP
      DEST_PORT:   8883
      DEST_IPS:    <IP_ADDRESS>
    Mounts:        <none>
   lb-tcp-1883:
    Image:      rancher/klipper-lb:v0.4.4
    Port:       1883/TCP
    Host Port:  1883/TCP
    Environment:
      SRC_PORT:    1883
      SRC_RANGES:  <IP_ADDRESS>/0
      DEST_PROTO:  TCP
      DEST_PORT:   1883
      DEST_IPS:    <IP_ADDRESS>
    Mounts:        <none>
  Volumes:         <none>
Events:
  Type    Reason            Age                  From                  Message
  ----    ------            ----                 ----                  -------
  Normal  SuccessfulCreate  34m                  daemonset-controller  Created pod: svclb-emqx-listeners-c1057f0a-4d9bx
  Normal  SuccessfulDelete  33m                  daemonset-controller  Deleted pod: svclb-emqx-listeners-c1057f0a-4d9bx
  Normal  SuccessfulCreate  33m                  daemonset-controller  Created pod: svclb-emqx-listeners-c1057f0a-m27ml
  Normal  SuccessfulDelete  32m                  daemonset-controller  Deleted pod: svclb-emqx-listeners-c1057f0a-m27ml
  Normal  SuccessfulCreate  32m                  daemonset-controller  Created pod: svclb-emqx-listeners-c1057f0a-45nj6
  Normal  SuccessfulDelete  28m                  daemonset-controller  Deleted pod: svclb-emqx-listeners-c1057f0a-45nj6
  Normal  SuccessfulCreate  28m                  daemonset-controller  Created pod: svclb-emqx-listeners-c1057f0a-54wkz
  Normal  SuccessfulDelete  28m                  daemonset-controller  Deleted pod: svclb-emqx-listeners-c1057f0a-54wkz
  Normal  SuccessfulCreate  28m                  daemonset-controller  Created pod: svclb-emqx-listeners-c1057f0a-cvls4
  Normal  SuccessfulDelete  27m                  daemonset-controller  Deleted pod: svclb-emqx-listeners-c1057f0a-cvls4
  Normal  SuccessfulCreate  27m                  daemonset-controller  Created pod: svclb-emqx-listeners-c1057f0a-spzph
  Normal  SuccessfulDelete  27m                  daemonset-controller  Deleted pod: svclb-emqx-listeners-c1057f0a-spzph
  Normal  SuccessfulCreate  27m                  daemonset-controller  Created pod: svclb-emqx-listeners-c1057f0a-bdb8l
  Normal  SuccessfulDelete  26m                  daemonset-controller  Deleted pod: svclb-emqx-listeners-c1057f0a-bdb8l
  Normal  SuccessfulCreate  26m                  daemonset-controller  Created pod: svclb-emqx-listeners-c1057f0a-xqz92
  Normal  SuccessfulDelete  26m                  daemonset-controller  Deleted pod: svclb-emqx-listeners-c1057f0a-xqz92
  Normal  SuccessfulCreate  26m                  daemonset-controller  Created pod: svclb-emqx-listeners-c1057f0a-jbdj5
  Normal  SuccessfulDelete  25m                  daemonset-controller  Deleted pod: svclb-emqx-listeners-c1057f0a-jbdj5
  Normal  SuccessfulCreate  22m (x5 over 25m)    daemonset-controller  (combined from similar events): Created pod: svclb-emqx-listeners-c1057f0a-8v9m6
  Normal  SuccessfulDelete  4m9s (x23 over 25m)  daemonset-controller  (combined from similar events): Deleted pod: svclb-emqx-listeners-c1057f0a-6twvk

To Reproduce
Deploy emqx operator in K3s with listenersServiceTemplate->spec->type set to LoadBalancer. As per documentation.
Expected behavior
EMQX-Operator does not trigger reconcile of emqx-listeners service when using loadbalancer.
Anything else we need to know?:
Environment details::

Kubernetes version: v1.28.4+k3s2
Cloud-provider/provisioner: k3s
emqx-operator version: 2.2.5
Install method: helm

Hi @thyrasel could you please enable debug for EMQX Operator, and share it log ? Just set development=true in EMQX Operator Helm chart value.

Hi @Rory-Z, I set development to true and let it run for a couple of minutes. I couldn't see any log messages when the objects are recreated. The spec.loadBalancerClass: Invalid value: "null" log message seems to only occur when removing the loadBalancerClass setting after it was set to something else like metallb.
2023-12-21T10:11:11Z    INFO    controller-runtime.metrics      Metrics server is starting to listen    {"addr": ":8080"}
2023-12-21T10:11:11Z    INFO    controller-runtime.builder      Registering a mutating webhook  {"GVK": "apps.emqx.io/v1beta4, Kind=EmqxPlugin", "path": "/mutate-apps-emqx-io-v1beta4-emqxplugin"}
2023-12-21T10:11:11Z    INFO    controller-runtime.webhook      Registering webhook     {"path": "/mutate-apps-emqx-io-v1beta4-emqxplugin"}
2023-12-21T10:11:11Z    INFO    controller-runtime.builder      Registering a validating webhook        {"GVK": "apps.emqx.io/v1beta4, Kind=EmqxPlugin", "path": "/validate-apps-emqx-io-v1beta4-emqxplugin"}
2023-12-21T10:11:11Z    INFO    controller-runtime.webhook      Registering webhook     {"path": "/validate-apps-emqx-io-v1beta4-emqxplugin"}
2023-12-21T10:11:11Z    INFO    controller-runtime.webhook      Registering webhook     {"path": "/convert"}
2023-12-21T10:11:11Z    INFO    controller-runtime.builder      Conversion webhook enabled      {"GVK": "apps.emqx.io/v1beta4, Kind=EmqxPlugin"}
2023-12-21T10:11:11Z    INFO    controller-runtime.builder      Registering a mutating webhook  {"GVK": "apps.emqx.io/v1beta4, Kind=EmqxBroker", "path": "/mutate-apps-emqx-io-v1beta4-emqxbroker"}
2023-12-21T10:11:11Z    INFO    controller-runtime.webhook      Registering webhook     {"path": "/mutate-apps-emqx-io-v1beta4-emqxbroker"}
2023-12-21T10:11:11Z    INFO    controller-runtime.builder      Registering a validating webhook        {"GVK": "apps.emqx.io/v1beta4, Kind=EmqxBroker", "path": "/validate-apps-emqx-io-v1beta4-emqxbroker"}
2023-12-21T10:11:11Z    INFO    controller-runtime.webhook      Registering webhook     {"path": "/validate-apps-emqx-io-v1beta4-emqxbroker"}
2023-12-21T10:11:11Z    INFO    controller-runtime.builder      Conversion webhook enabled      {"GVK": "apps.emqx.io/v1beta4, Kind=EmqxBroker"}
2023-12-21T10:11:11Z    INFO    controller-runtime.builder      Registering a mutating webhook  {"GVK": "apps.emqx.io/v1beta4, Kind=EmqxEnterprise", "path": "/mutate-apps-emqx-io-v1beta4-emqxenterprise"}
2023-12-21T10:11:11Z    INFO    controller-runtime.webhook      Registering webhook     {"path": "/mutate-apps-emqx-io-v1beta4-emqxenterprise"}
2023-12-21T10:11:11Z    INFO    controller-runtime.builder      Registering a validating webhook        {"GVK": "apps.emqx.io/v1beta4, Kind=EmqxEnterprise", "path": "/validate-apps-emqx-io-v1beta4-emqxenterprise"}
2023-12-21T10:11:11Z    INFO    controller-runtime.webhook      Registering webhook     {"path": "/validate-apps-emqx-io-v1beta4-emqxenterprise"}
2023-12-21T10:11:11Z    INFO    controller-runtime.builder      Conversion webhook enabled      {"GVK": "apps.emqx.io/v1beta4, Kind=EmqxEnterprise"}
2023-12-21T10:11:11Z    INFO    controller-runtime.builder      skip registering a mutating webhook, object does not implement admission.Defaulter or WithDefaulter wasn't called       {"GVK": "apps.emqx.io/v2beta1, Kind=Rebalance"}
2023-12-21T10:11:11Z    INFO    controller-runtime.builder      Registering a validating webhook        {"GVK": "apps.emqx.io/v2beta1, Kind=Rebalance", "path": "/validate-apps-emqx-io-v2beta1-rebalance"}
2023-12-21T10:11:11Z    INFO    controller-runtime.webhook      Registering webhook     {"path": "/validate-apps-emqx-io-v2beta1-rebalance"}
2023-12-21T10:11:11Z    INFO    controller-runtime.builder      Conversion webhook enabled      {"GVK": "apps.emqx.io/v2beta1, Kind=Rebalance"}
2023-12-21T10:11:11Z    INFO    setup   starting manager
2023-12-21T10:11:11Z    INFO    controller-runtime.webhook.webhooks     Starting webhook server
2023-12-21T10:11:11Z    INFO    Starting server {"kind": "health probe", "addr": "[::]:8081"}
2023-12-21T10:11:11Z    INFO    Starting server {"path": "/metrics", "kind": "metrics", "addr": "[::]:8080"}
I1221 10:11:11.324796       1 leaderelection.go:248] attempting to acquire leader lease emqx-operator-system/19fd6fcc.emqx.io...
2023-12-21T10:11:11Z    INFO    controller-runtime.certwatcher  Updated current TLS certificate
2023-12-21T10:11:11Z    INFO    controller-runtime.webhook      Serving webhook server  {"host": "", "port": 9443}
2023-12-21T10:11:11Z    INFO    controller-runtime.certwatcher  Starting certificate watcher
I1221 10:11:53.648163       1 leaderelection.go:258] successfully acquired lease emqx-operator-system/19fd6fcc.emqx.io
2023-12-21T10:11:53Z    DEBUG   events  Normal  {"object": {"kind":"Lease","namespace":"emqx-operator-system","name":"19fd6fcc.emqx.io","uid":"1c84f26b-db4e-448d-99e3-8389bf87597a","apiVersion":"coordination.k8s.io/v1","resourceVersion":"102619"}, "reason": "LeaderElection", "message": "emqx-operator-controller-manager-6586b54fb9-4vd7b_ee18811c-6466-4fb5-9ae2-1843a7c69660 became leader"}
2023-12-21T10:11:53Z    INFO    Starting EventSource    {"controller": "emqxbroker", "controllerGroup": "apps.emqx.io", "controllerKind": "EmqxBroker", "source": "kind source: *v1beta4.EmqxBroker"}
2023-12-21T10:11:53Z    INFO    Starting EventSource    {"controller": "emqxplugin", "controllerGroup": "apps.emqx.io", "controllerKind": "EmqxPlugin", "source": "kind source: *v1beta4.EmqxPlugin"}
2023-12-21T10:11:53Z    INFO    Starting Controller     {"controller": "emqxbroker", "controllerGroup": "apps.emqx.io", "controllerKind": "EmqxBroker"}
2023-12-21T10:11:53Z    INFO    Starting Controller     {"controller": "emqxplugin", "controllerGroup": "apps.emqx.io", "controllerKind": "EmqxPlugin"}
2023-12-21T10:11:53Z    INFO    Starting EventSource    {"controller": "emqxenterprise", "controllerGroup": "apps.emqx.io", "controllerKind": "EmqxEnterprise", "source": "kind source: *v1beta4.EmqxEnterprise"}
2023-12-21T10:11:53Z    INFO    Starting Controller     {"controller": "emqxenterprise", "controllerGroup": "apps.emqx.io", "controllerKind": "EmqxEnterprise"}
2023-12-21T10:11:53Z    INFO    Starting EventSource    {"controller": "rebalance", "controllerGroup": "apps.emqx.io", "controllerKind": "Rebalance", "source": "kind source: *v2beta1.Rebalance"}
2023-12-21T10:11:53Z    INFO    Starting Controller     {"controller": "rebalance", "controllerGroup": "apps.emqx.io", "controllerKind": "Rebalance"}
2023-12-21T10:11:53Z    INFO    Starting EventSource    {"controller": "emqx", "controllerGroup": "apps.emqx.io", "controllerKind": "EMQX", "source": "kind source: *v2beta1.EMQX"}
2023-12-21T10:11:53Z    INFO    Starting Controller     {"controller": "emqx", "controllerGroup": "apps.emqx.io", "controllerKind": "EMQX"}
2023-12-21T10:11:53Z    INFO    Starting workers        {"controller": "emqxbroker", "controllerGroup": "apps.emqx.io", "controllerKind": "EmqxBroker", "worker count": 1}
2023-12-21T10:11:53Z    INFO    Starting workers        {"controller": "emqxenterprise", "controllerGroup": "apps.emqx.io", "controllerKind": "EmqxEnterprise", "worker count": 1}
2023-12-21T10:11:53Z    INFO    Starting workers        {"controller": "rebalance", "controllerGroup": "apps.emqx.io", "controllerKind": "Rebalance", "worker count": 1}
2023-12-21T10:11:53Z    INFO    Starting workers        {"controller": "emqxplugin", "controllerGroup": "apps.emqx.io", "controllerKind": "EmqxPlugin", "worker count": 1}
2023-12-21T10:11:53Z    INFO    Starting workers        {"controller": "emqx", "controllerGroup": "apps.emqx.io", "controllerKind": "EMQX", "worker count": 1}
2023-12-21T10:11:54Z    INFO    KubeAPIWarningLogger    unknown field "spec.coreTemplate.metadata.creationTimestamp"
2023-12-21T10:11:54Z    INFO    KubeAPIWarningLogger    unknown field "spec.dashboardServiceTemplate.metadata.creationTimestamp"
2023-12-21T10:11:54Z    INFO    KubeAPIWarningLogger    unknown field "spec.listenersServiceTemplate.metadata.creationTimestamp"

When emqx-listeners pods recreated, the EMQX Operator have no log?

Yes correct. the EMQX Operator has not logged anything since yesterday. Last message is still the one from 2023-12-21T10:11:54Z which is the last message in log above.

Have any emqx pods been recreated ?
And could you please check the metadata.ownerReferences in emqx-listeners service

The EMQX operator and core pods have no restarts. Only the emqx-listener loadbalancer pods get restarted
emqx-listeners service
apiVersion: v1
kind: Service
metadata:
  annotations:
    apps.emqx.io/last-applied: UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAb3JpZ2luYWy8VVtzszYQ/S/7DC5gEmO99TrTmV7c1s10EvqwiCXVWJZUSThJPfz3jgDb2HGTzrRf3kC7Onv2clZ7QCPuyDqhFTDYpRDBRqgaGPxCdic4QQRb8lijR2B74JbQC63WYkvO49YAgyzJ5nGaxVm6ThOW3rAsv4cIJFYkXbiExrgZbf98ngn9mVDOo+IEDMIRROfmLSp8pDquXkaHWBuy6LWFLoLR+o0gWTtgD9f4N71x/WJCiMHz7nR+lwZGDZsm1bBGKJTiL7I93xmwfRfBjpXghirMNm1FVpEnF0hKjXVcoQx52JhLQtWaEsK1rougYc6jb92AHZy/GH2HE6EeLTk3uB+zssBgM3cQwZDxkNKvpkYfuuDaypLTre1LNwaIwIstTXuQrZMlyzM2T+6hi/6v+qBS2veUpgVq2FnrJDofozFSUN3nFjxOU3D90mkcrhinwzDi6SdF9mdqyJLiNAXesH0JrahLYCXc1MVieVtRnOZNEedNsYjxhpL4Fm+rBV+my6SoS+gmHTPEx1yl1Bw9fTfp2w+6ppW23h1o0rMnq1CuLTaN4CstBX85GIV6w2hGmDPa4bAElhbFPCrBWO0117LPZP3laiB6KqDCLU3hjt/jvcO/R/tIfjV6XMQqkg+NlX9YrE9aw2FWSBIPG2n0ceSCwD5vGqGEP3ba9xLbX0j88PUPMn9Tz79HMPAeNqMUzpMKS2s4dwb75WD+0KTEc+zJ+RDnUjKXa/NMc7usIo9hIVRS882P4fJXJGkg6m1LEXCtvNVShoSGk/HR+Pr7n36DM5IQBU0C+1eK7DM8bLkTv7RIknwR9v9BpVy2zpP9dhWsySyfz9JFOisSiGDU18P+wOLJxTU12Eo/WsfZh1Orw4CE2k96HVzC/jyCXEXJ30fJJyjOydcoxftcijMunptXKOn7KMEl1Hcyveedr6vYahkicG3p8mH+T+/2IAWYrtS+ncdn8uKR7Lru7wAAAP//UEsHCJ1sc+njAgAAmwgAAFBLAQIUABQACAAIAAAAAACdbHPp4wIAAJsIAAAIAAAAAAAAAAAAAAAAAAAAAABvcmlnaW5hbFBLBQYAAAAAAQABADYAAAAZAwAAAAA=
  creationTimestamp: "2023-12-21T10:15:24Z"
  finalizers:
  - service.kubernetes.io/load-balancer-cleanup
  labels:
    apps.emqx.io/instance: emqx
    apps.emqx.io/managed-by: emqx-operator
  name: emqx-listeners
  namespace: phoenix-test
  ownerReferences:
  - apiVersion: apps.emqx.io/v2beta1
    blockOwnerDeletion: true
    controller: true
    kind: EMQX
    name: emqx
    uid: 5d8796be-14f8-4f87-a5e0-6a6b7c91908d
  resourceVersion: "180119"
  uid: cf70549d-cbed-4334-b6b1-b2bcbe3f1722
spec:
  allocateLoadBalancerNodePorts: true
  clusterIP: <IP_ADDRESS>
  clusterIPs:
  - <IP_ADDRESS>
  externalTrafficPolicy: Cluster
  internalTrafficPolicy: Cluster
  ipFamilies:
  - IPv4
  ipFamilyPolicy: SingleStack
  ports:
  - name: ws-default
    nodePort: 31572
    port: 8083
    protocol: TCP
    targetPort: 8083
  - name: wss-default
    nodePort: 31595
    port: 8084
    protocol: TCP
    targetPort: 8084
  - name: ssl-default
    nodePort: 31974
    port: 8883
    protocol: TCP
    targetPort: 8883
  - name: tcp-default
    nodePort: 32749
    port: 1883
    protocol: TCP
    targetPort: 1883
  selector:
    apps.emqx.io/db-role: core
    apps.emqx.io/instance: emqx
    apps.emqx.io/managed-by: emqx-operator
  sessionAffinity: None
  type: LoadBalancer
status:
  loadBalancer:
    ingress:
    - ip: <IP_ADDRESS>

I'm sorry, what's the emqx-listener loadbalancer pods ? In K8s, the service resource doesn't have pod

Yes correct, the service source does not have a pod itself. In K3s a loadbalancer service automatically creates a daemonset which has some pods to do the port forwarding and routing magic. Those pods are also stopped and recreated each time which I think is the reason for the MQTT disconnects. So far I could not figure out what causes the frequent events in the emqx-listener service.

Looks it is a k3s issue ? I'm sorry I don't know much about k3s, when load balancer pod restart, do we have any message, like log / event / other something?

I'm seeing the same issue, listeners service is modified constantly. After running for one day I'm on revision 61160200 and I multiple new revision per second.

Hi, @thyrasel @rouke-broersma Sorry for delay, I think I already find the reason, please wait for next version.

Hi @thyrasel @rouke-broersma the EMQX operator 2.2.8 has beed released, please try it. If the issue still exist, please let me know.

@Rory-Z 2.2.8 does not fix the issue. As soon as I turn on the operator again I have extreme churn on my api server and I can see the listener service being update constantly.
I did find these warnings and errors in the logs but I'm not sure if they're relevant:
Operator:
{"level":"info","ts":"2024-01-08T07:15:45Z","logger":"KubeAPIWarningLogger","msg":"unknown field \"spec.coreTemplate.metadata.creationTimestamp\""}
{"level":"info","ts":"2024-01-08T07:15:45Z","logger":"KubeAPIWarningLogger","msg":"unknown field \"spec.listenersServiceTemplate.metadata.creationTimestamp\""}
{"level":"info","ts":"2024-01-08T07:15:45Z","logger":"KubeAPIWarningLogger","msg":"unknown field \"spec.replicantTemplate.metadata.creationTimestamp\""}

Emqx node:
2024-01-07T17:10:47.098691+00:00 [error] msg: cluster_rpc_peers_lagging, mfa: emqx_cluster_rpc:multicall/5(160), nodes: ['emqx@<IP_ADDRESS>','emqx<EMAIL_ADDRESS>status: stopped_nodes, tnx_id: 4252

The warning log of EMQX operator just can be ignore, but the EMQX pod log is a little strange, looks at you have 2 core node of EMQX, and 1 replicant node of EMQX, it is different of your share YAML file.
PS: what is the version of EMQX ?

@rouke-broersma Cloud you please share your latest YAML file ? I'm deploy EMQX CR in my minikube, looks good, the resourceVersion of the EMQX listener service didn't change again.
I check it like this:
reversion=$(kubectl get svc emqx-listeners -o json | jq '.metadata.resourceVersion')
while true; do if [[ $(kubectl get svc emqx-listeners -o json | jq '.metadata.resourceVersion') != $reversion ]]; then echo "reversion has been changed"; fi; sleep 1; done

I'm run this loop during 5 minutes, looks good.

@Rory-Z
here's my cluster yaml: https://github.com/broersma-forslund/homelab/blob/main/apps/emqx/templates/cluster.yaml
I checked the logs again and looks like those logs are from yesterday. I had removed the replicant and extra core nodes but the cluster did not realize this yet (marked as offline, but existing). Looks like today they are actually gone.
My emqx version is 5.4.1.

So strange, could you please tell me how to deploy k3s same to you, let me check it in k3s.

@Rory-Z I think it's related to my loadbalancer manager (cilium lbi-ipam).
It sets this status on the service:
  conditions:
    - lastTransitionTime: '2024-01-06T21:11:20Z'
      message: ''
      reason: satisfied
      status: 'True'
      type: io.cilium/lb-ipam-request-satisfied
  loadBalancer:
    ingress:
      - ip: <IP_ADDRESS>

I am not using k3s, I'm using talos kubernetes. But I think this is because of cilium: https://cilium.io/ (or in the case of @thyrasel their loadbalancer manager).
Is emqx trying to control the complete status of the service? Because I don't think emqx can manage this since emqx is not the controller responsible for services.

I don't think emqx can manage this since emqx is not the controller responsible for services. The services controller uses this status field for service status and for the ingress IP.

I think you are right, let me think about it.

I also tested the new 2.2.8 version but it did not solve the issue.
I don't think this is a k3s related issue. As I was able to reproduce this behaviour also in AWS EKS. If I explicitly set the loadbalancer class like loadBalancerClass: service.k8s.aws/nlb in the dashboardServiceTemplate and listenerServiceTemplate then the emqx-dashboard and emqx-listener services frequently get reconciled. As soon as I remove the loadBalancerClass option it stops reconciling.

Hi @rouke-broersma @thyrasel cloud  you please try 2.2.9, it is has been released

I'm seeing the same:
2024-01-08T10:58:07.800262629Z {"level":"info","ts":"2024-01-08T10:58:07Z","msg":"Will update EMQX sub-resource","controller":"emqx","controllerGroup":"apps.emqx.io","controllerKind":"EMQX","eMQX":{"name":"emqx","namespace":"emqx"},"namespace":"emqx","name":"emqx","reconcileID":"49e78693-0888-44ad-90b6-bbe88fab6167","sub-resource":"Service","name":"emqx-listeners","patch":"{\"spec\":{\"ports\":[{\"name\":\"ssl-default\",\"port\":8883,\"protocol\":\"TCP\",\"targetPort\":8883},{\"name\":\"wss-default\",\"port\":8084,\"protocol\":\"TCP\",\"targetPort\":8084}]}}"}

OK, looks the port list order is the reason of the service update, could you please watch the listener service, check the .spec.ports has some changed ?

@Rory-Z I watched the service for a while but did not see any changes in .spec.ports only the metadata fields 'apps.emqx.io/last-applied' and 'resourceVersion' changed what I think is expected.
I have sometimes seen a change in .spec.ports but by far not with each reconcile.  To me it seems that since this change in 2.2.8 the port list does stays in order.

I see you te same as @thyrasel , ports are no longer changed. Only the revision and last applied.

Hi guys, I belive the 2.2.10 will be work, please try it.

@Rory-Z this fixes the issue for me on the listeners service! :partying_face:
However I just noticed that the emqx-core pod has a similar issue. It is also getting reconciled constantly when the operator is online. Do you want me to create a new issue for that?

@Rory-Z this version looks very promising. I have it running now since 10min without any reconcile. Thanks a lot.

I just noticed that the emqx-core pod has a similar issue. It is also getting reconciled constantly when the operator is online. Do you want me to create a new issue for that?

Yes, please create a new issue

Guys, I'm glad this issue has been fixed in 2.2.10. I will close this issue.


Terraform Amplify Provider

Is this feature request related to a new or existing Amplify category?
New category
Is this related to another service?
No response
Describe the feature you'd like to request
I know that there is a progress of terraform provider of amplify. Is there any ETA? We can be alpha tester for that project.
Describe the solution you'd like
We would like to use Terraform since we can use other plugins and existing infrastructure.
Describe alternatives you've considered
The only alternative is using CLI.
Additional context
No response
Is this something that you'd be interested in working on?

[ ] 👋 I may be able to implement this feature request
[ ] ⚠ This feature might incur a breaking change

We're still looking at this for the future and measuring customer interest, but at this time a TF provider isn't under active development. Will leave this open as a feature request.


Update default provider to MapLibre 2.4

Description
Close #133
Type of Pull Request

[x] Adding a feature
[ ] Fixing a bug
[ ] Maintaining documents
[ ] Others ()

Verify the followings

[x] Code is up-to-date with the main branch
[x] No build errors after npm run build
[x] No lint errors after npm run lint
[x] No errors on using charites help globally
[x] Make sure all the existing features working well
[ ] Have you added at least one unit test if you are going to add new feature?
[ ] Have you updated documentation?

Refer to CONTRIBUTING.MD for more details.

Congratulations! Now, we can preview 3D terrain by adding terrains in the style.yml


Permanent application of the JS to exported Epubs

Describe your suggested feature
Instead of including the custom JS into the EPUB (and hope to find a good reader that supports it) apply permanently the changes that comes with the JS injection making the EPUB more compatible with epub readers that do not support JS.
Why
Few readers support JS, so just change permanently the text based on the custom JS injected so the EPUB will not have the JS in it.
Other details
It would make the js injection in epubs way more comfortable since it would make the epub file very compatible with epub readers.
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a short but informative title.
[X] If this is an issue with a source, I should be opening an issue in the sources repository.
[X] I have updated the app to version 1.1.14.
[X] I will fill out all of the requested information in this form.

Epub3 readers support Javascript, for example:
Reasily, Lithium, PocketBook, Gitden Reader, Aldiko Next, Overdrive, Bluefire Reader, BookFusion, Infinity Reader, and possibly many more.


gsoc: setup.cfg: Move the tests to testpaths key

Closes https://github.com/coala/corobo/issues/115
Reviewers Checklist

[ ] Appropriate logging is done.
[ ] Appropriate error responses.
[ ] Handle every possible exception.
[ ] Make sure there is a docstring in the command functions. Hint: Lookout for
botcmd and re_botcmd decorators.
[ ] See that 100% coverage is there.
[ ] See to it that mocking is not done where it is not necessary.

ack 78e04795286a4c604d265f64b752b7e42651b9b0

reack 78e04795286a4c604d265f64b752b7e42651b9b0

reack 78e04795286a4c604d265f64b752b7e42651b9b0

ack 78e04795286a4c604d265f64b752b7e42651b9b0

ack 78e0479

ack 78e04795286a4c604d265f64b752b7e42651b9b0

@rultor merge

@rultor merge

@meetmangukiya OK, I'll try to merge now. You can check the progress of the merge here

@rultor merge

@meetmangukiya Done! FYI, the full log is here (took me 2min)


Nested coroutines. Is it possible?

Hi, I have a code that semantically is similar to this:
void routine()
{
    std::cout << "Hello" << std::endl;
    coroutine::yield();
    std::cout << "done" << std::endl;
}

void routine_nested()
{
    coroutine::routine_t rt = coroutine::create(routine);
    coroutine::resume(rt);
    coroutine::resume(rt);
    coroutine::yield();
}

int main()
{
    coroutine::routine_t nested_rt = coroutine::create(routine_nested);
    coroutine::resume(nested_rt);
    return 0;
}

Is it (at least conceptually, possible to make this work? This assertion currently fails:
inline int resume(routine_t id)
{
    assert(ordinator.current == 0);

Rather then ansering directly this question, I can tell you what is the overall behavior that I expect and that I actually get from other implementations like libco
void routine()
{
    std::cout << "Hello" << std::endl;
    coroutine::yield();
    std::cout << "done" << std::endl;
}

void routine_nested()
{
    std::cout << "1" << std::endl;
   coroutine::yield();
    coroutine::routine_t rt = coroutine::create(routine);
    coroutine::resume(rt);

    std::cout << "1" << std::endl;
   coroutine::yield();

    coroutine::resume(rt);
    coroutine::yield();
}

int main()
{
    coroutine::routine_t nested_rt = coroutine::create(routine_nested);
    coroutine::resume(nested_rt);
    return 0;
}

I think it's possible but difficult to support different OS and lib.

Not directly a solution, but a hint in case you want to implement it yourself.
I transformed this library to be used with the Qt Framwork in https://github.com/Skycoder42/QtCoroutines. There, I implemented a way to use recursive coroutines using a stack-like container (See qtcoroutine_p.h#L32). Might be useful for you.

Thanks, but I am already using libco, that seems to work exactly as I need


Moved docs tree generation into docsTree.ts

Description
Moved docs tree generation from "src\routes\docs+layout.server.ts" into "src\data\docsTree.ts".
Motivation and Context
Before this change, docs tree was only generated when you went to the documentation page, which caused a problem #339.

@oleklukasiewicz thank you


Potential ambiguity with keyword searches and filters

If a developer defines a filter like "in:foo" what does the parser do? Does it create an expression input or a scope input? Should one be preferred over the other? Or should in and sort be a "reserved" qualifier?

In https://github.com/thoughtbot/yuri-ita/pull/41 the list of inputs was consolidated so now it's not possible for the parser to create this ambiguity.


Keep logs for deleted clusters

How to categorize this issue?

/area logging
/kind enhancement
/priority normal
What would you like to be added:
Keep logs from the deletion phase of the shoot in the central/dedicated Loki instance for 14 days.
Why is this needed:
This enhancement will help to investigate issues happened during the shoot deletion phase.

Here is the PR with the progress of this change: https://github.com/gardener/logging/pull/92

/close


fix(tests): loading examples from a correct branch

Description
quick fix for loading examples problem in e2e
Type of change

Bug fix (non-breaking change that fixes an issue)

ToDo's

Screenshots (if applicable)

Additional context

@mkucmus  this is duplicate of https://github.com/shopware/frontends/pull/727


Upgrade dependencies

Needed to upgrade error-chain to 0.12 for smooth upgrade in mullvadvpn-app. Also upgraded some other dependencies while at it.
The plan is to publish 0.2.0 when this is merged.

This change is

Bumping major version since ipnetwork and error-chain are re-exported and thus the public API changes.

Reviewed 3 of 3 files at r1.
Review status: :shipit: complete! all files reviewed, all discussions resolved

Comments from Reviewable


can't get ID of created object

The code:
lego = Group.seed(:name) do |s|
	s.id = 1
	s.name = 'lego'
	s.max = 2
end

puts '@' + lego.id.to_s

The output:
 - Group {:max=>2, :name=>"lego", :id=>1}
@70059737238420

It's terribly broken because there is a built-in method id in Object class. How to access the ID field?

Lol, I was able to work-around it with lego[0].id. Please fix it. :)


Discuss: Reimplementing user accounts for saving searches

Discuss reimplementing user accounts on the website so that users can save searches or assets to a folder. Collect user email addresses so that we can send them emails.

Blacklight out-of-the-box has 3 main features associated with user accounts:

saved searches
search history
bookmarks

First, I'm not sure what the difference between "bookmarks" and "saved searches" is. It would seem to me that you could just bookmark a search results page, and that would be a saved search.
And by that measure, all browsers have their own bookmarking features as well. For instance, you can "save" this search for historical videos that mention "Colorado" simply by bookmarking in the normal way, with your browser.
Enabling user accounts isn't a huge change, but it does involve the following:

we actually start using the relational database, which we haven't been thus far. This is not that big of a deal, but it is another component of our system that we have to maintain, and make sure is working.
it introduces a new screens, such as the login screen, the user profile screen, and the forgot password screen. Hopefully the default design is sufficient, but we will have to spend at least a little time making sure these pages are usable.
we would need some kind of way to manage the users who've signed up. Right now there isn't an admin interface to do that, so not sure how it would go exactly.
And becuase we haven't been using a DB this whole time, we haven't had any need for an "admin" side of things. So we haven't had to concern ourselves with what those pages would look like, and having different levels of permissions for logged in users. Getting all that to work may involve some design work, and a fair amount more of testing.

All of this is a non-trivial amount of work, which is why we've punted on implementing it in the first place.
A lighter weight solution would be to just users the chance to sign up for an email list.
However, if have plans to do more sophisticated engagement with users (instead of just sending them emails) then this might be the time to bite the bullet, and start actually using the database, and figure out a way to admin it.
Thoughts? @jasoncorum @Muraszko @sroosa @caseyedavis12

See email for my response.


[Graphics] Dx11: Fix ResizeBuffer when swap chain is under flip model and changing format

PR Details
Why this issue occurred:
Flip model supports 3 different formats, none of them are sRGB.
The asset view swaps between gamma and linear rendering depending on the asset, so non-sRGB and sRGB format.
When the swap chain is initialized, the logic stripped out the sRGB specifier from the format provided, so it never could crash then.
But when the view changes size or format, ResizeBuffer is called, if the format requested is sRGB it won't be stripped out, so it'll silently crash the application.
What this PR does:
Ensures that the format, when creating and on resize, is not only non-sRGB but also supported by flip model.
This seems a bit weird for me though, should we not require the callers to provide a format that is compatible with the flip model if they do enable it, instead of silently fixing the format for them ? I can understand doing so if there are no difference in visuals but that seems unlikely ? Maybe you could chime in @azeno ?
Related Issue
Fixes #1770
Related to PR #1594
Types of changes

[ ] Docs change / refactoring / dependency upgrade
[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist

[ ] My change requires a change to the documentation.
[ ] I have added tests to cover my changes.
[x] All new and existing tests passed.

And a big thanks to @Perksey for helping me out with this issue

I don’t really understand why the aaset view would change the render target format based on the asset? This doesn’t sound right. But your PR looks good to me. Especially that it know throws if the format is not supported under the flip model. Removing the auto switch entirely would for sure also be an option, just hard to say what implications that could have on existing apps.

Thanks a bunch for getting back to me so fast and looking through this @azeno, really appreciate it !
Right, I'll leave throwing when we have a case where we can see a discrepancy between expected color and the displayed one then.
Windows - Simple (Tests) fails, looking at the history it has been randomly failing off and on for a while now, even on the same method so unlikely to be caused by this. I'll take a look into that after merging.

I don’t really understand why the asset view would change the render target format based on the asset?

I think the asset view does that in order to properly show the preview of some assets that must be shown as they are (without gamma conversion), like normal maps or heightmaps (which must be linear), and maybe others also.


Colors added accordingly

@smaranjitghose I have added the variant colors accordingly.
- I have changed the background color of the main page.

- Accordingly, I have changed the hover effect of the CHECK IT OUT button
- I have changed the color present in the splashing effect and the hover effect of social media icons in project maintainers.

@smaranjitghose I have added the variant colors accordingly.
- I have changed the background color of the main page.

- Accordingly, I have changed the hover effect of the CHECK IT OUT button
- I have changed the color present in the splashing effect in project maintainers.

Noooo....We wanted the footer to be visually separable from the home page 🤣


Added Contributing.md

It would help new users to get started to contibuting to project Notesjar!

#5 Issues @arpitghura can you please merge the review and merge the pr, also add codepeak23 label to it, thank you!

This PR is of no use. Since, you are not assigned to do this. But you did good work. Keep your eyes on other issues.


AWS execution related code changes

Through this PR , we are updating the wdl's to handle shared_filesystem/loca/FSx for luster and also the steps needed for running it on AWS.
We created this PR to get the inputs and clarify the isssues/concerns arising out of the changes. The shared_filesystem was discussed with @epiercehoffman  for handling different local file systems.
Please don't merge this yet as we are running the code with these changes on AWS. Once succesfully completed, we will request you to merge it.

@epiercehoffman / @mwalker174 : The changes are made as per request and the pipeline was tested on our end. It worked fine.
Please review the changes and test it on your end. Shouldn't cause any issues ideally.
Once reviewed and merged, please create a tagged release specific to this release accommodating changes to work on AWS infrastructure,  so we can use in our AWS Setup templates.

@spatel-gfb Closing since this has been inactive for some time. Please re-open if you would like to submit further changes.


Re open the drawing after saving

hey,
I save my drawing in local file and when i open it create a single Bitmap of all images and text .
Or if i open as a background then it place all items on background.
I cannot able to re edit that file ..
any solution..

Is reediting a feature that this library supports? I doubt that.


Added loading in Import Page

Added a simple loading in Import page and when click in "Import" button

See #10

Maybe this PR resolve also the issue 51 on PagoPa
See https://github.com/pagopa/io-sdk/issues/51


File drop should insert file paths, take 2

Type: Feature Request
In issue #199013, it was requested that dropping a file should always insert a file path rather than a file URL at the target application:

When either dragging a file from the project explorer or dragging a tab, then dropping the item into an external application, a file URL starting with "file://" will be pasted into that app.
I frequently like to drop files onto the command line, but will receive an error message complaining the file wouldn't exist.
I am quite sceptical about whether this the behavior most people prefer and would very much rather it pasted regular file paths instead.
EDIT: I just noticed that this depends on the external app you're using. Notepad++, or TextEdit and Terminal on Mac will paste a file path. However, the command prompt, Git Bash, or PowerShell do not. Is there a way for VS Code to work around this?
VS Code version: Code 1.84.2 (1a5daa3, 2023-11-09T10:51:52.184Z)
OS version: Windows_NT x64 10.0.22621
Modes:

VS Code version: Code 1.84.2 (1a5daa3a0231a0fbba4f14db7ec463cf99d7768e, 2023-11-09T10:51:52.184Z)
OS version: Windows_NT x64 10.0.22621
Modes:

This is up to the application

This may or may not be true.

and not something we can fix

I do not agree.
All Google Chrome, the Windows Explorer, 7-Zip, and possibly many other programs can do it:

Please try and see how VS Code can do it as well.
(Please don't try to come up and say this was intended behavior. It is not.)

This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

:slightly_frowning_face: In the last 60 days, this feature request has received less than 20 community upvotes and we closed it. Still a big Thank You to you for taking the time to create this issue! To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

Happy closing.


Add a check on creator URL and conditionally render anchor tags

CC search displays creators as anchor tags regardless of whether the creator_url attribute on image is populated or isn't. This PR corrects that by removing the anchor tag in case creator_url has a falsy value. This also updates the HTML attribution for such images, by avoiding HTML with ... situations.
This PR addresses issue #181 raised by @janeatcc.
The screenshot shows the updated appearance of the PhotoDetails component.

@brenoferreira Ok, I will add some tests for these changes at the earliest.

@brenoferreira I added the tests for the components in check. Kindly re-review.


Port paraguay_dncp Scraper

I also see that there is an unmerged branch here: https://github.com/open-contracting/kingfisher/compare/paraguay_since_2016_without_releases_temp?expand=1


sftpgo: 2.5.5 -> 2.5.6

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/drakkan/sftpgo/releases.
meta.description for sftpgo is: Fully featured and highly configurable SFTP server
meta.homepage for sftpgo is: https://github.com/drakkan/sftpgo
meta.changelog for sftpgo is: https://github.com/drakkan/sftpgo/releases/tag/v2.5.6
Updates performed

Golang update

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 2.5.6 with grep in /nix/store/9bs8rrck6ckniwlrsc2mxkj0j4jrfigk-sftpgo-2.5.6
found 2.5.6 in filename of file in /nix/store/9bs8rrck6ckniwlrsc2mxkj0j4jrfigk-sftpgo-2.5.6

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
sftpgo

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/9bs8rrck6ckniwlrsc2mxkj0j4jrfigk-sftpgo-2.5.6 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A sftpgo https://github.com/r-ryantm/nixpkgs/archive/1ea12ff9f3241809abf006fb7d56b0f732e9b9e0.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/1ea12ff9f3241809abf006fb7d56b0f732e9b9e0#sftpgo

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/9bs8rrck6ckniwlrsc2mxkj0j4jrfigk-sftpgo-2.5.6
ls -la /nix/store/9bs8rrck6ckniwlrsc2mxkj0j4jrfigk-sftpgo-2.5.6/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

sftpgo

Maintainer pings
cc @thenonameguy @yayayayaka for testing.

Includes the mitigation for CVE-2023-48795.


WIP; require config in each entrypoint/dependency

Potential pattern to support entrypoints/dependencies with non-global config. Raised for discussion.
Summary:

You should be able to pass individually relevant config values into entrypoints/dependencies
These may be bare values or a callable that returns the value when called with the hosting container
Changes applied here for @timer, @rpc and rpc_proxy
The timer implementation works fine

This pattern fundamentally clashes with the re-use of RpcConsumers and QueueConsumers by multiple RpcProvider instances (which may now use different AMQP URIs). Now may be the right time to rebuild our RPC implementation around shared channels, rather than shared dependencies.

It turns out there are many better ways to do this. Cleaning up this PR, finally.


Enable mypy checks for has-type

Proposed changes:

Fix #8241

Status (please check what you already did):

[ ] added some tests for the functionality
[ ] updated the documentation
[X] updated the changelog (please check changelog for instructions)
[x] reformat files using black (please check Readme for instructions)

💯 Thanks for proactively pulling in someone from Research!

@wochinge  It was actually the CODEOWNERS doing its job 😄


changelist implementation + integration

Adds changelists. An explicit init should no longer be called. On publish the repo is initialized if necessary, the changelist is applied, and the updates are pushed to the server.
Please provide review but bear in mind the following TODOs:

Add an enum for Change.Action values
Add a Changelist implementation that writes a file for each change.

Signed-off-by: David Lawrence<EMAIL_ADDRESS>(github: endophage)

Work in progress is no longer using this branch


pull e2e tests not showing up as required status anymore

http://prow.k8s.io/?type=presubmit&repo=kubernetes%2Fcharts
It seems like the last PR that the presubmits ran against was https://github.com/kubernetes/charts/pull/627
cc @viglesiasce @michelleN @spxtr

I think it's working properly. Note that prow only keeps around the last day of data. https://github.com/kubernetes/charts/pull/686 was tested properly. https://github.com/kubernetes/charts/pull/690 was tested properly after saying @k8s-bot ok to test.
I recommend setting the prow test to required under protected branches in the settings for the repo. Then it's more difficult to merge if the test doesn't run.

@viglesiasce @michelleN, I think we should set the test as required. I can see that even now, several PRs aren't being blocked by e2es passing.


use Command key instead Control

Thanks for your wonderful project.
Could you change Control key to Command by default for Mac OS?

Hi @Stanislav-Lapata,
I'm glad you are finding it useful!
I don't think I can implement this in tab - as terminal apps don't receive any input when cmd-chars are pressed.  You might be able to configure this in your terminal emulator though by binding cmd-T to send the ctrl-T character (hex is 0x14, name is DC4).
I just tried it in iTerm and it worked.  Here is a screenshot:

Hi @Stanislav-Lapata,
I'm glad you are finding it useful!
I don't think I can implement this in tab - as terminal apps don't receive any input when cmd-chars are pressed.  You might be able to configure this in your terminal emulator though by binding cmd-T to send the ctrl-T character (hex is 0x14, name is DC4).
I just tried it in iTerm and it worked.  Here is a screenshot:


Building Scalable Chat app across peers!

[x] Chat Socket Connection
[x] Get Number Of User In Current room
[x] Chat UI
[ ] Integrate with mail app
[ ] add Encryption
[ ] Add React Emoji

Move To Jira 💯
Automated Close


shaderc_parse usage

Good day!
First of all, I want to say thank you. I really do enjoy cmake-based bgfx ^^
Okay, now lets go ahead to the question...
I have an project which uses bgfx.cmake:
cmake_minimum_required(VERSION 3.7)
project(SomeProject)

set(CMAKE_CXX_STANDARD 14)

file(GLOB JULIVI_SOURCE_FILES
    "src/*.h"
    "src/*.cpp"
)

add_subdirectory("deps/bgfx")
add_executable(${PROJECT_NAME} ${JULIVI_SOURCE_FILES})
target_compile_definitions(${PROJECT_NAME} PRIVATE ENTRY_CONFIG_IMPLEMENT_MAIN=1 _CRT_SECURE_NO_WARNINGS=1)

target_link_libraries(${PROJECT_NAME} bgfx example-common)

bgfx.cmake located in deps/bgfx
my question is: how to compile every shader from directory X and put binaries into directory Y? Preferably before every build, because the number of shaders can vary
P.S. I tired something like shaderc_parse("shaders/vs_test.sc" "asset/vs_test.bin" VERTEX WINDOWS), but it feels like nothing is happening (no cmake errors here)

shaderc_parse is a utility function that allows you to construct a CLI command for shaderc, it doesn't actually create the custom command. For that you want to use shaderc() which takes all the same arguments.
Also the way that CMake arguments work, you need to specify the argument name (FILE, OUTPUT):
shaderc(FILE "shaders/vs_test.sc" OUTPUT "asset/vs_test.bin" VERTEX WINDOWS)
Let me know if you need more help. It's been a little while since I've used this bit of the code.

@JoshuaBrookover yes, thank you my friend! Now I clearly understand how these things work :з


Attach ctx

Took a pass at the utility function of handleCtx to limit some of the boiler plate. Let me know what you think.

@NSEcho Any thoughts on the above

Hey @dylanhitt, I didn't have much time to take a look at this, I will get to it over the weekend.

Hi @dylanhitt, could you please instead of ParamsCtx use ParamsWithContext convention throughout the code, otherwise looking okay

Sure I'll get to it tomorrow.

Thanks @dylanhitt


Integration Server Tests Broken on <IP_ADDRESS>

Can't get Velocity to register the new files... just keeps pulsing (on html runner). It doesn't get to the point where the tests-proxy package is made, chrome window doesn't launch, and mirror url doesn't load anything. I've reproduced this with just a new meteor app and added a tests/jasmine/server/integration/fooSpec.js file and valid test.
I lost my log output and debug info... I can reproduce this tomorrow night  if this is an unknown issue.
Output stuck at:
=> App running at: http://localhost:3000
I20150420-23:13:14.881(-4)? [velocity] jasmine-server-integration is starting a mirror at http://localhost:55655/.
I20150420-23:13:14.883(-4)? [velocity] This takes a few minutes the first time.
I20150420-23:13:14.883(-4)? [velocity] You can see the mirror logs at: tail -f /Users/adam/projects/someappi/.meteor/local/log/jasmine-server-integration.log

Reverting back to 1.0.4 and removing .meteor/versions allows it to rollback and then the tests pass.
Thanks!

I need the log of the mirror (/Users/adam/projects/someappi/.meteor/local/log/jasmine-server-integration.log). Please start with VELOCITY_DEBUG=1 meteor Make sure that you have removed the packages/tests-proxy folder.

And make sure that you use<EMAIL_ADDRESS>

No problem, this is using the latest Meteor and the versions file reads<EMAIL_ADDRESS>I've also zipped the test project if that helps:
https://dl.dropboxusercontent.com/u/1407764/github/foo_example.zip
Startup:
foo|⇒ VELOCITY_DEBUG=true meteor -p 4000
[[[[[ ~/projects/sandbox/foo ]]]]]

=> Started proxy.
=> Started MongoDB.
I20150421-10:32:26.381(-4)? ** You've set up some data subscriptions with Meteor.publish(), but
I20150421-10:32:26.383(-4)? ** you still have autopublish turned on. Because autopublish is still
I20150421-10:32:26.383(-4)? ** on, your Meteor.publish() calls won't have much effect. All data
I20150421-10:32:26.383(-4)? ** will still be sent to all clients.
I20150421-10:32:26.383(-4)? **
I20150421-10:32:26.383(-4)? ** Turn off autopublish by removing the autopublish package:
I20150421-10:32:26.383(-4)? **
I20150421-10:32:26.383(-4)? **   $ meteor remove autopublish
I20150421-10:32:26.384(-4)? **
I20150421-10:32:26.384(-4)? ** .. and make sure you have Meteor.publish() and Meteor.subscribe() calls
I20150421-10:32:26.384(-4)? ** for each collection that you want clients to see.
I20150421-10:32:26.384(-4)?
I20150421-10:32:26.385(-4)? [velocity] adding velocity core
I20150421-10:32:26.385(-4)? [velocity] Not adding mirror-registrar because NODE_ENV is development and IS_MIRROR is false
I20150421-10:32:26.518(-4)? [velocity] Register framework jasmine-server-integration with regex ^tests/jasmine/server/integration/.+\.(js|coffee|litcoffee|coffee\.md)$
I20150421-10:32:26.614(-4)? [velocity] Velocity not started. Queueing func
I20150421-10:32:26.615(-4)? [velocity] Register framework jasmine-client-integration with regex ^tests/jasmine/client/integration/.+\.(js|coffee|litcoffee|coffee\.md)$
I20150421-10:32:26.619(-4)? [velocity] Velocity not started. Queueing func
I20150421-10:32:26.619(-4)? [velocity] Register framework jasmine-client-unit with regex ^tests/jasmine/client/unit/.+\.(js|coffee|litcoffee|coffee\.md)$
I20150421-10:32:26.621(-4)? [velocity] Velocity not started. Queueing func
I20150421-10:32:26.621(-4)? [velocity] Register framework jasmine-server-unit with regex ^tests/jasmine/server/unit/.+\.(js|coffee|litcoffee|coffee\.md)$
I20150421-10:32:26.624(-4)? [velocity] Velocity not started. Queueing func
I20150421-10:32:26.630(-4)? [velocity] Server startup
I20150421-10:32:26.631(-4)? [velocity] app dir /Users/adam/projects/sandbox/foo
I20150421-10:32:26.632(-4)? [velocity] config = {
I20150421-10:32:26.632(-4)?   "jasmine-server-integration": {
I20150421-10:32:26.632(-4)?     "regex": "^tests/jasmine/server/integration/.+\\.(js|coffee|litcoffee|coffee\\.md)$",
I20150421-10:32:26.632(-4)?     "name": "jasmine-server-integration",
I20150421-10:32:26.632(-4)?     "_regexp": {}
I20150421-10:32:26.632(-4)?   },
I20150421-10:32:26.632(-4)?   "jasmine-client-integration": {
I20150421-10:32:26.632(-4)?     "regex": "^tests/jasmine/client/integration/.+\\.(js|coffee|litcoffee|coffee\\.md)$",
I20150421-10:32:26.633(-4)?     "name": "jasmine-client-integration",
I20150421-10:32:26.633(-4)?     "_regexp": {}
I20150421-10:32:26.633(-4)?   },
I20150421-10:32:26.633(-4)?   "jasmine-client-unit": {
I20150421-10:32:26.633(-4)?     "regex": "^tests/jasmine/client/unit/.+\\.(js|coffee|litcoffee|coffee\\.md)$",
I20150421-10:32:26.633(-4)?     "name": "jasmine-client-unit",
I20150421-10:32:26.633(-4)?     "_regexp": {}
I20150421-10:32:26.634(-4)?   },
I20150421-10:32:26.634(-4)?   "jasmine-server-unit": {
I20150421-10:32:26.634(-4)?     "regex": "^tests/jasmine/server/unit/.+\\.(js|coffee|litcoffee|coffee\\.md)$",
I20150421-10:32:26.634(-4)?     "name": "jasmine-server-unit",
I20150421-10:32:26.634(-4)?     "_regexp": {}
I20150421-10:32:26.634(-4)?   }
I20150421-10:32:26.634(-4)? }
I20150421-10:32:26.639(-4)? [velocity] resetting the world
I20150421-10:32:26.639(-4)? [velocity] frameworks with disable auto reset: []
I20150421-10:32:26.652(-4)? [velocity] Add paths to watcher [ '/Users/adam/projects/sandbox/foo/tests' ]
=> Started your app.

=> App running at: http://localhost:4000/
I20150421-10:32:26.716(-4)? [velocity] Search framework for path tests/jasmine/server/integration/models/fooSpec.js
I20150421-10:32:26.717(-4)? [velocity] Target framework for tests/jasmine/server/integration/models/fooSpec.js is jasmine-server-integration
I20150421-10:32:26.719(-4)? [velocity] File scan complete, now watching /tests
I20150421-10:32:26.719(-4)? [velocity] Triggering queued startup functions
I20150421-10:32:26.734(-4)? [sanjo:jasmine]: No tests for jasmine-client-unit found. Reporting completed.
I20150421-10:32:26.755(-4)? [sanjo:jasmine]: No tests for jasmine-client-integration found. Reporting completed.
I20150421-10:32:26.769(-4)? [sanjo:jasmine]: Starting mirror for jasmine-server-integration
I20150421-10:32:26.870(-4)? [velocity] 1 mirror(s) requested
I20150421-10:32:26.881(-4)? [velocity] Mirror process forked with pid 16435
I20150421-10:32:26.882(-4)? [velocity] jasmine-server-integration is starting a mirror at http://localhost:57321/.
I20150421-10:32:26.884(-4)? [velocity] This takes a few minutes the first time.
I20150421-10:32:26.885(-4)? [velocity] You can see the mirror logs at: tail -f /Users/adam/projects/sandbox/foo/.meteor/local/log/jasmine-server-integration.log

and the log:
Spawn script arguments:
parentPid: 16412
command: meteor
commandArguments: [ 'run',
  '--test-app',
  '--port',
  '57321',
  '--include-tests',
  'jasmine/server/integration',
  '--settings',
  '/var/folders/78/h1vhkwqj0jdc47lnb_ymqx8c0000gn/T/tmp-16432630IUM0mO0IS.tmp',
  '--release',
<EMAIL_ADDRESS>]
pid: 16435
child.pid: 16437

And then to make test fail (without doing anything else)
echo<EMAIL_ADDRESS>> .meteor/release
rm .meteor/versions
meteor -p 4000

That is then using Velocity core @ 0.4.5 and Jasmine @ 0.12.7

Just launching your example gives me a test result that says "ReferenceError: Reminder is not defined". And I think that is a valid error. Can you please adjust your example app.
Starting the new velocity the first time takes a bit until it has downloaded everything. So maybe you need to wait a bit.
You can see the status of the mirror in .meteor/local/log/jasmine-server-integration.log. The mirror is the app instance where the test runs in.

Oh weird, perhaps I just had a slow internet connection? I didn't realize it was downloading content after the package was installed. Thanks!


Matrix evd throws exception

  [Test]
  public void TestEigenvectors() {
    List<Complex> values = new List<Complex> { 1, 0, 1, 1};
    Matrix<Complex> matrix = Matrix<Complex>.Build.DenseOfRowMajor(2, 2, values);
    Evd<Complex> evd = matrix.Evd();  // IndexOutOfRangeException thrown here. Also happens for other values of the off-diagonal matrix entry
  }

Some more info:
Fails in  DenseEvd.cs
NonsymmetricReduceHessenberToRealSchur(...)
654: s = Math.Abs(matrixH[nm1O + n].Real) + Math.Abs(matrixH[(n - 2)*order + nm1].Real)
--> matrixH[(n - 2)*order + nm1]
the calculated index is -2 which obviously is out of bounds
Some googled background:
The function seems to be an conversion of this Fortran Algorithm:
http://www.netlib.org/eispack/hqr2.f
note: some google results say that this fortran algorithm is an optimized version that differs from the handbook, and tends to overflow.....


Failed communicating with Harmony Hub

Edit:
I’ve figured out to configure the harmony hub address (as found in the app, about, versions) in the bridge controls section and give it a name. I see nothing in the helper tabs and the logs show - Failed communicating with Harmony Hub.  The IP is dhcp and obviously I will set a reservation long term but I can’t see why it is failing now?
Hi
I am trying to achieve the following but really struggling to see how/if this is possible via ha-bridge.  I have read the readme and faq.
I have Alexa and harmony hub with an elite remote.  I can control harmony activities fine via Alexa but not devices.  The scenario is I want to be able to control my IR fan which is a device in harmony and I can control via the remote just fine but Alexa can only integrate with harmony activities natively.  I want to be able to say ‘Alexa, turn fan on’ with out impacting the activity ‘watch tv’ for example.
I have ha-bridge installed on docker and it is working fine but I just dont understand what I need to configure.  I have put the harmony IP address in but it doesn’t discover any Devices.  I can discover Philips hue now in my harmony app (I have no real Philips hue).
Am I right in saying I need to form a HTTP POST command for the harmony to control the device buttons and make this a device in ha-bridge? If so I can’t find any examples on this.
Could anyone please help?
Thank you
Steve

Is there supposed to be a web hook in the harmony config under bridge control?

this is a dup of #945
Restart your ha-bridge to connect to the harmony hub. Reinitialize does not accomplish this.

I have tried restarting the docker container - it still doesn’t work


rows_affected length is incorrect when table has trigger

CREATE TABLE t_test(
	id INT NOT NULL,
)

INSERT INTO t_test(id) VALUES(1);

CREATE TRIGGER [dbo].[tr_test]
   ON  [dbo].[t_test]
   AFTER INSERT,UPDATE,DELETE
AS
BEGIN
	PRINT 'tr_test';
END

let rv = client.execute("UPDATE t_test SET id += 1", &[]).await?;
println!("sql affected: {:?}", rv.rows_affected()); //sql effected: [0, 1]

On vacation right now. Coming back to work on Monday, taking a look asap next week.

So, what should we expect here? Basically what we want is to get all the affected rows, so when parsing the server response, we count modifications from all procedures executed in the query, returning the results as a slice per query.
We can expand this a bit into:
CREATE TABLE t_test3
(
    id INT NOT NULL,
)
INSERT INTO t_test3(id)
VALUES (1);

CREATE TRIGGER [dbo].[tr_test3]
    ON  [dbo].[t_test3]
    AFTER INSERT,UPDATE,DELETE
    AS
BEGIN
    INSERT INTO t_test3(id) VALUES (222)
END

Now, what we get back from the server are two DONEINPROC events:
DoneInProc(
    TokenDone {
        status: BitFlags<DoneStatus> {
            bits: 0b10001,
            flags: More | Count,
        },
        cur_cmd: 195,
        done_rows: 1,
    },
);
DoneInProc(
    TokenDone {
        status: BitFlags<DoneStatus> {
            bits: 0b10001,
            flags: More | Count,
        },
        cur_cmd: 197,
        done_rows: 1,
    },
);

In your example, the first event the server returns is having done_rows set to 0 due to the trigger not modifying anything. These events do not seem to hold any information are they from a trigger or from a query the user executed, so filtering them out would be tricky. Also, you'd probably like to know the changes in total for your query, including triggers, so I don't really see yet how the result from Tiberius is incorrect.
Of course I'm open for discussion here, and maybe even understanding a bit more how other SQL Server libraries are handling this. I tried to dig into the JDBC driver, but couldn't find yet anything to help me to understand the issue a bit better...

And, if you do not care about results per query, you can try out the ExecuteResult::total method, that returns only one number that should reflect the total number of rows affected (including triggers) in your query). This also works in a similar way with DataGrip, that returns one number but includes triggers if they modify data:
master> UPDATE t_test3 SET id += 1
[2021-07-26 10:43:47] 2 rows affected in 13 ms

It looks really difficult to handle.
I am already using the total method in project.The problem I was encountered is publish a message to the Broker queue in the trigger, which affected the total number result of rows.

Maybe there is no perfect solution to this problem.

I know this is a very old issue, but just something to add that might help.
I'm noob at Rust (just checking out this library) but have fairly good knowledge of MSSQL.
Just in case what you actually want is the count of rows affected by your query, and you want to ignore the number of rows affected by your trigger, the correct fix is actually to update your trigger to not return the number of rows affected.
Modifying the example posted earlier in this thread (see comment with 1 line added)
CREATE TABLE t_test3
(
    id INT NOT NULL,
)
INSERT INTO t_test3(id)
VALUES (1);

CREATE TRIGGER [dbo].[tr_test3]
    ON  [dbo].[t_test3]
    AFTER INSERT,UPDATE,DELETE
    AS
BEGIN
    SET NOCOUNT ON -- add this line
    INSERT INTO t_test3(id) VALUES (222)
END

The way the trigger is written before, even if you were using MSSQL on it's own (without any programming language) and you wanted to get the number of affected rows by the query, for example with the following SQL query...
INSERT INTO t_test3(id)
VALUES (1);

SELECT @@ROWCOUNT

... the trigger will affect the value of @@ROWCOUNT unless you use SET NOCOUNT ON in your trigger.
It's standard practice to always use SET NOCOUNT ON in triggers (and often in stored procedures), precisely because they cause side effects like the one you are experiencing, and the fact you are not using it immediately stuck out to me.


Removal of jQuery requirement

Sorry about the formatting, I had prettier enabled. Also started to add an optional image transition.

Thanks,
Hey can you also squash your commits.

K done, only thing left now is the event handler namespace thing

Thanks, I will make the change for event handlers.

@amritk @s-yadav Is there any progress in this PR? I also want to remove jQuery, which can be applied to the native DOM.

For now you can use the fork if you'd like
On Tue, Aug 21, 2018, 9:05 AM Ran Luo<EMAIL_ADDRESS>wrote:

@amritk https://github.com/amritk @s-yadav https://github.com/s-yadav
Is there any progress in this PR? I also want to remove jQuery, which can
be applied to the native DOM.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/s-yadav/ImageViewer/pull/27#issuecomment-414728597,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AB8e8wECDye4DNW_IV55OvV-iCMA1uukks5uTC-3gaJpZM4QVavM
.

@amritk Ok, thanks

Hey just checked in on this repo, nice to see the new changes @s-yadav! I'll close this pull request now


Timeout on parallel subscribe two consumers

Observed behavior
When parallel subscribe in different threads two consumer on local idle nats, i received sometimes an IOException:Timeout after two seconds.
Expected behavior
No timeout
Server and client version
Server: 2.10.1
Client: jnats 2.16.14
Host environment
Xubuntu 22.04.3 6.2.0-33-generic x86_64
Steps to reproduce
After a few iteration with my testcode:
Iteration: 0
Stream [1] established.
Stream [0] established.
Iteration: 1
Stream [0] established.
Stream [1] established.
Iteration: 2
Stream [0] established.
Stream [1] established.
Iteration: 3
Stream [1] established.
Stream [0] not established.
java.io.IOException: Timeout or no response waiting for NATS JetStream server
	at io.nats.client.impl.NatsJetStreamImpl.responseRequired(NatsJetStreamImpl.java:216)
	at io.nats.client.impl.NatsJetStreamImpl.makeRequestResponseRequired(NatsJetStreamImpl.java:200)
	at io.nats.client.impl.NatsJetStreamImpl._getStreamNames(NatsJetStreamImpl.java:151)
	at io.nats.client.impl.NatsJetStreamImpl.lookupStreamBySubject(NatsJetStreamImpl.java:191)
	at io.nats.client.impl.NatsJetStream.createSubscription(NatsJetStream.java:301)
	at io.nats.client.impl.NatsJetStream.subscribe(NatsJetStream.java:563)
	at NatsTimeoutOnParallelSubscribe.lambda$0(NatsTimeoutOnParallelSubscribe.java:54)
	at java.base/java.lang.Thread.run(Thread.java:833)
Error on subscribe

After some debugging the problem is an timout in https://github.com/nats-io/nats.java/blob/2.16.14/src/main/java/io/nats/client/impl/NatsConnection.java#L1098
I think in the block https://github.com/nats-io/nats.java/blob/2.16.14/src/main/java/io/nats/client/impl/NatsConnection.java#L1161 seems to be exists an multithreading-problem
Pragmatic way: After synchronize the part, the timeout-xpt is gone:
synchronized (this){
        if (inboxDispatcher.get() == null) {
            NatsDispatcher d = new NatsDispatcher(this, this::deliverReply);

            if (inboxDispatcher.compareAndSet(null, d)) {
                String id = this.nuid.next();
                this.dispatchers.put(id, d);
                d.start(id);
                d.subscribe(this.mainInbox);
            }
        }
     }

Testcode:
import java.io.IOException;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;

import io.nats.client.Connection;
import io.nats.client.JetStream;
import io.nats.client.JetStreamApiException;
import io.nats.client.JetStreamManagement;
import io.nats.client.Nats;
import io.nats.client.Options;
import io.nats.client.api.StorageType;
import io.nats.client.api.StreamConfiguration;
import io.nats.client.api.StreamInfo;

public class NatsTimeoutOnParallelSubscribe {

    private final static String NATS_SERVER = "nats://localhost:4222";
    private final static String NATS_TOKEN = "KxX1FqaJ";

    private final static String STREAM_NAME = "NatsTimeout";
    private final static String STREAM_SUBJECT = "test";

    public static void main(String[] args) throws IOException, JetStreamApiException, InterruptedException {
	NatsTimeoutOnParallelSubscribe nt = new NatsTimeoutOnParallelSubscribe();
	nt.createStream();
	int i = 0;
	while (true) {
	    System.out.printf("Iteration: %d\n", i++);
	    nt.parallelSubscribe();
	    Thread.sleep(1000);
	}
    }

    private void parallelSubscribe() throws IOException, JetStreamApiException, InterruptedException {
	final Connection nastCon = getConnection();
	final JetStream jetStream = nastCon.jetStream();
	final int streams = 2;
	CountDownLatch cdl = new CountDownLatch(streams);

	for (int i = 0; i < streams; i++) {
	    final int c = i;
	    new Thread(() -> {
		try {
		    jetStream.subscribe(STREAM_SUBJECT);
		    cdl.countDown();
		    System.out.printf("Stream [%d] established.\n", c);
		} catch (Exception e) {
                    System.err.printf("Stream [%d] not established.\n", c);
		    e.printStackTrace();
		}
	    }).start();
	}
	if (!cdl.await(3, TimeUnit.SECONDS)) {
	    System.err.printf("Error on subscribe\n");
	    System.exit(1);
	}

	nastCon.close();
    }

    private void createStream() throws IOException, JetStreamApiException, InterruptedException {
	final Connection nastCon = getConnection();
	JetStreamManagement jsm = nastCon.jetStreamManagement();
	List<StreamInfo> currentStreams = jsm.getStreams();

	Optional<StreamInfo> oldStream = currentStreams.stream()
		.filter(si -> si.getConfiguration().getName().equals(STREAM_NAME)).findFirst();

	if (oldStream.isPresent()) {
	    System.out.printf("use existing stream\n");
	} else {
	    StreamInfo info = jsm.addStream(StreamConfiguration.builder().name(STREAM_NAME)
		    .storageType(StorageType.Memory).subjects(STREAM_SUBJECT).description("Test Stream").build());
	    System.out.printf("stream created: %s\n", info);
	}

	nastCon.close();
    }

    private Connection getConnection() {

	io.nats.client.Options.Builder builder = new Options.Builder().server(NATS_SERVER)
		.token(NATS_TOKEN.toCharArray());
	try {
	    return Nats.connect(builder.build());
	} catch (IllegalStateException | IOException | InterruptedException e) {
	    throw new RuntimeException(e);
	}
    }
}

Is this repeatable against a local, non-cluster server? This seems unusual, the subscribe request reply should take milliseconds. not accounting for things like network latency, server load.
What is your server setup and version for this?

Yes, this issue comes from my local (non-cluster) machine.
I think this is not a server side problem, but rather a multithreading problem on clientside. With the synchronize block the issue is gone.

I'm very concerned about putting a synchronize block around that code since it does not explain why there is a timeout, even if the problem goes appears to go away when you sync it. If there is an issue, I think there is another reason to be figured out. Will have to look into this.

@philmu I cannot reproduce this. I've been running your example for about a half hour. Is this still occurring? I wonder if this could be related to the operating system the program is running on, I'm running on windows.

@scottf I have tested again and since 2.17.5 the problem is gone as somebody implemented (nearly: synchronize vs reentrantlock) my suggested solution: https://github.com/nats-io/nats.java/compare/2.17.4...2.17.5#diff-bbcf614ee7ee4ccd15b22d1f95fa40e4e642098386b6d1d14127dab5968d89feR1191
The problem is solved and you can close the issue.


Passing Parameters to a Constructor

Challenge Waypoint: Make Unique Objects by Passing Parameters to our Constructor has an issue.
User Agent is: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:42.0) Gecko/20100101 Firefox/42.0.
Please describe how to reproduce this issue, and include links to screenshots if possible.
My code:
var Car = function() {
  //Change this constructor
  this.wheels = 4;
  this.seats = 1;
  this.engines = 1;
};

//Try it out here
var myCar = new Car(3, 1, 2);

// Only change code above this line

(function() {return JSON.stringify(myCar);})();

I only modified the code within the // parameters and no matter the attempt I would get errors. I tried to pass parameters individually and would still receive errors. After asking for help on chat I was able to pass it, but not within the parameters set. I used multiple variations given, but none of them worked within the instructions. The constructor doesn't appear to be able to be modified as is, the other people stated the same thing. Maybe the instructions weren't as clear or this could be a bug. Error stated
"Calling new Car(3,1,2) should produce an object with a wheels property of 3, a seats property of 1, and an engines property of 2."

I don't see what the problem is. The instructions are very clear

Alter the Car constructor to use parameters to assign values to the wheels, seats, and engines properties.
Then call your new constructor with three number arguments and assign it to myCar to see it in action.

You need to change the code to
var Car = function() {
  this.wheels = 4;
  this.seats = 1;
  this.engines = 1;
};

to
var Car = function(wheels, seats, engines) {
  this.wheels = wheels;
  this.seats = seats;
  this.engines = engines;
};

and then assign it to var myCar with the constructor.

Thanks @faizaanceg.
@nasainlee - In the future I encourage you to ask for help in the Help Room on Gitter.  There are many helpful folks who can answer your questions there.

:+1:

thanks

Just follow the steps.
my code look like this:
var Car = function(wheels, seats, engines) {
//Change this constructor
this.wheels = wheels;
this.seats = seats;
this.engines = engines;
};
//Try it out here
var myCar = new Car(4, 5, 1);

var Car = function(wheels,seats,engines) {
this.wheels=wheels;
this.seats = seats;
this.engines = engines;
};
var myCar = new Car(1,2,3);

chat room doesn't help a lot!!


Fixed discrepancy with BCML format

I found a mod in the wild that uses the RawControl feature in its custom text replacements. The format used in that file is accepted by BCML, but rejected by this library because the serde encoding doesn't match the real structure. This one-line change would make UKMM compatible with these mods again.
I realize there could be hurdles to this: as this seems to be a general library for a general file format, it could break other applications which currently (knowing or not) rely on the old behavior. In this case the better solution might be a custom handler to deserialize both versions when needed. If this fork is really meant to just be used by UKMM that probably wouldn't actually be an issue, but as I assume the error is also present upstream it might be worth thinking about.

This is confusing to me, because BCML uses this crate for diffing and merging, same as UKMM does. Specifically, BCML uses commit 12e4d95fb6480f445284f37706db7bfa8351dc06 in its rust build process.
As there have been no changes to the RawControl serde since that commit, I'm inclined to think that mod should be failing to install on BCML as well, which means the proper installation process for a user would be to download the graphic pack (zip/rar/7z) version of the mod and install that, instead.
Anything else I would have to say on the subject would be better saved for the UKMM repo.

I had a lot of weird issues trying to update various dependencies both here and in UKMM a while back, and for now I've reverted UKMM to use the last pre-TOTK build of this library.
In the meantime, I need to do some more testing to be sure about whether this reversion is the right fix or not. A good test would be whether it works with https://github.com/polarbunny/vanilla-msyts.