TLS with CA signed certificate

Hello,
I am trying to get XRDP working with Apache Guacamole and can't seem to get it to work with the TLS certificate in place.
Here is the applicable xrdp.ini configuration(let me know if you need more):
security_layer=tls
certificate=
key_file=
ssl_protocols=TLSv1.2, TLSv1.3
tls_ciphers=HIGH
Here is the certificate:
root@...:/etc/xrdp# openssl x509 -in cert.pem -text
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
28:00:00:00:15:c9:22:37:7e:37:95:03:32:00:00:00:00:00:15
Signature Algorithm: sha512WithRSAEncryption
Issuer: DC = ..., DC = ..., CN = ...
Validity
Not Before: Dec  2 19:53:35 2022 GMT
Not After : Dec  2 19:53:35 2023 GMT
Subject: CN = ...
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public-Key: (2048 bit)
Modulus:
00:c9:f4:00:9d:13:36:39:d0:43:0f:7e:82:5f:3f:
44:5c:9c:c8:3c:ab:fe:24:1e:e7:4b:bd:1b:aa:1c:
b9:13:1a:00:2a:db:b4:42:0d:2b:1f:f7:a5:94:89:
42:76:0b:4f:ce:d5:76:e2:20:b5:06:4f:28:67:db:
ec:ce:56:e8:5b:fe:47:37:09:a8:38:41:4d:a9:08:
7b:d5:27:b2:7f:c6:0b:09:4c:38:0a:79:9b:5b:b1:
f2:f4:c2:8b:17:d7:79:d1:f5:1b:6e:b5:db:40:0e:
f8:9c:8b:3f:e8:8b:3d:a0:aa:e7:70:c4:da:b6:49:
c8:e4:43:c7:5d:74:20:af:d5:a8:ea:5b:ec:c4:5b:
98:ef:c6:cb:37:7c:53:85:1d:18:51:f3:2a:38:7a:
09:b6:76:a2:31:55:5b:65:fc:b2:61:88:40:a6:4a:
66:73:0c:02:2a:5c:e7:98:19:6f:33:d8:94:5c:f1:
67:1d:e2:5a:36:4f:bb:b8:c0:a0:62:97:79:cd:8d:
5f:73:54:b4:89:10:86:40:4d:25:17:8c:58:5d:d0:
c4:84:f3:0c:bf:89:7b:4b:5a:4a:f0:d8:27:74:af:
fa:6f:97:90:b8:f7:43:e2:82:ab:fe:0e:f9:8d:79:
37:e5:ae:52:13:7c:8f:65:c1:99:73:dc:32:55:de:
36:dd
Exponent: 65537 (0x10001)
X509v3 extensions:
<IP_ADDRESS>.4.1.311.21.7:
0-.%+.....7.................9....#...]..b..d...
X509v3 Extended Key Usage:
TLS Web Server Authentication, TLS Web Client Authentication
X509v3 Key Usage: critical
Digital Signature, Key Encipherment
<IP_ADDRESS>.4.1.311.21.10:
0.0
..+.......0
..+.......
X509v3 Subject Key Identifier:
2D:73:66:B1:06:51:C6:86:A7:9F:81:ED:73:C8:F4:B2:23:08:75:DA
X509v3 Subject Alternative Name:
DNS:..., DNS:..., IP Address:<IP_ADDRESS>
X509v3 Authority Key Identifier:
keyid:1D:79:F6:28:E3:1A:23:3C:BE:2D:2C:84:F6:4C:D3:6D:E2:F6:99:5B
        X509v3 CRL Distribution Points:

            Full Name:
              URI:ldap:///...

        Authority Information Access:
            CA Issuers - URI:ldap:///...

Signature Algorithm: sha512WithRSAEncryption
     8c:bf:a1:ea:7b:28:9d:67:49:3a:0c:57:8d:ba:d9:37:85:fc:
     95:99:52:e2:c9:65:56:a3:5a:25:d3:01:37:53:01:0a:5a:04:
     c1:08:c1:66:2c:ae:e1:7e:ff:5d:0d:fe:36:91:ae:8d:65:3d:
     5f:5f:42:8f:91:87:b8:75:de:0a:7a:23:56:28:81:57:c4:ef:
     4f:d5:31:96:40:ab:97:14:a3:0d:5a:70:25:57:7c:89:c1:79:
     36:bf:f8:0e:4c:29:02:f4:9a:50:e4:60:b1:99:2a:6f:20:f3:
     3e:d8:61:aa:fd:27:72:50:4d:19:f3:58:05:e5:ec:dc:3d:5e:
     4c:ec:12:41:24:b6:61:6a:36:e5:89:c1:b6:29:f7:ad:94:7e:
     6b:2a:ed:6c:39:d7:00:c7:bc:81:eb:fb:46:86:30:f1:60:71:
     d3:68:7f:5d:98:7d:c4:bd:a4:4f:b1:1e:c3:fc:70:b9:a0:bc:
     25:cb:8b:2b:0b:96:fb:b4:72:b2:df:cb:11:bd:60:73:71:d7:
     83:a3:a7:43:80:f8:2d:a3:6e:d2:32:41:a8:74:0e:be:70:d2:
     80:79:09:68:2c:a7:32:78:14:24:3a:1e:57:d7:62:49:99:27:
     33:bf:d6:85:34:14:6b:96:a9:7a:88:5f:41:65:7b:f5:17:63:
     82:74:70:98

Here is what I get when I try to connect using Guacamole:
[20221205-16:19:05] [INFO ] starting xrdp with pid 2212
[20221205-16:19:05] [INFO ] address [<IP_ADDRESS>] port [3389] mode 1
[20221205-16:19:05] [INFO ] listening to port 3389 on <IP_ADDRESS>
[20221205-16:19:05] [INFO ] xrdp_listen_pp done
[20221205-16:19:09] [INFO ] Socket 12: AF_INET6 connection received from ::ffff:... port 36216
[20221205-16:19:09] [DEBUG] Closed socket 12 (AF_INET6 ::ffff:... port 3389)
[20221205-16:19:09] [DEBUG] Closed socket 11 (AF_INET6 :: port 3389)
[20221205-16:19:09] [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
[20221205-16:19:09] [INFO ] Using default X.509 key file: /etc/xrdp/key.pem
[20221205-16:19:09] [DEBUG] TLSv1.3 enabled
[20221205-16:19:09] [DEBUG] TLSv1.2 enabled
[20221205-16:19:09] [DEBUG] Security layer: requested 1, selected 1
ssl_tls_accept: TLS connection accepted
libxrdp_force_read: error
xrdp_process_main_loop: libxrdp_process_incoming failed
got XRDP SIGPIPE(13)
got XRDP SIGPIPE(13)
ssl_tls_print_error: SSL_shutdown: Server closed TLS connection
[20221205-16:19:09] [DEBUG] Closed socket 12 (AF_INET6 ::ffff:... port 3389)
xrdp_mcs_disconnect - socket closed
And here is what I get when I try to just look and see if I can see the certificate on the port:
root@...:/etc/xrdp# openssl s_client -connect ...:3389
CONNECTED(00000003)
140630150374720:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:../ssl/record/ssl3_record.c:331:
no peer certificate available
No client certificate CA names sent
SSL handshake has read 5 bytes and written 283 bytes
Verification: OK
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)

Seems like a client-side config issue.
Would not expect the openssl s_client test to succeed.  RDP servers don't answer port 3389 with an immediate TLS handshake, they need to get the RDP equivalent of STARTTLS
Maybe bring it up on Gitter, https://gitter.im/neutrinolabs/xrdp-questions

Indeed - the s_client won't work with an RDP server in a standard configuration.
It looks to me like the client is going away. Some ideas for you:-

Guacamole can't validate the certificate and unlike a regular RDP client can't prompt the user for what to do. Here's an example [stackoverflow.com]
Try using a connection from xfreerdp on the Guacamole machine and see if you get any client-side errors.

Appreciate the responses. I think maybe part of what put me on that path was I have a windows machine with RDP configured with a certificate on it and it presents the certificate when utilizing openssl. Also the only thing that I change from a working to a non-working connection is the check box for the connection that allows it to ignore the server certificate.
I spent some time looking into it and it does look like a client issue. I copied the CA certificate into the guacd container and was able to test using openssl and it doesn't trust the CA certificate. Ill have to work on adding that to the container and then everything will probably work. Thank you for the help!


How about adding feature like jenv.

Hi, today, I tried sdkman-cli and it's awesome. But, I can't find the command like sdk local and sdk global. So,  how about adding freatures like jenv.
I'm a java and groovy beginner. So, this work is beyond my ability. And, it's just a =Little advice=

Please note that this is not a forum for user discussion, but for addressing development features and bugs. For usage discussion please consider using gitter.
Complete instructions on how to use sdkman can be found on our site at http://sdkman.io


Upgrade nebula.netflixoss to replace bintray publication and update TravisCI secrets

Hi folks,
As you might be aware, JFrog is sunsetting Bintray and JCenter: https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/
This upgrades to Nebula NetflixOSS which will publish to Nebula's OSS repos and Maven Central.
Repositories based on status:

https://netflixoss.jfrog.io/artifactory/maven-oss-snapshots
https://netflixoss.jfrog.io/artifactory/maven-oss-candidates
https://netflixoss.jfrog.io/artifactory/maven-oss-releases

Coverage increased (+0.007%) to 93.901% when pulling 31062ef0147db1bc3e821fd3a0f4a328bbcc98d8 on replace-bintray into e1d1c11a53dd846c0de41071625dff9a425d5703 on master.


Feature Request: support logging Set & Map types

Expected Behaviour
If I enter a Set as a value of the LogItemExtraInput it should print it's elements like the console.log() and not return {}.
I was thinking there were no data in the set and searched a while for the error.
Current Behaviour
Set with elements will be printed as {}
Code snippet
import { Logger } from '@aws-lambda-powertools/logger';
const log = new Logger({
logLevel: 'DEBUG'
});
const a = new Set();
a.add(1);
a.add(2);
log.debug('My set not logged properly', { data: a});
//{"level":"DEBUG","message":"My set not logged properly","service":"service_undefined","timestamp":"2023-08-12T14:27:00.205Z","data":{}}
console.log('My set logged', a);
// My set logged Set(2) { 1, 2 }
Steps to Reproduce

Create new node project
Install powertools logger in node modules
Copy code snippet from above
Run and see missing Set data

Possible Solution
I digged a little into the code.
It seems the extra input is stringified with JSON.stringify which cannot handle Sets in the expected way, because the values are not properties of the Set.
Could be added to the getReplacer() in Logger.js that also handles bigints.
Maybe convert Set to an array [...mySet] or create string representation manually.
Powertools for AWS Lambda (TypeScript) version
latest
AWS Lambda function runtime
18.x
Packaging format used
npm
Execution logs
Example in the logs:

{
    "logLevel": "DEBUG",
    "message": "Modified products and documents",
    "awsRegion": "eu-central-1",
    "service": "cache-invalidation",
    "timestamp": "2023-08-12T13:43:30.197Z",
    "correlationIds": {
        "xRayTraceId": "xxxxxxxxxxxxxxxxxxxxxxxx"
    },
    "durationInMs": 1291,
    "changedAfter": "2023-08-09T22:59:56.820Z",
    "numberOfProducts": 4,
    "numberOfDocuments": 5,
    "productIds": [
        [
            "PROD1",
            "sv-se"
        ],
        [
            "PROD2",
            "no-no"
        ],
        [
            "PROD3",
            "da-dk"
        ],
        [
            "PROD4",
            "no-no"
        ]
    ],
    "documentIds": {}
}

Hi @hfahlbusch thank you for taking the time to open this issue.
Before emitting a log the Logger utility calls JSON.stringify() on the log object.
Set, as well as Map and others complex types, is not natively JSON-serializable (docs) so the behavior is not a bug but a missing feature.
I think it could be a good addition to the library so I'm going to change the issue type and mark it as feature request.
If there's interest we could definitely add support for those types after agreeing on a format to use.

I had a different mental model in my head, I was assuming it behaves more like the console.log not knowing that it's basically a JSON.stringify(). So that's why I framed it as a bug.
I guess with the advent of Sets and Maps it would be a good addition. In my opinion it brings some more comfort.
But for me even the confusion was causing more trouble, than "just transforming the Set to an array" to see it's values.

hi @hfahlbusch apologies for the delayed response.
The suggestion to convert Set to Array and Map to Object seems sensible, I wonder however if there's any edge case that we should consider or avoid, especially with Map -> Object. From the top of my head one of the main differences between Map and plain objects is that the former can have many more types as key rather than just string like objects.
I think we can approximate and cast most of them to strings, i.e. a Map that has numbers as key is relatively safe to cast to an object that has string representations of these numbers. However for more complex types like Symbols we might not be able to do this.
I'm putting the issue on the backlog and including it in the scope for the next upcoming major version. I've also edited the type to explicitly include the Map type.
I'd like to also open the feature for other contributors. If anyone is interested in picking this up, please leave a comment below and let us know if you have any question. If everything is clear, please still leave a comment to let us know you're starting to work on this so we avoid duplicating effort, and if possible also share your comments on the implementation that you'd like to carry out.

Hi @dreamorosi,
maybe I could implement this as a first contribution.
Do you have any additional comments to the planned serialization?
What do you think?

Hi @hfahlbusch, just wanted to check in and see if there's anything that I can help with or if you have any questions 😃

Hello,
We have decided to close this feature in favor of a more powerful implementation that will allow customers to provide their own JSON replacer function. You can find more details in the dedicated issue: #1776


Update circleci and inchci badges in readme

The inchci server is currently down, this is why it looks broken.

The coveralls I kept it with the marc_liberation repo name. It is still reading from that.


Zero Weight should not be considered in page sorting

See https://discuss.gohugo.io/t/data-pages-has-weight-0-for-unweighted-pages/4495

Unweighted pages should have a default weight (e.g. 0), and then the sorting should be consistent for promoting and demoting pages.
This would be consistent if the sorting is descending according to weight
-- i.e. putting a positive weight promotes a page, a negative weight demotes a page.

I agree, but that would break stuff.

It was not a bug, it was a feature 👎
I gave set some huge values to some posts' weight to send them at the bottom of the list. Now, they are at the top. Do I need to set weight for all other posts?

this commit (https://github.com/spf13/hugo/commit/4b4ab4755339a8c1d034be1f75b323d585dac1df) breaks expected sorting.
{{ range .Data.Pages.ByWeight.Reverse }}
output: 0 0 20161200 20161000 450 100 50 10
output expected: 20161200 20161000 450 100 50 10 0 0

Please don't comment on closed bugs and expect someone to pick up on it.


Make lightgbm work with HyperbandSearchCV

These libraries don't seem to work together.  I think that supporting or claiming integration with any new ML library should include support for hyperparameter tuning, that's definitely an MVP.
Here a code and error dump to back up my point:
import dask
import dask.dataframe as dd
from distributed import Client
from dask_ml.model_selection import HyperbandSearchCV
from dask_ml import datasets
import lightgbm as lgb

client = Client('<IP_ADDRESS>:8786')

X, y = datasets.make_classification(chunks=50)

model = lgb.DaskLGBMRegressor(client=client)

param_space = {
    'n_estimators': range(100, 200, 50),
    'max_depth': range(3, 6, 2),
    'booster': ('gbtree', 'dart'),
}

search = HyperbandSearchCV(model, param_space, random_state=0, patience=True, verbose=True, test_size=0.05)
search.fit(X, y)

And the error message
/opt/conda/lib/python3.8/site-packages/sklearn/model_selection/_search.py:285: UserWarning: The total space of parameters 8 is smaller than n_iter=81. Running 8 iterations. For exhaustive searches, use GridSearchCV.
warnings.warn(
/opt/conda/lib/python3.8/site-packages/sklearn/model_selection/_search.py:285: UserWarning: The total space of parameters 8 is smaller than n_iter=34. Running 8 iterations. For exhaustive searches, use GridSearchCV.
warnings.warn(
/opt/conda/lib/python3.8/site-packages/sklearn/model_selection/_search.py:285: UserWarning: The total space of parameters 8 is smaller than n_iter=15. Running 8 iterations. For exhaustive searches, use GridSearchCV.
warnings.warn(
[CV, bracket=0] For training there are between 47 and 47 examples in each chunk
[CV, bracket=1] For training there are between 47 and 47 examples in each chunk

AttributeError                            Traceback (most recent call last)
 in
10
11 search = HyperbandSearchCV(model, param_space, random_state=0, patience=True, verbose=True, test_size=0.05)
---> 12 search.fit(X, y)
/opt/conda/lib/python3.8/site-packages/dask_ml/model_selection/_incremental.py in fit(self, X, y, **fit_params)
715         client = default_client()
716         if not client.asynchronous:
--> 717             return client.sync(self._fit, X, y, **fit_params)
718         return self._fit(X, y, **fit_params)
719
/opt/conda/lib/python3.8/site-packages/distributed/client.py in sync(self, func, asynchronous, callback_timeout, *args, **kwargs)
849             return future
850         else:
--> 851             return sync(
852                 self.loop, func, *args, callback_timeout=callback_timeout, **kwargs
853             )
/opt/conda/lib/python3.8/site-packages/distributed/utils.py in sync(loop, func, callback_timeout, *args, **kwargs)
352     if error[0]:
353         typ, exc, tb = error[0]
--> 354         raise exc.with_traceback(tb)
355     else:
356         return result[0]
/opt/conda/lib/python3.8/site-packages/distributed/utils.py in f()
335             if callback_timeout is not None:
336                 future = asyncio.wait_for(future, callback_timeout)
--> 337             result[0] = yield future
338         except Exception as exc:
339             error[0] = sys.exc_info()
/opt/conda/lib/python3.8/site-packages/tornado/gen.py in run(self)
760
761                     try:
--> 762                         value = future.result()
763                     except Exception:
764                         exc_info = sys.exc_info()
/opt/conda/lib/python3.8/site-packages/dask_ml/model_selection/_hyperband.py in _fit(self, X, y, **fit_params)
399         _brackets_ids = list(reversed(sorted(SHAs)))
400
--> 401         _SHAs = await asyncio.gather(
402             *[SHAs[b]._fit(X, y, **fit_params) for b in _brackets_ids]
403         )
/opt/conda/lib/python3.8/site-packages/dask_ml/model_selection/_incremental.py in _fit(self, X, y, **fit_params)
661
662         with context:
--> 663             results = await fit(
664                 self.estimator,
665                 self._get_params(),
/opt/conda/lib/python3.8/site-packages/dask_ml/model_selection/_incremental.py in fit(model, params, X_train, y_train, X_test, y_test, additional_calls, fit_params, scorer, random_state, verbose, prefix)
475         A history of all models scores over time
476     """
--> 477     return await _fit(
478         model,
479         params,
/opt/conda/lib/python3.8/site-packages/dask_ml/model_selection/_incremental.py in _fit(model, params, X_train, y_train, X_test, y_test, additional_calls, fit_params, scorer, random_state, verbose, prefix)
266     # async for future, result in seq:
267     for _i in itertools.count():
--> 268         metas = await client.gather(new_scores)
269
270         if log_delay and _i % int(log_delay) == 0:
/opt/conda/lib/python3.8/site-packages/distributed/client.py in _gather(self, futures, errors, direct, local_worker)
1846                             exc = CancelledError(key)
1847                         else:
-> 1848                             raise exception.with_traceback(traceback)
1849                         raise exc
1850                     if errors == "skip":
/opt/conda/lib/python3.8/site-packages/dask_ml/model_selection/_incremental.py in _partial_fit()
101         if len(X):
102             model = deepcopy(model)
--> 103             model.partial_fit(X, y, **(fit_params or {}))
104
105         meta = dict(meta)
AttributeError: 'DaskLGBMRegressor' object has no attribute 'partial_fit'

Seems like lightgbm doesn't support partial fitting or at least the partial_fit calling signature found in sklearn libraries.  @jameslamb, is that correct ?

Thanks for raising an issue @vecorro. I've transferred this issue over to the dask-ml repository as that's where HyperbandSearchCV is located.
The docs for HyperbandSearchCV are clear that it only works with estimators which have a partial_fit method. So I believe this AttributeError should be expected
cc'ing @stsievert (HyperbandSearchCV), and @jameslamb (lightgbm)

@jameslamb, is that correct ?

That's correct, lightgbm's sklearn interface does not support partial_fit() the way some sklearn classifiers do.
lightgbm supports similar behavior by allowing you to begin boosting from an arbitrary score (which could be a prediction obtained by a previous model). See https://github.com/microsoft/LightGBM/issues/2718.
So maybe it's possible for lightgbm to add a partial_fit() method, but I can't say for sure without some more research. We'd welcome a feature request at https://github.com/microsoft/LightGBM/issues explaining precisely what the desired behavior is.

In addition, the lightgbm.dask estimators have not been tested for compatibility with the hyperparameter tuning stuff in dask-ml, and I'm not sure that they should be.
Based on the examples in https://ml.dask.org/xgboost.html and https://ml.dask.org/hyper-parameter-search.html#drop-in-replacements-for-scikit-learn, my understanding is that the hyperparameter tuning stuff in dask-ml, like GridsearchCV, expects to be given training data in Dask collections and a model object that would only perform local training on local chunks of data.
So I even if lightgbm's estimators did support partial_fit(), I'd expect code like the one given in this issue to use lgb.LGBMClassifier, not lgb.DaskLGBMClassifier.

Thanks all. Question for @jameslamb: Are you suggesting that I should have used lgb.LGBMClassifier instead of lgb.DaskLGBMClassifier?

When I moved from incremental hyperparameter optimization with HyperbandSearchCV to passive hyperparameter optimization with RandomizedSearchCV/GridSearchCV, your example worked for me:
from distributed import Client
from dask_ml.model_selection import RandomizedSearchCV
from dask_ml import datasets
import lightgbm as lgb

if __name__ == "__main__":
    X, y = datasets.make_classification(chunks=50)
    model = lgb.LGBMRegressor()
    param_space = {'n_estimators': range(100, 200, 50),
                   'max_depth': range(3, 6, 2)}

    client = Client()
    search = RandomizedSearchCV(model, param_space, n_iter=5)
    search.fit(X, y)
    print(search.best_score_)

{Randomized, Grid}SearchCV has the advantage of not requiring a partial_fit implementation. However, they do require that the entire training dataset fit in memory.

I think that supporting or claiming integration with any new ML library should include support for hyperparameter tuning, that's definitely an MVP.

Where have you seen that claim show up? That should be fixed I think.

my understanding is that the hyperparameter tuning stuff in dask-ml, like GridsearchCV, expects to be given training data in Dask collections and a model object that would only perform local training on local chunks of data.

That's my understanding too, even for the mentioned HyperbandSearchCV. In that case, at the end of the day model.partial_fit is called with two NumPy arrays (or the chunks of a Dask array): model.partial_fit(X_chunk, y_chunk).

Thanks @stsievert, this helps.
I think I had to read the Dask documentation several times to understand the trade-offs that apply to integrations between Dask 3rd party libraries, specially when the dataset is larger than the system memory. I'll use this example you're providing.
I'm closing the issue as it looks like lightgbm is not designed to work in the way I was attempting. Thanks.

I presume you're talking about https://ml.dask.org/hyper-parameter-search.html. Why did you have to read that documentation several times?


Admin server hangs and stops accepting all requests

If you are reporting any crash or any potential security issue, do not
open an issue in this repo. Please report the issue via emailing
<EMAIL_ADDRESS>where the issue will be triaged appropriately.
Title: Admin server hangs and stops accepting all requests
Description:
On rare occasions, the admin server hangs and stops accepting all requests
A call to another listener that forwards to the admin interface works - it will return a 504 timeout, or an immediate 404 if not matching one of the routes. So it appears only the main thread is locked up.
There is a large set of strace, gdb, etc attached in https://github.com/istio/istio/issues/29334.
In one case, an XDS disconnect (triggered by the control plane) seemed to unstick things. In another case, I had a pod in this state for 2+ days.
Repro steps:
Unknown. There have been three reports of this in Istio from different users: https://github.com/istio/istio/issues/29334
Admin and Stats Output:
Not accessible :slightly_smiling_face:
Config:
Not accessible :slightly_smiling_face:
Logs:
There were no logs, and I cannot turn on higher log level since the admin interface is not accessible
Call Stack:
https://github.com/istio/istio/issues/29334 has a variety of strace, ss, gdb, etc calls.

istio/istio#29334 Various factors can cause DOS at main thread .
Deadlock and epoll/read should have quite different symptom though: the former is almost 0 cpu utilization and the latter saturate 1 cpu core.
https://github.com/envoyproxy/envoy/pull/14954 should have fix one of the cause of the latter case. The very first istio/istio#29334 might have been resolved.
https://github.com/envoyproxy/envoy/issues/16124#issuecomment-825078679  is likely another case. Likely a deadlock as you discovered
I think

@lambdai I agree with your assessment, after looking at it a bit more it seems two completely distinct issues


Cannot find global function tvm.relay._save_param_dict

Install TVM from source per https://docs.tvm.ai/install/from_source.html#build-the-shared-library.
go into python prompt. It is fine to:
import tvm

But I cannot do:
from tvm import relay

(venv3.6) [ ~/speech_synthesis]# python
Python 3.6.8 (default, Mar  9 2019, 08:09:59)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux
Type "help", "copyright", "credits" or "license" for more information.

from tvm import relay
Traceback (most recent call last):
File "", line 1, in
File "/root/speech_synthesis/tvm/python/tvm/relay/init.py", line 16, in
from . import param_dict
File "/root/speech_synthesis/tvm/python/tvm/relay/param_dict.py", line 5, in
_save_param_dict = tvm.get_global_func("tvm.relay._save_param_dict")
File "/root/speech_synthesis/tvm/python/tvm/_ffi/function.py", line 213, in get_global_func
raise ValueError("Cannot find global function %s" % name)
ValueError: Cannot find global function tvm.relay._save_param_dict

when listing all global functions using list_global_func_names(), it seems the function is registered as: '_save_param_dict'. It doesn't contain "tvm.relay. prefix"

It seems the problem is the tvm version. I had an older version of tvm. But I tried to install the python package using method 1 and 2. But both got the same error.
However, if I ran the same import in tvm/build directory, I didn't get the error. It seemed that the correct tvm was used only in the build directory.

OK, the problem is that I need to run "make install" under the build directory, which is not specified in the instruction.


[Java] Install java8 version

steps:
brew tap caskroom/cask
brew install brew-cask
brew cask install java


Error when creating handle in TransformHandleManager

I'm making an open-source Unity game and using this package, but there were no instructions on how to use it. So I dig into the code, and found CreateHandle(). However, when creating a handle at an object's transform, an error occurs:
ArgumentException: The Object you want to instantiate is null.
        at UnityEngine.Object.CheckNullArgument (System.Object arg, System.String message) [0x0000a] in \home\bokken\build\output\unity\unity\Runtime\Export\Scripting\UnityEngineObject.bindings.cs:558
        at UnityEngine.Object.Instantiate[T] (T original) [0x0000c] in \home\bokken\build\output\unity\unity\Runtime\Export\Scripting\UnityEngineObject.bindings.cs:386
        at TransformHandles.TransformHandleManager.CreateHandle (UnityEngine.Transform target) [0x00033] in .\Library\PackageCache\com.orkunmanap.runtime-transform-handles@4cf2a8b44b\Runtime\Scripts\TransformHandleManager.cs:84
        at PCSimulatorObject.Awake () [0x00081] in C:\Users\***\PC Simulator Save Editor 2\Assets\Scripts\Types\PCSimulatorObject.cs:53
        at UnityEngine.GameObject.AddComponent (System.Type componentType) [0x00003] in \home\bokken\build\output\unity\unity\Runtime\Export\Scripting\GameObject.bindings.cs:240
        at UnityEngine.GameObject.AddComponent[T] () [0x0000c] in \home\

I found that the problem was at TransformHandleManager at line 84.
Code:
void Awake() {
        handleManager = TransformHandleManager.Instance;
        this.parent = gameObject;
        this.outline = parent.AddComponent<Outline>();
        this.outline.OutlineColor = Color.blue;
        this.outline.enabled = false;
        ClearHitbox += () => this.outline.enabled = false;
        OnDestroy += () => Destroy();
        gameObject.AddComponent<Ghost>();
        Handle handl = handleManager.CreateHandle(transform); //<<<<<<<<<
        handleManager.AddTarget(transform, handl);
    }

I strongly suggest checking out the scripts of the sample project in the repository. It includes every fundamental action, such as creating, deleting, adding, or removing objects, etc.
Apart from that, the reason for the error is probably that you didn't set the Ghost prefab on the manager object. I should have thrown an exception about it. I will fix it. Thanks.

Oh, I forgot to add a manager to an object, which caused the error. Now its fixed.
Plus, how did you manage to make the object move when dragging? The object wont move at all if I drag it.


[SPARK-31940][SQL][DOCS] Document the default JVM time zone in to/fromJavaDate and legacy date formatters

What changes were proposed in this pull request?
Update comments for DateTimeUtils.toJavaDate and fromJavaDate, and for the legacy date formatters LegacySimpleDateFormatter and LegacyFastDateFormatter regarding to the default JVM time zone. The comments say that the default JVM time zone is used intentionally for backward compatibility with Spark 2.4 and earlier versions.
Closes #28709
Why are the changes needed?
To document current behaviour of related methods in DateTimeUtils and the legacy date formatters. For example, correctness of HiveResult.hiveResultString and toHiveString is directly related to the same time zone used by toJavaDate and LegacyFastDateFormatter.
Does this PR introduce any user-facing change?
No
How was this patch tested?
By running the Scala style checker ./dev/scalastyle

Test build #123684 has started for PR 28767 at commit 829f909.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/28307/
Test PASSed.

@cloud-fan @HyukjinKwon Please, review this PR.
@juliuszsompolski After offline discussions, we decided to just document the current behaviour and keep the legacy formatters dependent on the default JVM time zone (and ignore Spark's session time zone).

Test build #123684 has finished for PR 28767 at commit 829f909.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/123684/
Test PASSed.

thanks, merging to master/3.0!


error when querying a dataframe

first thanks for this, it works great!!!
import duckdb
from sqlframe.duckdb.session import DuckDBSession
spark = DuckDBSession()
df = spark.read.load("/lakehouse/default/Tables/ny/taxi",format ="delta")
df.show()

but when I try this
spark.sql(" select * from df ;").show()
i get these errors
InvalidInputException                     Traceback (most recent call last)
Cell In[9], line 1
----> 1 spark.sql(" select * from df ;").show()

File ~/jupyter-env/python3.11/lib/python3.11/site-packages/sqlframe/base/dataframe.py:1580, in _BaseDataFrame.show(self, n, truncate, vertical)
   1578 # Make sure that the limit we add doesn't affect the results
   1579 df = self._convert_leaf_to_cte()
-> 1580 result = df.limit(n).collect()
   1581 table = PrettyTable()
   1582 if row := seq_get(result, 0):

File ~/jupyter-env/python3.11/lib/python3.11/site-packages/sqlframe/base/dataframe.py:1550, in _BaseDataFrame.collect(self)
   1549 def collect(self) -> t.List[Row]:
-> 1550     return self._collect()

File ~/jupyter-env/python3.11/lib/python3.11/site-packages/sqlframe/base/dataframe.py:1553, in _BaseDataFrame._collect(self, **kwargs)
   1552 def _collect(self, **kwargs) -> t.List[Row]:
-> 1553     return self.session._collect(self._get_expressions(optimize=False), **kwargs)

File ~/jupyter-env/python3.11/lib/python3.11/site-packages/sqlframe/base/session.py:489, in _BaseSession._collect(self, expressions, quote_identifiers, skip_normalization, skip_rows)
    487     else:
    488         sql = expression  # type: ignore
--> 489     self._execute(sql)
    490 if skip_rows:
    491     return []

File ~/jupyter-env/python3.11/lib/python3.11/site-packages/sqlframe/duckdb/session.py:62, in DuckDBSession._execute(self, sql)
     61 def _execute(self, sql: str) -> None:
---> 62     self._last_result = self._cur.execute(sql)

InvalidInputException: Invalid Input Error: Python Object "df" of type "DuckDBDataFrame" found on line "/home/trusted-service-user/jupyter-env/python3.11/lib/python3.11/site-packages/sqlframe/base/dataframe.py:1580" not suitable for replacement scans.
Make sure that "df" is either a pandas.DataFrame, duckdb.DuckDBPyRelation, pyarrow Table, Dataset, RecordBatchReader, Scanner, or NumPy ndarrays with supported format

What you provided is not valid PySpark syntax therefore it also doesn't work in SQLFrame. If you want to access a Dataframe from SQL without materializing it then you want to use createOrReplaceTempView.
This is how it would work with your example:
from sqlframe.duckdb.session import DuckDBSession
spark = DuckDBSession()
df = spark.read.load("/lakehouse/default/Tables/ny/taxi", format ="delta")
df.createOrReplaceTempView("employee")
spark.sql("select * from employee;").show()

Let me know if that solves your issue (works locally for me).

@eakmanrq thanks a lot, sorry lost in translation, what I meant : it would be nice if duckdb understand DuckDBDataFrame natively

I will close the issue, I think it should be a feature request in duckdb not here , thanks


Non-macOS Vulkan natives missing from 3.3.2-SNAPSHOT

Question
lwjgl-vulkan 3.3.1-SNAPSHOT in the snapsnots repository (https://oss.sonatype.org/content/repositories/snapshots) only has natives for macOS and macOS on arm64 - Windows and Linux natives are missing.
Wasn't sure which issue template to use, so I used question

The Vulkan bindings do not use a native library on Linux and Windows, they bind directly to the Vulkan driver/loader. macOS does not support Vulkan natively, so the binary you see in lwjgl-vulkan is actually MoltenVK.


Replace nan values to zero

Link to the issue: https://github.com/Onelinerhub/onelinerhub/issues/1349

Thanks man.
Deployed: https://onelinerhub.com/python-pandas/how-to-change-nan-values-to-0


[WIP] chore(demo): Dropdown add reuse component & migrate example to new approach

Partially solved #9057

Problem with setting options by url
https://github.com/user-attachments/assets/e7eba53d-d9eb-4f7c-914e-662467f1a801


nii.gz文件的处理

Hi Author! Thanks for your reply. The three files have been opened. The predicted segmentation map is with multiple slices. May I ask if the final segmentation map effect is composed of multiple slices or a single slice? However, looking at a single slice does not achieve the predicted effect and the predicted segmentation map is very different from the labeling under the slice at the same location. Is the differentiation of multiple organs with different colors manually labeled or automatically labeled?

Hi there. I am not sure about what problem you have encountered. If you would like to overlap the segmentation mask on the original 3d image to generate the colored visualization results, you can open the original 3d image instead and then import the predicted segmentation mask afterwards; If you find the prediction is very different from the ground truth, then maybe you need to verify the preprocessing of your data. Feel free to ask us if you have further questions!


fix: Entity.save() returns error or warning message if found

Related Jira: https://splunk.atlassian.net/browse/AQA-1112
The Entity.save's API is changing.
Behaviour before:
If expect_error=False and save operation fails (there is an error message), the function returns True even though nothing was saved.
Behaviour now:
After save operation, if error / warning messages are found, the function will return them and only return True if no messages were found.

:tada: This PR is included in version 2.3.4 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Delete Registered model

I can't able to delete my registered model,  is there any method to delete the model or is there any alternative method to do that help me with this

can i get some more clarity on this there is no status parameter in my model


Empty Plugins List Partially Breaks the Editor

Godot version: 3.1 Stable, but the issue started sometime during the Beta or Alpha of 3.1.
OS/device including version:
Pop!_OS 18.04
Dell Optiplex 990
i3-2100, RX460
Issue description:
Code complete box does not open, but completion is possible.
BlendTree's nodes can't be connected.
Many spinner box's numbers are hidden.
Steps to reproduce:
I think I deleted an editor plugin without disabling it. Leaving this in the project.godot
[editor_plugins]

enabled=PoolStringArray(  )

Removing it fixes the issue.

I can't reproduce this on 3.2.2, closing.


UX Changes - clicking on calendar to create events, have times default to whole hours

Creating an event takes quite a few clicks. This is low priority but would be nice improvements

Also having a default event duration of 1 hour like google calendar would be very nice

closing and splitting into two tickets

closing and splitting into two tickets


Update documentation for Spring Petclinic application

Enhance the documentation by adding a repeated section that highlights the collaboration with Open Source projects and lists related improvements.

This pull request includes a small change to the README.md file. The change duplicates a paragraph about the benefits of working on the Spring Petclinic application and the opportunity to work with many Open Source projects. The duplicated paragraph has been added just before the list of issues and improvements related to the Spring JDBC usage.
Changes in README.md:

Duplicated a paragraph about the benefits of working on the Spring Petclinic application and the opportunity to work with many Open Source projects.


Add extraPodSpec

Similar to Z2JH https://z2jh.jupyter.org/en/stable/resources/reference.html#hub-extrapodspec

Went for "new" label for this, but this looks great to me!


etl_openlineage error: emit only accepts RunEvent class

"/home/airflow/.local/lib/python3.7/site-packages/openlineage/client/client.py", line 61, in emit
raise ValueError("emit only accepts RunEvent class")
ValueError: emit only accepts RunEvent class
[2022-06-17, 17:50:29 UTC] {taskinstance.py:1288} INFO - Marking task as FAILED. dag_id=etl_openlineage, task_id=send_ol_events, execution_date=20220617T175013, start_date=20220617T175014, end_date=20220617T175029

In a chat with @rossturk:
Ross: my current working hypothesis is that client.emit has gotten pickier somehow since that example was written…we can prove/disprove that by pinning openlineage-airflow in Dockerfile to an older version. we can also include @fm100 who wrote this DAG, he might like to be part of this.
the runevent class check was added three months ago, so this is plausible


Fixed TypeError: cancelAnimationFrame is not a function

Sorry, didn't notice this.  Resolved in #1125


can anyone help me rename this project ?

1.change all Lau ho waiThomas to wongchunghim
2.change all 160179991 to 170138865
[please!!![]
https://doc-00-8k-docs.googleusercontent.com/docs/securesc/fcjs3snadn9r83iats78l8snk9nns49g/57ostkfuqaqh65mmh3pkhfnfjliknt4h/1511596800000/11324005335961328067/12584170690735666054/1u2QzbBXs45zC9N2LnDSaKiu9K2BLD-of?e=download

https://doc-00-8k-docs.googleusercontent.com/docs/securesc/fcjs3snadn9r83iats78l8snk9nns49g/57ostkfuqaqh65mmh3pkhfnfjliknt4h/1511596800000/11324005335961328067/12584170690735666054/1u2QzbBXs45zC9N2LnDSaKiu9K2BLD-of?e=download

@wongchunghim I don't have access to file

Here is the file.Thank you so much
Kuanysh<EMAIL_ADDRESS>於 2017年11月25日 (週六) 5:49 PM 寫道﹕

@wongchunghim I don't have access to file—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
|  | 不含病毒。www.avast.com  |

Sorry,but you didn't attach the file

what can i do?
Kuanysh<EMAIL_ADDRESS>於 2017年11月25日 (週六) 7:30 PM 寫道﹕

Sorry,but you didn't attach the file—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Explain where is you problem in renaming a project.
Attach screenshot of the error if you get it.
Try to find your problem in other issues

https://files.fm/u/vd55zzz5

Here is the file!!!!!

1.change all Lau ho waiThomas to wongchunghim
2.change all 160179991 to 170138865

@wongchunghim you use vs2013. The extension was created for vs2017. Unfortunately you cannot use the extension in your project


Bundling with prod mode will case files to be named -ngfactory.e3e2c005b77282947845.js

Versions

Angular CLI: 6.0.0-beta.4
Node: 8.9.1
OS: win32 x64
Angular: 6.0.0-beta.7
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, platform-server, router

@angular/cdk: 6.0.0-beta-0
@angular/cli: 6.0.0-beta.4
@angular/material: 6.0.0-beta-0
@angular-devkit/build-optimizer: 0.4.3
@angular-devkit/core: 0.4.3
@angular-devkit/schematics: 0.4.3
@ngtools/json-schema: 1.2.0
@ngtools/webpack: 6.0.0-beta.4
@schematics/angular: 0.4.3
@schematics/package-update: 0.4.3
typescript: 2.6.2
webpack-cli: 2.0.10
webpack: 4.0.1

Repro steps
https://github.com/alan-agius4/ng-cli-issue-9900-bundle-name/tree/master/dist

ng build --prod

Observed behavior
Filename of of lazy module will be will be named with ngfactory example betting-betting-module-ngfactory.e3e2c005b77282947845.js when having  namedChunks set to true
chunk {0} betting-betting-module-ngfactory.75831e5a4d13dbbecde2.js (betting-betting-module-ngfactory) 948 bytes  [rendered]
chunk {1} runtime.bd60b09b0d2ab090f395.js, runtime.d41d8cd98f00b204e980.css (runtime) 1.85 kB [entry] [rendered]
chunk {2} styles.ac89bfdd6de82636b768.css (styles) 0 bytes [initial] [rendered]
chunk {3} polyfills.e8209731003adc2b9f02.js (polyfills) 59.1 kB [initial] [rendered]
chunk {4} main.0ecbca2d690e4432c54c.js, main.d41d8cd98f00b204e980.css (main) 381 kB [initial] [rendered]
i ｢wdm｣: Compiled successfully.

Desired behavior
FIle part of ng-factory should be dropped.

With named chunks in prod mode the names seem to get pretty unpredictable example
marketplace-marketplace-landing-marketplace-landing-module~search-search-module~subscriber-treasure-~4dc28e81.js
This file references two different lazy loaded modules in the same name. We use the cli behind a proxy server so get the redirect rules on these files is a bit tricky.

With named chunks in prod mode the names seem to get pretty unpredictable, example:
marketplace-marketplace-landing-marketplace-landing-module~search-search-module~subscriber-treasure-~4dc28e81.js
This file references three different lazy loaded modules in the same name. We use the cli behind a proxy server so getting the redirect rules on these files is tricky.

I'm still having this problem on the latest version. And my bundles don't have '.bundle' or '.chunk' parts in their name anymore.


Replay system (re)implementation

This took way too long for me to make. Remember #86? Yeah this is me finally getting a step in that direction done.
The replay system is now mostly usable. There's just a few things I'd like fixed, but overall it works quite well in my experience.
HAS NOT BEEN TESTED WITH 2+ PLAYERS. I'll get to this eventually, I just don't have another PC to test it with (oof).
Things I (think) still need to do before merging this:

[ ] Fix the tick counter on clientside HUD while playing replay
[ ] Get the fullbody animations working during a replay, it currently doesn't for some reason
[ ] Allow saving replays with a different filename (currently saves to beatrun\replays\<map name>\replaydump.txt)

I'd personally try and get those two done myself, but I just can't for some reason. If anyone has any feedback, let me know.
P.S: I spent way longer working on this than I should have, I really need to take a break from coding this.

HAS NOT BEEN TESTED WITH 2+ PLAYERS. I'll get to this eventually, I just don't have another PC to test it with (oof).

I can help with testing this in MP.

I'm closing this one for now, I think I'll need to rewrite quite a bit of this code to get all features of the system working before merging. That'll take a while though, I've got a lot of things interrupting this right now.

Quick update from me if anyone's bothered to read this PR: I'm gonna stop working on this, partly because of GitHub's forced 2FA which I can't be bothered to set up and trust to work when I actually need it (2FA almost locked me out of Discord once).
I'll move over to something else like GitLab for the time being.  Maybe I'll return to this once I get enough motivation, but for now screw it.

oh wow, i have a gitlab account

Quick heads-up to anyone watching this PR:

...GitHub's forced 2FA* which I can't be bothered to set up and trust to work when I actually need it (2FA almost locked me out of Discord once).

My earlier comment from my old account (@UnderSet) on Jan 24, 2024

This is my new account (no seriously, it even has the same email) and yep, I got locked out thanks to 2FA. So, uh, yeah this PR's never getting done. Thanks GitHub, very not-cool.


cmd: add scroll.fullpage

This enables full-page scrolling
Signed-off-by: William Casarin<EMAIL_ADDRESS>

Thanks for the PR! I've decided to do this without adding a new command, as it's less complicated to just handle an argument in the existing scroll.page command.
The conventional behavior seems to be full page scroll with PageUp/Down, so I've changed the default to that.

awesome, thanks!


Phantomjs test runner was out of date, …

leading tests to hang using 'learn'; this pasts in the new runner

thanks @eaud !


New derived table inst alt titles

New metadb derived table for instance derived tables. I also added this to the runlist.txt file.

closes #525


Design uploded by Pasindu Nethsara 2024/11/06 11.52 pm

Design uploded by Pasindu Nethsara 2024/11/06 11.52 pm

Design uploded by Pasindu Nethsara 2024/11/06 11.52 pm


Sometimes the reference of a user got from a command arg on custom commands is different

Just create a command like "-gimmeid" and put that code in:
{{if eq (len .Args) 2}}
```{{(index .Args 1)}}```
{{end}}

Sometimes the reference got from a user is like "<@!XXXXXXXXXXXXXXXXXX>", sometimes it is "<@XXXXXXXXXXXXXXXXXX>".
Maybe it's because I'm on computer and my friend is on a phone? Why are they different?
Because of that, when I want to check an ID I have to do both ways. It's not that bad, but it should be fixed, right?
Is this a bug from Discord?

not a bug, they're both valid, one is a nickname mention and the other is a username mention
what you could do instead is if you wanna get the id is do {{(userArg (index .Args 1)).User.ID}}
userArg will return a member object from a mention string like the above, you can only call it twice atm though in each custom command so beware of that

Okay, that helps a lot
But still kinda buggy the way the arg is coming.
Hmm it won't work
The code I was writing is something like that:
{{if eq (len .Args) 2}}{{$vary := index .Args 1}}
{{if eq $vary "-h"}}
Help text
{{else}}
Intro for the command
{{if or (eq $vary "<@!someonesid>") (eq $vary "<@someonesid>")}}
something
{{else if or (eq $vary "<@!someonesid2>") (eq $vary "<@someonesid2>")}}
something2
{{else if or (eq $vary "<@!someonesid3>") (eq $vary "<@someonesid3>")}}
something3
{{else}}
not registered.
{{end}}
{{end}}
{{end}}

I had to do that way because I didn't know another way atm. Changing the first line "{{$vary := index .Args 1}}" to "{{$vary := (userArg (index .Args 1)).User.ID}}" doesn't seems to work. Hmm.
Test code I used that failed too:
{{if gt (len .Args) 1}}{{$vary := (userArg (index .Args 1)).User.ID}}{{$vary}}{{end}}

Both have the same error:
An error caused the execution of the custom command template to stop:
Failed executing template: template: :1:56: executing "" at <1>: can't evaluate field User in type *discordgo.User

Okay, I got it. It's clean now. Thanks :3
And that bug? <!code> and ? I don't think it's a problem for me anymore, but still being a bug.

not a bug https://discordapp.com/developers/docs/reference#message-formatting


Only first match option.

Changes Unknown when pulling fe63130f2f2dd6962e1bdd344b947a12ae28148e on StartupMakers:master into ** on helior:master**.

Hey @grigory-leonenko, thanks for writing this feature! There was a previous discussion around this in #23 and I brought up the notion of highlighting the n-th index of matches, instead of just the first. That would definitely handle the first-match use-case, as well as the last-match, and anywhere else in-between using the same property (this.props.indexMatchOnly?)
It would be amazing if you could incorporate that abstraction in your code-change as well. Let me know! Thanks!

The first match is more reasonable, have a look at:
http://www.bing.com/
https://duckduckgo.com/

@helior could you please merge it?

I think we can bump the version to 0.4.0


Configuration of AMT Network Settings

I want to have RPS be able to configure the AMT Network settings during the activation of AMT so that I can specify the network settings that I want AMT to use to connect to my network.  I want to be able to re-use these same network settings across multiple AMT profiles
Examples of settings that I want to be able to set:

DHCP or Static IP assignment
If the IP address is shared with the host OS or not (Always share it is priority)
Syncing the IP address with the host OS (Always sync is priority)
Sharing the FQDN with the host OS (Always share it is priority)
RMCPing Response (true/false)
AMT Network Enabled (Always enabled is priority)

Implemented in 1.2 release


[FEATURE] - Store small maps in query string

It could be a nice feature to store small maps in a query string
This would allow ability to share via a URI.  Maybe use a url shortener for long URIs
Some markdown editors do this
https://jbt.github.io/markdown-editor/#U1bwSy1XcMlPLs1NzSvh4grJyCxWAKLEPIXUisTcgpxUAA==
This is an example
Note: the use of # should be discouraged here IMHO because it is more useful to use # to create an anchor in a document
What is needed?

A parameter in the query string to indicate content ( content | body | map ) perhaps
A parser of the query string e.g.

globalThis.qs = Object.fromEntries(
  new URLSearchParams(document.location.search)
)

And encoding for maps (e.g. json.stringify + shortener)
On load a method that will check the query string, extract the map, decode, and validate it
On load a function to render the map and probe sequence in case url is already there
Ability to save map / share to query string
Some UI, perhaps add one element to the dropdown for saving

I agree that the simplicity of sharing a map in a server-less way via a URL is tempting. On the other hand, what are the real expectations here? What map size are we expecting to store in a query string argument?
URLs are, in practice, limited by approximately 2Kb. This means that some maps will fit and some will not; folks will be storing a map in URL and then - once a threshold is reached - the app will fail to continue the storage.
Using a shortener is also somewhat problematic, because you would have to hit their API every time the "save" button is hit.

Very good points!
Regarding the query string length I think the limit would be 2kb due to internet explorer.  Other desktop browsers are about 64k.  Not sure the reasons, possibly this allows data: URIs
https://stackoverflow.com/a/812962
Mobile browsers might be different tho.  I would expect the feature to be for beginners to get started, with small starter maps, but ultimately a webdav server would be preferred bigger concepts
Agree that shorteners are problematic.  I suppose the use case here would be small maps for sharing and bookmarking.  Perhaps those maps in turn could link to larger stored maps.  Definitely a solution with trade offs.

It may sound a bit primitive, but perhaps simply url encoding the json/mymind file might work, even without shortening? It'd be possible to open a small dialog (for example, after clicking "share by url") with "copy to clipboard", along with a compatibility warning depending on how many characters are used.
E.g. if the url length is over 81578 characters, display "Due to the size of this mindmap, this url may not open in Internet Explorer and Microsoft Edge, but should work without problems in..."

It may sound a bit primitive, but perhaps simply url encoding the json/mymind file might work, even without shortening? It'd be possible to open a small dialog (for example, after clicking "share by url") with "copy to clipboard", along with a compatibility warning depending on how many characters are used.
E.g. if the url length is over 81578 characters, display "Due to the size of this mindmap, this url may not open in Internet Explorer and Microsoft Edge, but should work without problems in..."


Full Join Logic for Dimension Mappings

Completes JIRA Story DSGRID-186
This PR also fixes handling of dimension associations. The associations registered to existing projects did not work because the data files were not copied to the registry. We can patch this by manually uploading the files to S3.

@daniel-thom - #108 contains some revision intended for this PR. You should review it (to be merged into this PR) first before making changes.


[AMBARI-23578] - Log Search UI: open the available search terms list

What changes were proposed in this pull request?
When the user clicks in to search box field the list of the available search parameters should open up in order to let the user know what kind of parameters he/she can use.
How was this patch tested?
Manual and unit tests (267/267 success)
Please review Ambari Contributing Guide before opening a pull request.
@aBabiichuk please review it

@oleewere

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/1844/
Test PASSed.


[BUG]  Placeholder API ( PAPI) not working correctly

What is the bug?
use
/papi parse me %betterteams_level% return -1
Expected Behaviour
return 1
How to Reproduce
Server: Paper 1.20
Plugins: Vault (CMI recompiled version), LuckPerm, PAPI, and Better Teams
Create a team
Use /papi parse me %betterteams_level%
It should return -1
Error message
-1
Output of /teama version
[16:15:06 INFO]: [BetterTeams] Storage Method: com.booksaw.betterTeams.team.storage.storageManager.SeparatedYamlStorageManager
[16:15:06 INFO]: [BetterTeams] Minecraft Version: git-Paper-17 (MC: 1.20)
[16:15:06 INFO]: [BetterTeams] Language Selected: messages
[16:15:06 INFO]: [BetterTeams] Current plugin version: 4.7.1
Additional Information
No response

This bug has been fixed and the patch will be included in the next update. Thank you for reporting.


The code has expired.

The debug mode says
Device: (My xbox IP) Xbox Series X, getTokenRequest error: {
  status: 400,
  body: `{"error":"invalid_grant","error_description":"The provided value for the 'code' parameter is not valid. The code has expired.","correlation_id":"AnID"}`

And if i add it to Homekit it cant turn on/off or change channel, how can i fix that?
(i have xboxliveid and xboxWebApiToken set up)

Try to remove authTokenFile and authorize console again.

How I remove authTokenFile? (I'm on raspberry pi 4 and I'm accessing to it vía the raspberry local ip)

/var/lib/Homebridge/xboxTv/

It worked but now i get duplicate input entries for all inputs (for example Fortnite, Fortnite 2, Fortnite 3...) the duplicated input is the fist one i put on the inputs section and it gets duplicated by the number of inputs i add (for example if i add 20 inputs it only shows 20 Fortnite inputs and the default ones (Unconfigured input, Television, Dashboard, Settings and Accessory)) and if i turn on "Load inputs from device" it doesnt add any input only Unconfigured input, Television, Dashboard, Settings and Accessory

didnt worked it still shows: ```
Device: <IP_ADDRESS> Xbox Series X, getTokenRequest error: {
status: 400,
body: {"error":"invalid_grant","error_description":"The provided value for the 'code' parameter is not valid. The code has expired.","correlation_id":"AnID"}
}:

didnt worked it still shows:
Device: <IP_ADDRESS> Xbox Series X, getTokenRequest error: {
status: 400,
body: {"error":"invalid_grant","error_description":"The provided value for the 'code' parameter is not valid. The code has expired.","correlation_id":"AnID"}
}:

Didn´t worked it still shows:
Device: <IP_ADDRESS> Xbox Series X, getTokenRequest error: {
status: 400,
body: {"error":"invalid_grant","error_description":"The provided value for the 'code' parameter is not valid. The code has expired.","correlation_id":"AnID"}
}:

When i try to add it to home app it shows duplicated entries: for example ( Fortnite, Fortnite2, Fortnite3... ) it only duplicate the first input i add by the number of inputs i add (for example if i add 20 inputs it shows Fortnite, Fortnite2, Fortnite3... Fortnite20 and it only shows the Fortnite duplicated inputs and the default inputs ) and if i turn on "Load inputs from device" it only shows the default inputs
Default inputs are = Unconfigured input, Television, Dashboard, Settings and Accessory

Didn´t worked it still shows:
Device: <IP_ADDRESS> Xbox Series X, getTokenRequest error: {
status: 400,
body: {"error":"invalid_grant","error_description":"The provided value for the 'code' parameter is not valid. The code has expired.","correlation_id":"AnID"}
}:

The xbox turn on/off but it doesn´t change between apps and when i try to add it to home app it shows duplicated entries: for example ( Fortnite, Fortnite2, Fortnite3... ) it only duplicate the first input i add by the number of inputs i add (for example if i add 20 inputs it shows Fortnite, Fortnite2, Fortnite3... Fortnite20 and it only shows the Fortnite duplicated inputs and the default inputs ) and if i turn on "Load inputs from device" it only shows the default inputs.
Default inputs are = Unconfigured input, Television, Dashboard, Settings and Accessory
(I already tried deleting /var/lib/homebridge/xboxTv/, cleared the Homebridge accessory cache, and removed all xbox references from Unpair Bridges / Cameras / TVs / External Accessories)

Post your config

         {
            "devices": [
                {
                    "name": "Xbox Series X",
                    "host": "<IP_ADDRESS>",
                    "xboxliveid": "MyLiveID",
                    "xboxWebApiToken": "MyToken",
                    "refreshInterval": 5,
                    "disableLogInfo": false,
                    "webApiControl": true,
                    "volumeControl": 0,
                    "switchInfoMenu": true,
                    "rebootControl": false,
                    "getInputsFromDevice": false,
                    "filterGames": false,
                    "filterApps": false,
                    "filterSystemApps": false,
                    "filterDlc": false,
                    "inputs": [
                        {
                            "name": "Disney+",
                            "reference": "Disney.37853FC22B2CE_6rarf9sa4v8jt!App",
                            "type": "APPLICATION"
                        },
                        {
                            "name": "Fortnite",
                            "reference": "436609B6.FortniteClient_9ncxwbgmmv7m8!AppFortnite",
                            "type": "APPLICATION"
                        },
                        {
                            "name": "Apex Legends",
                            "reference": "Apex_zwks512sysnyr!r5.App",
                            "type": "APPLICATION"
                        },
                        {
                            "name": "Rocket League",
                            "reference": "RocketLeague_c7ezv2ggf5q78!TAGameDingoShipping",
                            "type": "APPLICATION"
                        },
                        {
                            "name": "Fifa 2021",
                            "reference": "ElectronicArtsMobile.FIFA21Scarlett_q5ha1ztykcgvj!FIFAGame.Main",
                            "type": "APPLICATION"
                        },
                        {
                            "name": "Forza Horizon 4",
                            "reference": "Microsoft.SunriseBaseGame_8wekyb3d8bbwe!ReleaseFinal",
                            "type": "APPLICATION"
                        },
                        {
                            "name": "Human Fall Flat",
                            "reference": "CurveDigital.HumanFallFlat_1ezqdnbhnc70m!Game",
                            "type": "APPLICATION"
                        },
                        {
                            "name": "Marvel Avengers",
                            "reference": "39C668CD.ProjectScotchBaseGame_r7bfsmp40f67j!Game",
                            "type": "APPLICATION"
                        },
                        {
                            "name": "Minecraft Dungeons",
                            "reference": "Microsoft.LovikaX1_8wekyb3d8bbwe!AppMicrosoftLovikaX1Shipping",
                            "type": "APPLICATION"
                        },
                        {
                            "name": "Ori And The Will Of The Wisps",
                            "reference": "Microsoft.Patagonia_8wekyb3d8bbwe!OriAndTheWilloftheWisps",
                            "type": "APPLICATION"
                        },
                        {
                            "name": "Planet Coaster",
                            "reference": "FrontierDevelopmentsPlc.PlanetCoaster_ft442cafaz8hg!CPTConsole.App",
                            "type": "APPLICATION"
                        },
                        {
                            "name": "Super Animal Royale",
                            "reference": "MaximumGames.SuperAnimalRoyale_m3ge13txchggy!Game",
                            "type": "APPLICATION"
                        },
                        {
                            "name": "Amazon Prime Video",
                            "reference": "AmazonVideo.AmazonPrimeVideo_pwbj9vvecjh7j!App",
                            "type": "APPLICATION"
                        },
                        {
                            "name": "Apple TV+",
                            "reference": "AppleInc.AppleTV_nzyj5cx40ttqa!App",
                            "type": "APPLICATION"
                        },
                        {
                            "name": "Microsoft Store",
                            "reference": "Microsoft.storify_8wekyb3d8bbwe!App",
                            "type": "APPLICATION"
                        },
                        {
                            "name": "Spotify",
                            "reference": "SpotifyAB.SpotifyMusic-forXbox_zpdnekdrzrea0!App",
                            "type": "APPLICATION"
                        },
                        {
                            "name": "Twitch",
                            "reference": "TwitchInteractive.TwitchApp_7kd9w9e3c5jra!Twitch",
                            "type": "APPLICATION"
                        },
                        {
                            "name": "Youtube",
                            "reference": "GoogleInc.YouTube_yfg5n0ztvskxp!App",
                            "type": "APPLICATION"
                        },
                        {
                            "name": "Wireless Display",
                            "reference": "Microsoft.8624BDCB0667_8wekyb3d8bbwe!Microsoft.WirelessDisplay",
                            "type": "APPLICATION"
                        }
                    ]
                }
            ],
            "platform": "XboxTv"
        }

Please update to 1.7.10 fixed duplicate inputs

It didnt got fixed it still shows duplicated inputs and the debug mode now shows
[03/10/2021, 09:58:00] [XboxTv] Device: <IP_ADDRESS> Xbox Series X, connection error: {
  error: 'device_unavailable',
  message: 'Xbox is unavailable on <IP_ADDRESS>'
}

The xbox is connected to that ip and it have static ip i dont know why it shows that error

It didnt got fixed it still shows duplicated inputs and the debug mode now shows
[03/10/2021, 09:58:00] [XboxTv] Device: <IP_ADDRESS> Xbox Series X, connection error: {
  error: 'device_unavailable',
  message: 'Xbox is unavailable on <IP_ADDRESS>'
}

The xbox is connected to that ip and it have static ip i dont know why it shows that error
and this one too
[03/10/2021, 10:27:38] [XboxTv] Device: <IP_ADDRESS> Xbox Series X, getTokenRequest error: {
  status: 400,
  body: `{"error":"invalid_grant","error_description":"The provided value for the 'code' parameter is not valid.","correlation_id":"AnID"}`
}:

Please enable debug mode, restart Homebridge and get the complete log

It got fixed with an update, but now the xbox doesnt turn on from homebridge (apple homekit) (but it turns off and change between apps), the only log i get wen i click the button is
[30/10/2021, 12:47:53] [XboxTv] Device: <IP_ADDRESS> Xbox Series X, debug discoveryData: [].
[30/10/2021, 12:47:53] [XboxTv] Device: <IP_ADDRESS> Xbox Series X, debug update device state.
how can i fix it?

update to 1.8.4 and check

It got fixed, thanks!, but when I click to turn on it says no response on home app (the Xbox get turned on but home app says no response and shows a yellow circle with an exclamation mark)


Conda install of ruff still at version 0.280

Hello,
The conda forge available version of ruff is still at v0.280. The repository from which the data is generated seems to be https://github.com/conda-forge/ruff-feedstock  and the builds seem to have failed for both 0.281 and 0.282.
Unreleated but the links in the repo are not the current ones.
Home: https://github.com/charliermarsh/ruff
Development: https://github.com/charliermarsh/ruff

Thanks!

Thanks! I'm a bit confused because the PRs for those versions passed and were automerged: https://github.com/conda-forge/ruff-feedstock/pull/127. But then the builds on the merged commit failed, I guess? Due to upload issues? Hm.

For reference here's an upload log
  0%|          | 0.00/4.83M [00:00<?, ?B/s]
 31%|███       | 1.50M/4.83M [00:00<00:00, 15.7MB/s]
4.83MB [00:00, 19.7MB/s]
ERROR getting output validation information from the webservice: JSONDecodeError('Expecting value: line 1 column 1 (char 0)')
copy results:
{}
Failed to upload due to copy from staging to production channel failed. Trying again in<PHONE_NUMBER>8100586 seconds
Traceback (most recent call last):
  File "/opt/conda/bin/upload_package", line 11, in <module>
    sys.exit(upload_package())
  File "/opt/conda/lib/python3.10/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
  File "/opt/conda/lib/python3.10/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "/opt/conda/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/opt/conda/lib/python3.10/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "/opt/conda/lib/python3.10/site-packages/conda_forge_ci_setup/build_utils.py", line 232, in upload_package
    retry_upload_or_check(
  File "/opt/conda/lib/python3.10/site-packages/conda_forge_ci_setup/upload_or_check_non_existence.py", line 317, in retry_upload_or_check
    raise TimeoutError("Did not manage to upload package.  Failing.")
TimeoutError: Did not manage to upload package.  Failing.
##[error]Bash exited with code '1'.

source

I don't know how to "retry" the build.

We're resolving this with the conda-forge team. Thanks for the report!

This should be resolved (though it may take a second for everything to be available) please let us know if you have any problems!

Thanks for the quick response. I can confirm that the installer now shows v0.282 as the available version.


not display the space replacement character in string middle

VSCode Version:1.0.0
OS Version:OS X EI Capitan 10.11.4

Steps to Reproduce:

// エディターで空白文字を表示するかどうかを制御します

"editor.renderWhitespace": false,

// エディターで空白文字を表示するかどうかを制御します
"editor.renderWhitespace": true,

Save

Confirmation

first character space : replacement character is displayed
middle character space : replacement character does not appear
end character space : replacement character is displayed

Currently, the renderWhitespace option only renders leading and trailing whitespace.

This seems like a pretty big oversight.  Why would anyone want to show leading and trailing whitespace characters, but ignore those in the middle?
And what about CrLf pairs?  I use this feature in other editors to troubleshoot goofy composite files (e.g. Unix and DOS files concatenated together) or special cases where a parser wants mixed CrLf behaviour.  It would be nice if I could see the individual  and  characters.
Should this be a separate feature request?

I would also like to see all whitespace being rendered. That would be helpful when reading stuff like aligned JavaScript objects, PHP arrays, etc.
Eg:
let defaults = {
    type....: 'GET',
    timeout.: 500,
    secure..: true
}

$address = array(
    'street'.=> '5th Avenue',
    'city'...=> 'New York',
    'state'..=> 'NY'
);

Maybe, if it doesn't adds too much complexity, make it so single spaces are not rendered, to keep regular text and strings legible, and only render it if there are at least 2 SPACE characters or at least one other whitespace character, like TAB.
Another option would be to be able to configure VSCode to only render whitespace on the selected text. (I miss this feature since I ditched Sublime last year...)

This is already implemented via editor.renderWhitespace: "all" and editor.renderWhitespace: "boundary"


[RFC] teuthology: add email headers for suite/user

For advanced filtering/organization.
Fixes: https://tracker.ceph.com/issues/64839

I'm probably doing something bone-headed but can anyone explain why my tests for this PR all result in a dead job:
https://pulpito.ceph.com/pdonnell-2024-03-12_15:56:41-teuthology:nop-main-distro-default-smithi/
$ teuthology-suite -t email-qa-headers --machine-type smithi --email<EMAIL_ADDRESS>--suite teuthology:nop --ceph main --ceph-repo https://github.com/ceph/ceph.git --suite-repo https://github.com/ceph/ceph.git -n 100 -p 1 --force-priority --limit 1
2024-03-12 15:56:41,936.936 INFO:teuthology.suite:Using random seed=949
2024-03-12 15:56:41,937.937 INFO:teuthology.suite.run:kernel sha1: distro
2024-03-12 15:56:42,515.515 INFO:teuthology.suite.run:ceph sha1: f73472cd7e55597d97b9164e33be8a20ccadcd27
2024-03-12 15:56:42,515.515 INFO:teuthology.suite.run:skipping ceph package verification
2024-03-12 15:56:42,515.515 INFO:teuthology.suite.run:ceph branch: main f73472cd7e55597d97b9164e33be8a20ccadcd27
2024-03-12 15:56:42,576.576 INFO:teuthology.repo_utils:Fetching github.com_ceph_ceph_main from origin
2024-03-12 15:56:49,222.222 INFO:teuthology.suite.run:teuthology branch: email-qa-headers 3660aba7a8f4640836095d832fa38eb65e875815
2024-03-12 15:56:49,278.278 INFO:teuthology.suite.run:Suite teuthology:nop in /cephfs/home/pdonnell/src/github.com_ceph_ceph_main/qa/suites/teuthology/nop generated 2 jobs (not yet filtered or merged)
2024-03-12 15:56:49,441.441 INFO:teuthology.suite.util:Container build incomplete
2024-03-12 15:56:49,442.442 ERROR:teuthology.suite.run:Packages for os_type 'centos', flavor default and ceph hash 'f73472cd7e55597d97b9164e33be8a20ccadcd27' not found
2024-03-12 15:56:50,888.888 INFO:teuthology.suite.run:Stopped after 1 jobs due to --limit=1
2024-03-12 15:56:50,888.888 INFO:teuthology.suite.run:--newest supplied, backtracked 1 commits to d7353ad4342f698eae25524af998101e3c847e52
Job scheduled with name pdonnell-2024-03-12_15:56:41-teuthology:nop-main-distro-default-smithi and ID 7594597
2024-03-12 15:56:51,964.964 INFO:teuthology.suite.run:Scheduling teuthology:nop/{clusters/empty tasks/nop}
Job scheduled with name pdonnell-2024-03-12_15:56:41-teuthology:nop-main-distro-default-smithi and ID 7594598
2024-03-12 15:56:53,004.004 INFO:teuthology.suite.run:Suite teuthology:nop in /cephfs/home/pdonnell/src/github.com_ceph_ceph_main/qa/suites/teuthology/nop scheduled 1 jobs.
2024-03-12 15:56:53,004.004 INFO:teuthology.suite.run:1/2 jobs were filtered out.
2024-03-12 15:56:53,004.004 INFO:teuthology.suite.run:Scheduled 1 jobs in total.
Job scheduled with name pdonnell-2024-03-12_15:56:41-teuthology:nop-main-distro-default-smithi and ID 7594599
2024-03-12 15:56:53,993.993 INFO:teuthology.suite.run:Test results viewable at https://pulpito.ceph.com/pdonnell-2024-03-12_15:56:41-teuthology:nop-main-distro-default-smithi/

For the record, I'm not working on this anymore. I think someone was interested in finishing it? @zmc ?

ah I think what I was saying when this came up was that one approach could be querying paddles for the run, and getting the user and email values from the response body.
A possibly better approach could be to write out a small metadata file in the run's archive directory (as opposed to the job subdirs), called e.g. run.yml, that could contain some relevant information like user, suite, subset, etc. It would be appropriate to then add a run_info() method to ResultsSerializer.
Of course you'd want to check for the existence of the file before writing it, as writing multiple copies of the same content wouldn't be helpful.

ah I think what I was saying when this came up was that one approach could be querying paddles for the run, and getting the user and email values from the response body.
A possibly better approach could be to write out a small metadata file in the run's archive directory (as opposed to the job subdirs), called e.g. run.yml, that could contain some relevant information like user, suite, subset, etc. It would be appropriate to then add a run_info() method to ResultsSerializer.
Of course you'd want to check for the existence of the file before writing it, as writing multiple copies of the same content wouldn't be helpful.

My understanding during our standup discussion was that querying paddles would be preferable, no?

Only querying paddles must be done outside of the teuthology run, maybe in dispatcher/supervisor?


Add package.json enhancements

Removes empty dependencies key & adds funding link.
Relates to #225.

Btw, you could also add:
  "support": {
    "backing": "npm-funding"
  },

@o-alexandrov, I can't find any documentation for support or anything the object contains in the npm package.json documentation. So I left it out in the initial commits. If you can link the proper documentation for that key, I'll get right to adding it to this PR 😊 👍


sumneko_lua has been renamed

I've recently getting this error after updating all my plugins, and I think it's because of https://github.com/neovim/nvim-lspconfig/pull/2439
sumneko_lua is deprecated, use lua_ls instead. See :h deprecated
This function will be removed in lspconfig version 0.2.0
stack traceback:
        .../.local/share/nvim/lazy/nvim-lspconfig/lua/lspconfig.lua:36: in function '__index'
        ...ll/.local/share/nvim/lazy/lazy-lsp.nvim/lua/lazy-lsp.lua:23: in function 'setup'
        /Users/will/.config/nvim/lua/user/lsp.lua:127: in main chunk
        [C]: in function 'require'
        /Users/will/code/dotfiles/config/nvim/init.lua:5: in main chunk
Error detected while processing /Users/will/code/dotfiles/config/nvim/init.lua:
E5113: Error while calling lua chunk: ...ll/.local/share/nvim/lazy/lazy-lsp.nvim/lua/lazy-lsp.lua:26: attempt to index field 'document_config' (a nil value)
stack traceback:
        ...ll/.local/share/nvim/lazy/lazy-lsp.nvim/lua/lazy-lsp.lua:26: in function 'setup'
        /Users/will/.config/nvim/lua/user/lsp.lua:127: in main chunk
        [C]: in function 'require'
        /Users/will/code/dotfiles/config/nvim/init.lua:5: in main chunk

I poked a bit at just manually renaming it a PR but then saw all the update scripts and whatnot, and I wasn't sure if that would be better

Thanks, I renamed it in https://github.com/dundalek/lazy-lsp.nvim/commit/201b49c3a21b18b1d60e4481c8776d51d6a4a66c and tagged a release.

Thanks! Thanks for the plugin too, much easier than lsp installer / mason


Admin Cave Edit doesn't load main picture properly

When you add a picture to a cave using the Admin > Caves page the image appears to get uploaded, but when saving gets stuck in a loop.  Refreshing the page shows the record is not saved. main_picture column in the caves table remains NULL

Possible CORS issue:

This is a CORS issue, and occurs on the local dev env because APP_URL doesn't contain the port :3000
I've added this to the .env.example template to get around this


Warn on unused settings (or tasks) when they are marked secondary

problem

sbt will silently ignore unused settings.
Displaying warning for all unused tasks and setting will catch top level keys like clean.

scalacOptions in compile += "-X"

expectation

I can mark keys to be top level or secondary. (keyUsage in (ThisBuild, foo) := Usage.Secondary, probably tasks default to top level, and settings default to secondary.)
There's a buildLint command that warns on unused setting/task expressions with secondary keys provided by build.sbt.
The warning takes in account of the scope delegation rules.
Debug mode to display unused setting/task expressions provided by plugins, including the Defaults.

scalacOptions in compile += "-X"
^
[warning] Unused key: projA/*:compile::scalacOptions was not referenced by other settings/tasks.

notes
Many have brought up the idea of warning on unused. Here's previous thread on unused settings from 2011, which shows 58 unused settings.

Can you assign me this?

I have a PR here - https://github.com/sbt/sbt/pull/5153


#1: add support for horses in database initialization

Review Change

/paulo - can you please review this pull request?

/paulo - can you check now?


Not possible to receive payments from THNDR

I was trying OBW, receiving and sending payments with the Jiraiya HC, and notice that is impossible to receive the micropayments from thndr games... Its weird because its possible to receive them with SBW, WoS, Muun, so the problem is not at their end.
When i tap OBW on the game to claim the sats, OBW opens but then nothing happens...

What do you mean by "impossible"? Is that using lnurl-withdraw? Is it a lightning:... link that you click and it opens OBW?

Yes, i guess that thndr use lnurl-withdraw to pay the prizes... I click a button in the game and that brings the wallet app, then in the wallet you accept the payment, it works like that in sbw and wos, muun auto-accepts the payment. But in obw nothing happens..

Are you telling me Thundr has a dedicated button for OBW? Or is it a generic lnurl-withdraw link?
If it is a generic lnurl-withdraw link, can you send me one as an example?

Dont know if its a "dedicated" button for obw, it detects all LN wallets installed in the phone... it doesnt give you a link, but i guess its a lnurl link under the hood... This is what i get in sbw, and wos, but not in obw

I can't reproduce that. How do I download that Thundr thing to try? I tried with ln.cash and this was the result:
https://user-images.githubusercontent.com/1653275/197391969-c42bbf04-f266-4c52-bd3a-e01eaa129c7b.mp4
Or maybe you can try to hold your pointer over it and and copy the lnurl-withdraw link you get from Thundr and send it to me so I can take a look? I don't know if that is possible but it's worth a try.

You can install "Club Bitcoin" from the Play Store, play a game, win some sats and try to withdraw them with OBW... Theres no way to copy the lnurl, or i dont know how xD

But sir, I don't have Play Store!

I've installed this crap, played a game, it showed me a terribly annoying ad and didn't give me any sats. What are the next steps?

Did you get some purple tickets? If you have the tickets you will get sats in an hour...

I have 8 purple tickets, call me a Solitaire genius.

@jackeveritt

The game will open a wallet with lightning://.  Perhaps it is opening the wallet ok, but the  part is not read for some reason? I can also generate you a LNURL if you want @fiatjaf

Maybe thndr is not paying to wallets that were not installed through the play store? Does that make sense? The game opens OBW ok, but then the wallet does nothing at all...

@fiatjaf I dm'd some LNURLs on telegram if they are helpful

Maybe thndr is not paying to wallets that were not installed through the play store? Does that make sense? The game opens OBW ok, but then the wallet does nothing at all...

Supposed to work on any app that supports opening LNURL withdraws via lightning://  should not matter about play store

I get this error on the fast-withdraw LNURL:
java.lang.NoSuchMethodError: No virtual method flip()Ljava/nio/ByteBuffer; in class Ljava/nio/ByteBuffer; or its super classes (declaration of 'java.nio.ByteBuffer' appears in /system/framework/core-oj.jar)
 at immortan.utils.uri.UriCodec.flushDecodingByteAccumulator(UriCodec.java:150)
 at immortan.utils.uri.UriCodec.appendDecoded(UriCodec.java:136)
 at immortan.utils.uri.UriCodec.decode(UriCodec.java:71)
 at immortan.utils.uri.Uri.getQueryParameter(Uri.java:1593)
 at immortan.utils.LNUrl.$anonfun$fastWithdrawAttempt$1(LNUrl.scala:110)
 at immortan.utils.-$$Lambda$GjfGyjTqCJra4T455mXl-oBPNzY.apply(Unknown Source:2)
 at scala.util.Try$.apply(Try.scala:210)
 at immortan.utils.LNUrl.fastWithdrawAttempt$lzycompute(LNUrl.scala:107)
 at immortan.utils.LNUrl.fastWithdrawAttempt(LNUrl.scala:107)
 at wtf.nbd.obw.HubActivity$$anonfun$checkExternalData$1.applyOrElse(HubActivity.scala:2350)
 at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:35)
 at immortan.utils.InputParser$.checkAndMaybeErase(InputParser.scala:25)
 at wtf.nbd.obw.HubActivity.checkExternalData(HubActivity.scala:2122)
 at wtf.nbd.obw.HubActivity.$anonfun$bringSendOptions$6(HubActivity.scala:2676)
 at wtf.nbd.obw.HubActivity.$anonfun$bringSendOptions$6$adapted(HubActivity.scala:2673)
 at wtf.nbd.obw.-$$Lambda$fhsmLQJPw2y3G5LYK67g-OfIWkQ.apply(Unknown Source:4)
 at wtf.nbd.obw.BaseActivity.$anonfun$runFutureProcessOnUI$2(BaseActivity.scala:273)
 at wtf.nbd.obw.-$$Lambda$7sLNsOLl1sATbfGX3ztJ04hnydE.apply$mcV$sp(Unknown Source:4)
 at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
 at wtf.nbd.obw.BaseActivity$$anon$6.run(BaseActivity.scala:290)
 at android.os.Handler.handleCallback(Handler.java:790)
 at android.os.Handler.dispatchMessage(Handler.java:99)
 at android.os.Looper.loop(Looper.java:164)
 at android.app.ActivityThread.main(ActivityThread.java:6626)
 at java.lang.reflect.Method.invoke(Native Method)
 at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:811)

Fixed at https://github.com/nbd-wtf/immortan/commit/63f76b2c4e62663d4ddea88261bd6d6c30f9a57c.


divvunspell having problems with Cyrillic capital letters (it seems)

To repeat:
uit-mac-443 lang-mns (main)$ e Эспоо|humnsNorm
Эспоо	Эспоо+N+Prop+Sem/Plc+Sg+Nom	0,000000

uit-mac-443 lang-mns (main)$ e Эспоо|divvunspell suggest -a tools/spellcheckers/mns.zhfst
Reading from stdin...
Input: Эспоо		[INCORRECT]

uit-mac-443 lang-mns (main)$ e Эспоо|hfst-ospell -S -n 5 tools/spellcheckers/mns.zhfst
"Эспоо" is in the lexicon...

The form Эспоо is in the normative fst, and is recognised by hfst-ospell, but not by divvunspell, even though both spellers access the same freshly compiled version of the speller, mns.zhfst.
The lemma (Эспоо) is from the shared-urj-Cyrl, but that should not be relevant (it is in the resulting fst). The editdist.default.txt file declares the е/э pair (and, on a side note, also the composed long э̄). Capital letters are not declared explicitly:
uit-mac-443 lang-mns (main)$ grep э tools/spellcheckers/editdist.default.txt
э
э̄
е	э	2
э	е	2

More examples:
Ленинградский
Ленинградский	Ленинградский+N+Prop+Sem/Plc+Sg+Nom	0,000000

Лениӈрадский
Лениӈрадский	Лениӈрадский+?	inf

uit-mac-443 lang-mns (main)$ e Ленинградский|hfst-ospell -S -n 5 tools/spellcheckers/mns.zhfst
"Ленинградский" is in the lexicon...
uit-mac-443 lang-mns (main)$ e Ленинградский|divvunspell suggest -a tools/spellcheckers/mns.zhfst
Reading from stdin...
Input: Ленинградский		[INCORRECT]

Thus, hfst-lookup and hfst-ospell behave as expected, divvunspell does not (it does not recognise the correct form, and thus also does not suggest it as a correction for the incorrect form.
More examples behaving in the same way:
Приобье, Сарымо-Русскинское, Сӯкыръя, Тӯрват, хо̄тпан, ва̄та̄л-хащта̄л, вертолёт, занятиен, школа, колхозыт, коньяк, ляпат
As can be seen, the examples are both plain small-letter Russian Cyrillics as well as capital letters and composed letters. These failed forms constitute appr. 5% of a dataset of 607 word pairs.

Exactly the same issue has been commented upon earlier, in #19 , some years ago. The problems (capital letters and composed letters) seem unrelated, but taken together, they lead to spellers for Cyrillic-based languages and languages with composed letters (a large part of our languages) being dysfunctional. I thus hope the issue can get some attention.

This is an old problem that was probably patched over in hfst-ospell after it was used as a a source for divvunspell; if errmodel doesn't know the alphabets needed for lexicon it gets confused c.f. https://github.com/giellalt/lang-mns/commit/37e7724f8e45a9c22e214dee65c32d326f6a5d6a

But how come? Why doesn't the error model know the alphatet needed (i.e., I take you to mean: the capital letters?). There is nothing magic with cyrillic letters per se, I thought, but evidently it is. Here is the situation:

sme: editdistance.default.regex: Latin. Contains no capital letters, only small. Still names (Trond) are recognised
mhr: editdistance.default.txt: Cyrillic. contains capital and small letters. Names (Ленинград) are recognised
mns: editdistance.default.txt: Cyrillic. contains no capital letters. Names (Ленинград) are NOT recognised

Looking hard at this, I adjusted mns in line with mns, and now it works. I thus close the bug.
It still is a mystery how sme works without having declared capital letters. Admittedly, it uses .regex and not .txt, but I do not see how that should affect the outcome.
In any case, although I invite anyone puzzled by the remaining incongruence to delve into it, I now have a working divvunspell for Cyrillic-based languages, and close the bug.

But how come? Why doesn't the error model know the alphatet needed (i.e., I take you to mean: the capital letters?). There is nothing magic with cyrillic letters per se, I thought, but evidently it is. Here is the situation:
* sme: editdistance.default.regex: Latin. Contains no capital letters, only small. Still names (Trond) are recognised

There's no editdistance.default.regex in https://github.com/giellalt/lang-sme/tree/main/tools/spellcheckers, editdistance.default-new.regex has uppercasing rules. editdist.default-old.txt also has upper cases. There's usually one part or other in whole error model that happens to have upper case letters (it can be even only at strings things or whatever).
I actually wrote a hfst-tool hfst-check-alpha few years ago to tackle this problem, it could be automated a bit even though it started as a debug tool.

But how come? Why doesn't the error model know the alphatet needed (i.e., I take you to mean: the capital letters?).

We don't deduce the alphabet from the lexical FST automatically. We did so in an early version of the speller infra, but then we instead needed to list all the symbols we did NOT want as part of the error model alphabet. That turned out to be even more confusing and counter-intuitive, so what we have now is a system where you need to explicitly (and in some cases implicitly) list all symbols/letters you want to include in the error model alphabet.
By default I always suggest to NOT include capital letters. Including them leads to a much bigger error model, and similarly slower speller. At the same time we know that capital letters are almost only found in first position, and letters in that position are (generally) rarely wrong. There is also built-in automatic processing of upper-lower case shifting in the speller code, so that it is only the lexical case that needs consideration.
All of this is to say that actual need for including upper-case letters in the error model alphabet is usually very small, so small that it is typically not worth the costs (very much bigger error model, and much slower speller, cf above).
That is, think twice before adding upper case letters, and if you need to, consider whether you need all the upper case letters, or only a select few and known problem letters, as in your example.

Well.
Before adding the capital letters the speller did not recognise words written with capital letters (cf. the "to repeat" in my first posting. After adding the capital letters, the speller did recognise such words.
Some letters never occur word-initially, but they do occur in words written with capital letters only. I am thus hesitant to follow your advice here.

Before adding the capital letters the speller did not recognise words written with capital letters (cf. the "to repeat" in my first posting. After adding the capital letters, the speller did recognise such words.

That does not make any sense. Adding letters to the error model should have no consequence for whether a word is accepted or not by the speller, since that is done by the acceptor only. The error model takes no part in this process (and should not).
If you can come up with a reproducible example demonstrating this behaviour, please add it here (or in a new issue) — that is definitely a serious bug, and should be fixed ASAP. But I don't believe it before I see it.

Some letters never occur word-initially, but they do occur in words written with capital letters only. I am thus hesitant to follow your advice here.

I wrote in my comment:

There is also built-in automatic processing of upper-lower case shifting in the speller code, so that it is only the lexical case that needs consideration.

This includes initial upper-casing and all-caps. That is, from an FST point of view, word and WORD are exactly the same in divvunspell (as long as word is defined in the FST), because WORD (as well as Word) are changed to word before being flagged as misspellings, and if word is then ok, both Word and WORD are also ok.
When generating suggestions, all of word, Word and WORD are used as input to the error model.

Not too exciting here, just repeating myself, but hte reversed order. I first take the git version of the mns speller, and run the word for Leningrad (capital cyrillic L) through it. It is accepted by divvunspell:
uit-mac-443 lang-mns (main)$ e Ленинград| divvunspell suggest -a tools/spellcheckers/mns.zhfst
Reading from stdin...
Input: Ленинград		[CORRECT]

I then remove lines 46 through 89 (= all the capital letters) from the file editdist.default.txt, and save the file (I do not check it in, but it can be repeated as just described):

uit-mac-443 lang-mns (main)$ see tools/spellcheckers/editdist.default.txt
uit-mac-443 lang-mns (main)$ make -j

*** Compiling mns - Mansi. ***

I then repeat the same test, with the following result:
uit-mac-443 lang-mns (main)$ e Ленинград| divvunspell suggest -a tools/spellcheckers/mns.zhfst
Reading from stdin...
Input: Ленинград		[INCORRECT]

The only difference is thus the removal of the capital letters from editdistance.default.txt.
The word is recognised by the analyser:
uit-mac-443 lang-mns (main)$ e Ленинград| humns
Ленинград	Ленинград+N+Prop+Sem/Plc+Sg+Nom	0,000000

There are subtle differences, though:

cyrillic-based mns: Propernoun works, common word with initial capital or all capital does not
latin-based sma: Propernoun works, common word with initial capital works, word with all capital does not

Whether this is of any help I do not know.

I think Trond is right here, divvunspell fails when the, e.g. uppercase, alphabet does not exist in the alphabet of the whole error model.
I have been wondering why there is an extra case handling and extra edit distance re-weighting step in divvunspell (vs hfst-ospell) that seemingly reduplicates what error model should be doing and I think now that it might have been implemented to partially workaround this problem..


Fix DAG import error

Signed-off-by: Fredrik Bakken<EMAIL_ADDRESS>PR that fixes issues described in #34.

Hi @FredrikBakken, thanks for your contribution! Happy to have you on-board!
We will comment on the pr next week :)

Hi @FredrikBakken !
Thanks for this PR, it's much appreciated.  I am by no means expert in Airflow, but this confuses me (and is probably why we have this assumption in the code):

A task must include or inherit the arguments task_id and owner, otherwise Airflow will raise an exception.

Can you share some context from your calling code, please?  Also, would it be acceptable to you to raise an error if task_id is not set when creating these tasks?

Hi again @FredrikBakken,
Following #36 and its fix in #37, it turns out that currently our CI fails on this PR.  Could you please rebase on top of it so we can test?  (I cannot do it in practice because it's on a fork -- so if you cannot I shall merely do so manually...).

@FredrikBakken: once rebased (#38), this passes. 🎇
Gentle reminder: The blocker to merging is this comment regarding its necessity in Airflow DAGs.  I understand from the docs close to the exact opposite -- that every task must have a task_id.  If you could point me at using code or an example from other tasks in other providers, that would be very helpful!
Thanks again :-)

Closing due to lack of traction.  @FredrikBakken thanks for your work on this!  Of course e will happily reopen when you have more time for this.

@arielshaqed, sorry for the late response to this PR. It has been a couple of busy months and I have not had time to keep up to date on everything. I am now back to using LakeFS (with Airflow) on some local tests and have re-encountered this issue again on airflow-provider-lakefs==0.46.1. This is how the error message looks like in Airflow:

My Airflow task looks as follows:
task_fetch_dataset = LakeFSUploadOperator(
    task_id='upload_file',
    repo=default_args.get('repo_bronze'),
    branch=f'ssb_dataset_{date}',
    path='dataset',
    content=NamedStringIO(
        content="",
        name='dataset.json'))

I agree that task_id should exist for all task operators, but I suspect that these operators inherit this parameter from the BaseOperator. This is e.g. defined here for LakeFSUploadOperator: https://github.com/treeverse/airflow-provider-lakeFS/blob/main/lakefs_provider/operators/upload_operator.py#LL9C42-L9C42
I also took a look at the official BashOperator from Airflow, which does not define task_id directly: https://github.com/apache/airflow/blob/main/airflow/operators/bash.py#L138-L148. Instead, it seems like this operator inherits this value from the BaseOperator: https://github.com/apache/airflow/blob/main/airflow/models/baseoperator.py#L212
Let me know if there are anything you want me to change on the PR 🤝
Also, Airflow integration documentation looks to be out-dated with the operator names: https://docs.lakefs.io/integrations/airflow.html

Sorry for not addressing this sooner -- I failed to see the comment, because I don't regularly inspect closed PRs.  Which is particularly unpleasant given that I closed the PR.
I went over your explanations and now understand better.  I will try to rerun CI on this or on a copy, and then see if we can get this fix in.

No worries, @arielshaqed ! Great to hear, and please let me know if there are any things I can do on my side.

@arielshaqed, I've updated the title of this PR to better define the scope of what it solves. Using the operators defined in the #34 table works well in single task mode, but once the tasks are placed within a TaskGroup the error will be displayed. This PR solves this by removing self.task_id = kwargs.get("task_id") from the operators that throws error messages.

@arielshaqed, should I add some provider tests to this PR to confirm that the following operators, LakeFSCommitOperator, LakeFSGetCommitOperator, LakeFSMergeOperator, and LakeFSUploadOperator - now work as expected inside of TaskGroups?

@arielshaqed, should I add some provider tests to this PR to confirm that the following operators, LakeFSCommitOperator, LakeFSGetCommitOperator, LakeFSMergeOperator, and LakeFSUploadOperator - now work as expected inside of TaskGroups?

Sorry.  Opened #77 for this, I've blocked this PR for too long already.