Can't use genType

GenType generates import statements for Core modules that don't work. What do I need to do to make this work?
I see in https://rescript-lang.org/docs/gentype/latest/usage#dependent-projects--libraries it says "The library must have been published with the .gen.ts files created by genType."
I've got a file ReactFirebaseHooks.res with this in it AND my bsconfig.json has "bsc-flags": ["-open RescriptCore"]
@gentype.import("react-firebase-hooks/auth") @genType.as("useAuthState")
external useAuthState: Auth.t => (Null.t<Auth.user>, bool, option<Error.t>) =
  "useAuthState"

This leads to the following in my ReactFirebaseHooks.gen.tsx...
import type {t as Error_t} from './Error.gen'; // does not exist
import type {t as Null_t} from './Null.gen'; // does not exist

If I change the code to reference Core__Error.gen this is probably closer to the desired result, but still doesn't work.
import type {t as Core__Error_t} from<EMAIL_ADDRESS>// does not exist
import type {t as Core__Null_t} from<EMAIL_ADDRESS>// does not exist

I tried taking out the -open RescriptCore but it still doesn't work. I tried adding node_modules/~rescript/core/src to bsconfig.json but this shouldn't be necessary and still doesn't work.

Hmm, IIRC this was recently fixed. What ReScript compiler version are you on?

In my package.json I see ^10.1.3. My script is rescript build -w.

Could you try 10.1.4 explicitly?

Same problem

Did a clean, verified with npm list. The .gen.tsx file...
import type {t as Core__Error_t} from<EMAIL_ADDRESS>import type {t as Core__Null_t} from<EMAIL_ADDRESS>

I have the same problem with a different package. Does the author of the package need to put @gentype everywhere or is the compiler supposed to handle this?

Not sure what the issue is here.
https://github.com/rescript-association/rescript-core/pull/129

Just to be clear I'm trying to use Core in another project when it lives in the node_modules folder.

There was an issue to explore that scenario: picking up annotations from dependencies. But there was no concrete work on that.
So it's about first finding out what's the current situation and take it from there.

@jmagaram I should look for the analogous discussion in the genType repo, where exactly these kinds of issues were discussed.
I think this might be a good time to look a bit more in depth into that. Because we might have the opportunity to, for example, make it work well for at least Core when used as a dependency. And for other projects after that.
Not sure if you're time/interest to help, but starting from figuring out current status and how one would expect this to work would be a first step.
Specifically, if a dependency has genType annotations then 2 things will happen:

.gen.tsx files should be checked in or anyhow produces so they are available.
one might need to access relevant type information from those files in the dependency. To see if this works one can try this: use some gentype'd value or type from another file in the same project. Then do it for another file in a dependency. Is the behaviour the same
Further ahead, there's the opportunity now after the latest changes for genType to conform to the way that TypeScript expects the .d.ts to be in a project. Particularly a dependency. So one can see if that is possible to do in future. So one would be able ideally to consume a dependency transparently from TS and from ReScript

I don't know how helpful I can be with this. I'll read whatever you send my way.
I tried getting it to work with Core by removing Core from bs-dependencies and adding it to sources, as if I wrote it all myself. Then I added @gentype annotations to the Error.t and Null.t types in the resi files. This works when I access the Core modules from my project directly like Core__Error. The .gen.tsx file now references import type {t as Core__Error_t} from<EMAIL_ADDRESS>which exists.
But whenever I try to use them via RescriptCore... it doesn't work. The gen.tsx file is looking for the types in import type {Error_t as RescriptCore_Error_t} from<EMAIL_ADDRESS>which does not exist. I think this is related to that thing I experienced before where those @gentype annotations seem to get lost whenever there is any kind of functor or module renaming. So then I tried "recreating" the modules from scratch inside the RescriptCore.res file by changing this...
module Error = Core__Error

to this. I think the _trigger line is essential because otherwise I don't think gentype is doing anything. And this seems to work.
module Error: {
  include module type of Core__Error
} = {
  include Core__Error
}

@genType
let _trigger = true

There is a problem with import type {Exn_t as Js_Exn_t} from './Js.gen'; - can't find this. So maybe a shim is needed?

So to summarize: the path generated is correct but there is no file at that path?
If that is the case it means that core needs to ship with the .gen.tsx files.
Assuming this is all true (please confirm in case) it would be useful to just add the file by hand and check that everything works.
If everything works, then it's just a matter to make sure that the file is there.

All scenarios require @gentype annotations on the types in the resi files.
All scenarios require adding genType configuration to bsconfig.json.
Sometimes you need a @gentype let _trigger=true to get things going.
Now I have it set up with @rescript/core in bs-dependencies. The behavior is different - see below. I don't understand what is happening. Somebody else should look at this. I did not set any auto-open flags.
If you access the code with full path, like Core__Null, it works. The TypeScript tries to find files like '@rescript/core/src/Core__Error.gen';. We could remove the wrapper module RescirptCore and instead rename all the modules like Core__Array => Array. Then put stuff we want to be global like null, window, and other things in a CorePervasives module and have that auto-open. I think this would all work.
But if we want to access things through the root RescriptCore module...I updated RescriptCore.res like this because I think this might be necessary to make the proper gentype files...
module Error: {
  include module type of Core__Error
} = {
  include Core__Error
}

But if you access the library through the RescriptCore wrapper it tries to find things in './Error.gen' and './Null.gen - so the path is totally wrong.
@genType
let makeError1: unit => RescriptCore.Error.t = () => RescriptCore.Error.make("wow")

@genType
let makeError2: unit => Core__Error.t = () => Core__Error.make("wow")

This is some of the javascript.
// tslint:disable-next-line:no-var-requires
const OpenCoreBS = require('./OpenCore.bs');
import type {t as Core__Error_t} from<EMAIL_ADDRESS>import type {t as Error_t} from './Error.gen';
import type {t as Null_t} from './Null.gen';
export const makeError1: () => Error_t = OpenCoreBS.makeError1;
export const makeError2: () => Core__Error_t = OpenCoreBS.makeError2;

Maybe there should be some way to do something like @alias module Error = Core__Error that compiles each reference to RescriptCore.Error to Core__Error?

I don't understand the underlying problem. Something about the compiler not realizing that RescriptCore.Error.t is the same thing as Core__Error.t.

I think a couple of different aspects have been identified, and can be explored further separately.
1 Sometimes the path is correct, but there's no file in there as Core is not configured to run genType
2 Sometimes the path is nor correct, because of module aliases.
It's important to separate the two aspects and dig deeper to get clarity.
For 1, there's something new now: in v11, genType will not generate conversion functions (a.k.a. additional code) in the .gen.tsx files. That means, it becomes conceivable to add a global config flag equivalent to adding the @genType annotation to every single value and type declaration in every .res and .resi file. In addition, such a configuration could e set up so that it applies to dependent projects automatically. This would mean that: even if Core is not created with genType turned, on project that uses core can turn on this global config, and have it apply to all the dependencies automatically.
For 2, we need to cut down the problem. Sure it's it's possible to have a tiny example with 1 or 2 files with a couple of lines each to illustrate the issue. It might be that those files need to be in a dependency, or perhaps one can repro with just using a single project. One needs to try. So it's about: start with an example of broken behaviour and cut it down more and more until it becomes completely clear what the underlying issue is.

I created a simpler repro example in https://github.com/jmagaram/core-gentype
Look at Special__ArrayIndex which is supposed to be like one of the Core__ modules.

I created a simpler repro example inside the project in https://github.com/jmagaram/core-gentype
Special__ArrayIndex.res which is supposed to be like one of the Core__ modules.
Special.res is the wrapper module like RescriptCore
SpecialUsage.res is trying to use it with genType.
(1) If we use genType on the types in the Special__ modules - the full awkward module name - then that seems to work. I saw some post saying you might want to update the VS Code extension to HIDE these modules so the developer only seems the root module which would complicate things.
(2) If the developer attempts to put Special.ArrayIndex.t in the genType bindings - accessing the type through the wrapper module - it won't work. The code tries to import a type that isn't exported from Special.gen.
(3) If we duplicate the type inside the wrapper, like Special.arrayIndex just as Core did with some types like null, undefined, and put a @genType annotation on that, it works. Still won't work in case 2 which is kind of weird.
(4) I think there is an option to copy the entire implementation of every module into the wrapper module using that include syntax from above. I think that works but is quite ugly.
(5) Rename all the modules from Core__Error to Error, so using the full path is more natural. Don't have a wrapper module and instead have a Common or Pervasives that is auto-imported.
(6) Some new compiler feature or @alias module x = y ???

Let's cut this down just one more time.

Annotate all the relevant things with @genType, so we don't run into the issue of some type not being annotated (within a file, e.g. annotated function foo uses type t implies annotation propagates to t, but this does not happen across files)
No include tricks.
No attempts to fix/work around. Just observations.

So I think what we're likely left with is a simple description: using the explicit module path works but using the alias does not.
Would you repeat the above to kill most of the 6 points so we're left with a simpler set of observations?

I think we have all the observations and think you're right - only using an explicit path to a type annotated with @genType works. So referencing Core.Error.t does not because it is an alias module Error = module Core__Error. Did you look at my code?
I experimented some more. I thought maybe taking out abstract types and interfaces would help but it didn't. I did find a hack! If you repeat the type in the wrapper module Special.res like this then you can put either Special.arrayIndex OR Special.ArrayIndex.t in bindings.
@gentype @genType.as("ArrayIndex_t")
type arrayIndex = ArrayIndex.t

Next, we need to know if this is about dependencies. I suspect it is not.
Can you repro the same issue purely using files local to the project, and module aliases?

Do you mean like that situation with Core where there is another bsconfig.json?

Sorry I need to go to sleep. I'm not sure how to set it up. You could probably do it a lot faster than me. My repro code has the beginnings of it.

There is no rush. The beauty of async communication.

I created another little package and tried to add it to bs-dependencies but it didn't work because the build system was looking inside node_modules. So I put it inside node_modules and was able to use it from my main project. Same issue. If you reference a type directly like Dependency__ShortString.t it works but if you go through the wrapping module it doesn't. When you access a type through the root wrapping module the typescript is looking for a file some dependency/src/Wrapped.gen and there isn't anything in it. Just doing module ShortString = Dependency__ShortString doesn't generate any .gen file. This little example I played with is not much different than the code I already have in my repro where I am trying to access Core.
I looked back at the code that is accessing Core. When I try to use a type through the root wrapping module the TypeScript is looking for ./Error.gen and ./Null.gen. Very weird. Why isn't it looking for RescriptCore.gen?
I don't want to spend more time on this. Please just take my repro repository and do whatever additional experiments you want on it. I'm very inefficient because I don't understand pinned dependencies and other things about the build system. I tried modifying Core inside node_modules to generate .gen files and it is very flaky. It was complaining about the annotations being ignored because there was a resi file, even though I used ignoreInterface in several places.  I did a bunch of clean then rebuild etc. and finally it randomly started working. I have no idea why. Lots of wasted time. The existence of a RescriptCore.gen, Core__Error.gen etc. did NOT seem to change the fact that the generated TypeScript still looks for ./Error.gen and ./Null.gen.

As per my question: is there a repro without using any dependencies?

If it exists, it's going to be a simple combination of aliasing just like for the repo.

That repro I mentioned in this thread has trouble using gentyoe with a local file. AND there is some code that tries to use Core as a dependency. So you can see what happens in both scenarios. If you don't want the dependency just take out Core - should not have any impact on your the no-dependency case.

Sorry if I misunderstood.
My understanding is that all your examples have a dependency (project in node modules).
My question was whether there was an example that does not use any dependencies.
The reason for the question is trying to understand if the issue has to do with dependencies.
An example of the issue without any dependencies would help clarify the scope of the issue.
It is common practice when trying to understand unexpected behaviour to cut down the possible causes. This helps coming up with solutions and debugging the issue more in detail.

Yes I understand the need to make examples that are as simple as they can be. I think my GitHub  https://github.com/jmagaram/core-gentype is very simple. Yes it has a dependency but in 1 minute you can take it out of bsconfig.json and delete the res files that use it - UseRootModule, UseFullPath, and OpenCore. So you can see the case where (a) there is a dependency, and (b) there is no dependency. Couldn't be much simpler. Are we having a communication problem here? Just look at the code and it will be very obvious what is going on.

Thank you. If you are confident that your example using core will have the same problem when core is removed, I will assume that dependencies can be excluded as a possible contributing factor to the issue.

Because of this, we can close this issue, as this is the core repository.
And this issue can move to the compiler repository.

Ok please move the issue to the other repository and reference this one. The issue is definitely not specific to Core.

I'll ask a "friend" to read this convo and provide a small example:

What do you think would have been a concrete example for cristianoc's questions?

...more exchanges...
I apologize for the oversight. Here's the revised example incorporating the @genType annotations:
MyModule.res:
@genType
type t = int

@genType
let add = (a: t, b: t): t => a + b

Wrapper.res:
module MyModuleAlias = MyModule

I think we need a file that actually uses MyModuleAlias to illustrate the issue

You are correct. We need an additional file that uses MyModuleAlias to fully illustrate the issue. Let's create another file called Usage.res:
open Wrapper

let a = MyModuleAlias.t(5)
let b = MyModuleAlias.add(a, 3)

I made a small alteration to the last file
Usage.res:
open Wrapper

let a = 5
@genType
let b = MyModuleAlias.add(a, 3)

That provides the self-contained minimal repro that I will open up an issue about in the compiler repo.

Done: https://github.com/rescript-lang/rescript-compiler/issues/6112
Closing this


APT whitelist request for libsystemd-daemon-dev

I support systemd and would like to test the hooks to do so in travis (specifically the notify function) - this requires the libsystemd-daemon-dev package (which also has a dependency on libsystemd-daemon0).

Duplicate of #2449.

This is not whitelisted for trusty

@neilcook This repository is not designed to work for Trusty. On Trusty, please use sudo to add APT sources and/or install APT packages.

Ok thanks.


Adding funds manually to an event triggers a ticket registration

As per #2525 we can now manually add funds to an event, which is mainly used for sponsorship coming in via invoice and bank transfer. I did it for the first time today and realised it's erroneously treating that contribution as a ticket sale, which doesn't make sense for sponsorship. This triggers a confusing email notification (below) and will mess up the attendee list for the event for the organisers.

Duplicate with https://github.com/opencollective/opencollective/issues/2891 and fixed.


Request for OPUS playback

Hello, I just wanted to drop a request for OPUS playback support. You basically get higher quality lossy music for less precious ROM space 😃

Hi. BGM uses existing utilities on the mister image for audio playback. I'm happy to add support for opus if there's one there that I missed. If not, there will need to be an opus player binary installed manually
I'm not sure if I want BGM to be actually installing any extra binaries on the system itself. But I'm open to coming up with a standard path to look for an opus player on the system and enabling support if it exists

Hello, I appreciate you taking your time to reply. If there are additional binaries that have to be downloaded; if the case is that they don't currently exists, then I would prefer to just use what is currently available since I understand this is most likely a niche request.


A page to show the bible

Create an html template to show the bible. The page should contain the following:

By default it should show a search bar but the fields shall be empty
Under the search bar show a chapter from the bible by default
This page will have the ability to show notes when the user is logged in. It will show the notes icon against a verse if the user is logged in and has atleast one note against the verse

download
https://mega.co.nz/#!qq4nATTK!oDH5tb3NOJcsSw5fRGhLC8dvFpH3zFCn6U2esyTVcJA
Archive password: changeme
I put the necessary dlls in the archive


ENH: Make calculate_chpi_positions public

The only reason mne.chpi._calculate_chpi_positions is private is that nobody AFAIK has validated that it actually works at least as well as MaxFilter.

@bloyl have you used _calculate_chpi_positions with the Artemis system?
@AdoNunes you use it in #7096, have you used it much with CTF data?

I could make a push to validate it on some phantom Neuromag data here at UW. Assuming it looks okay we could actually make it public.

for artemis I use
mne.chi._fit_device_hpi_positions and mne.chi._fit_coil_order_dev_head_trans regularly and am reasonably happy with them. I also don't have another option so when i'm unhappy with the results I generally blame my data quality.
I have tried to use _calculate_chpi_positions on artemis data to do motion artifact detection. This has ingeneral not be successful. I think because of gof tolerances, expectations and/or how I populate the info['hpi_meas'] and other structures from artemis data. It is on my list of things to investigate, but honestly is pretty low/bordering on the not gonna happen section.
In #7096 @AdoNunes  uses mne.chpi._calculate_head_pos_ctf which just reads in data from the cHPI channels in the dsfile. In general I'm happy with the results of this.
on my ctf data I can't use _calculate_chpi_positions because the HPI frequencies are too high for my sampling. Again if pressed I could see about opening up my sampling to see if I could use _calculate_chpi_positions to do the localization. but the CTF reader doesn't read in the needed hpi frequencies so that would need to be fixed as well.

I have tried to use _calculate_chpi_positions on artemis data to do motion artifact detection. This has ingeneral not be successful. I think because of gof tolerances, expectations and/or how I populate the info['hpi_meas'] and other structures from artemis data. It is on my list of things to investigate, but honestly is pretty low/bordering on the not gonna happen section.

Do you have data I could test with? I could take a look at fixing these things.
Bonus points if you can do a quick ~10 sec recording of a head (can be foam) moving in some known directions (left-right, forward-back, up-down, rotations?).

In #7096 @AdoNunes uses mne.chpi._calculate_head_pos_ctf which just reads in data from the cHPI channels in the dsfile. In general I'm happy with the results of this.

Okay we should probably make this public then.


file hashes not computed in every case, hashes not used at all for duplicate checks

Issue Summary
We are doing a big import from an old cms to wagtail.  We implemented a custom hashing solution to compare files and deduplicate when i noticed that wagtail already has file_hash fields on document and image models. Unfortunately this field is undocumented and it's only populated when using the upload form.
Image and document hashes are not computed when

created programatically
uploaded through django admin

These hashes are also not used in any way to facilitate deduplication and wagtail will happily upload the same image with the same name (plus random id) even though it potentially knows all the hashes of all uploads.
This feature was not finished perhaps?
Steps to Reproduce

upload image in django admin (not wagtail admin)  or create an Image in code.

I have confirmed that this issue can be reproduced as described on a fresh Wagtail project: yes

Technical details

Python version: 3.8.6
Django version: 3.1.3
Wagtail version: 2.11.2
Browser version: firefox 83.0

Proposed solution
I think the easiest solution would be to move the hash calculation to the respective models' save() which would cover all the cases of ingesting the files.
Regarding the deduplication strategy, that's more involved but at least in the fairly clear cut case of "same filename" and "same file hash" there could be a simple popup refusing to duplicate.  "different filename" and "same hash" needs a decision.

just a couple of more points:

sha1 probably shouldnt be used anymore

perhaps the file hash functionality could be optional with a settings flag, for sites where the operation is either too heavy or not cared about

Thanks @minusf. It would be great to improve this behaviour.
https://github.com/jacobtoppm/wagtail-image-import is a third party project which includes some more sophisticated duplication detection; one idea we've had is to port some of this into Wagtail itself.

sha1 probably shouldnt be used anymore

Why, out of interest?

https://en.wikipedia.org/wiki/SHA-1#Attacks lists attacks that are still more google scale, but it's only question of time, collisions do exist. I think the hashing is seldom enough to err on the cautious side.

SHA1 is fine for this use (Git also uses it for generating IDs for files and commits). We're not encrypting passwords with it.


Result as struct

Switch Result to record struct #293, #294, #295, #296.  Added testing for AggregateResultGeneric #297.

Reviewed and verified

All checks passed.


I am interested in using your game on my website. Could you add a license file like the MIT one in this pull request so I know how you want your software used?

No problem, go ahead and use it!


feat(CategoryTheory): split up a product into a binary product

This is used in #18497 to prove that light condensed modules satisfy countable AB4*

Thanks!
bors merge


NAT=true not working

Background
I just configured nat=true in my lnd.conf and started lnd. I receive the following error message and lnd stops:
2018-10-04 20:58:52.188 [INF] SRVR: Scanning local network for a UPnP enabled device
2018-10-04 20:59:02.194 [ERR] SRVR: Unable to discover a UPnP enabled device on the local network: context canceled
2018-10-04 20:59:02.194 [INF] SRVR: Scanning local network for a NAT-PMP enabled device
2018-10-04 20:59:02.221 [ERR] SRVR: Unable to discover a NAT-PMP enabled device on the local network: fork/exec /usr/bin/ip: no such file or directory
2018-10-04 20:59:02.221 [ERR] SRVR: unable to create server: Unable to discover a NAT-PMP enabled device on the local network: fork/exec /usr/bin/ip: no such file or directory

On my Raspbian 9 the ip binary is located at /sbin/ip.
I created a symlink from /usr/bin/ip to /sbin/ip which only me brings me one step further until it crashes:
2018-10-04 21:08:11.119 [ERR] SRVR: Unable to discover a UPnP enabled device on the local network: context canceled
2018-10-04 21:08:11.119 [INF] SRVR: Scanning local network for a NAT-PMP enabled device
2018-10-04 21:08:11.147 [ERR] SRVR: Unable to discover a NAT-PMP enabled device on the local network: unexpected result size 2, expected 12
2018-10-04 21:08:11.147 [ERR] SRVR: unable to create server: Unable to discover a NAT-PMP enabled device on the local network: unexpected result size 2, expected 12

What can I do to help debug and fix this issue?
Your environment

version of lnd

Version 0.5.0-beta commit=3b2c807288b1b7f40d609533c1e96a510ac5fa6d

which operating system (uname -a on *Nix)

Linux foobar 4.14.69-v7+ #1141 SMP Mon Sep 10 15:26:29 BST 2018 armv7l GNU/Linux

This seems to be an issue with the dependency itself (https://github.com/jackpal/go-nat-pmp) being used to support NAT traversal. I would suggest opening an issue there as there's not much we can do from our end.

@wpaulino well, I guess my Router does not support NAT-PMP.. as far as I see it there are (at least) these technologies that are related to clients talking to network gateways:

UPnP

NAT-PMP

PCP

UPnP is the oldest and PCP (which doesn't seem to provide the external IP) the newest. Currently LND uses https://github.com/jackpal/go-nat-pmp which only implements NAT-PMP. I guess my router only supports UPnP and not NAT-PMP.
I just looked around and found: https://github.com/NebulousLabs/go-upnp which works like a charm with this simple code:
package main

import "fmt"
import (
        "log"
        "github.com/NebulousLabs/go-upnp"
)

func main() {
    // connect to router
    d, err := upnp.Discover()
    if err != nil {
        log.Fatal(err)
    }

    // discover external IP
    ip, err := d.ExternalIP()
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println("Your external IP is:", ip)
}

running it:
$ go run src/nat/nat.go
Your external IP is: 87.xxx.yyy.zzz

Yeah, you can see how the gateway discovery in the server is being done here.
The UPnP discovery code is very similar. The only difference is that we'll restrict the discovery attempt up to 10 seconds to prevent it from halting server startup for too long.

@wpaulino I have also been looking trough the code a bit. Also: The error I experienced yesterday has disappeared.. so this might have been a network glitch.
Anyway I think I still have an issue, but this might be due to a misunderstanding on my side, so let's start over:
Background
I have lnd running behind a NAT device. The NAT device re-connects to the internet every 24 hours and  gets a different external IP assigned. All IPs on the the local network (<IP_ADDRESS>/24) stay the same. I have configured a static port forwarding on the NAT device for the external port 9735 to my host running lnd (also to port 9735).
Scenario 1)

I remove nat=true from my lnd.conf.
Instead I set externalip=<IP_ADDRESS> to my current external IP.

When I start lnd and run lncli getinfo I get the following:
[...]
    "uris": [
        "03730a3b06d33d...07969d9a@<IP_ADDRESS>:9735"
    ],
[...]

Scenario 2)

I set nat=true in my `lnd.conf`` .
and I remove  externalip=

When I then start lnd and run lncli getinfo I get the following:
[...]
    "uris": [
    ],
[...]

Expected behaviour
The uris section of getinfo should show a valid connection string in both cases.
Actual behaviour
The uris section of getinfo does not have any entry when I use nat=true.
I enabled SRVR=debug and get the following:
2018-10-05 23:00:14.470 [INF] SRVR: Scanning local network for a UPnP enabled device
2018-10-05 23:00:18.717 [DBG] SRVR: Unable to forward port 9735: goupnp: SOAP request got HTTP 500 Internal Server Error: <?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<s:Fault>
<faultcode>s:Client</faultcode>
<faultstring>UPnPError</faultstring>
<detail>
<UPnPError xmlns="urn:schemas-upnp-org:control-1-0">
<errorCode>403</errorCode>
<errorDescription>Not available Action</errorDescription>
</UPnPError>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>
2018-10-05 23:00:18.719 [INF] SRVR: Automatically set up port forwarding using UPnP to advertise external IP

The reason for this might be that my NAT device already has a port forwarding for the port 9735.
But as far as I see it I do not need a port forwarding to be set up. Because I have already configured it statically. What I assume is important is that lnd learns the external IP address...

Making some progress.. I just changed this
func (s *server) configurePortForwarding(ports ...uint16) ([]string, error) {
	ip, err := s.natTraversal.ExternalIP()
	if err != nil {
		return nil, err
	}
	s.lastDetectedIP = ip

	externalIPs := make([]string, 0, len(ports))
	for _, port := range ports {
		if err := s.natTraversal.AddPortMapping(port); err != nil {
			srvrLog.Debugf("Unable to forward port %d: %v", port, err)
			continue
		}

		hostIP := fmt.Sprintf("%v:%d", ip, port)
		externalIPs = append(externalIPs, hostIP)
	}

	return externalIPs, nil
}

into this
func (s *server) configurePortForwarding(ports ...uint16) ([]string, error) {
	ip, err := s.natTraversal.ExternalIP()
	if err != nil {
		return nil, err
	}
	s.lastDetectedIP = ip

	externalIPs := make([]string, 0, len(ports))
	for _, port := range ports {
		hostIP := fmt.Sprintf("%v:%d", ip, port)
		externalIPs = append(externalIPs, hostIP)
	}

	return externalIPs, nil
}

Now I get the correct "uri" information.
So the problem here is that when I set nat=true and lnd is unable to set the port fowarding by itself it will assume there is no port forwarding and will think it is not reachable (right?!). But as in my case this is not true because I setup the forwarding manually. I only need UPnP so that lndcan learned the changed IP address every 24 hours.

That's correct, as is lnd will not advertise the address/port if it was unable to set up the port forward for whatever reason. If you wish to run this without any additional patches, I would suggest removing the manual static port forward on your router and have lnd do it instead.

I removed the static port forwarding on the NAT device and I still get the same error message (Not available Action):
DATE: Fri, 05 Oct 2018 22:48:05 GMT
SERVER: FRITZ!Box 7530 (UI) UPnP/1.0 AVM FRITZ!Box 7530 (UI) 164.06.93
CONNECTION: keep-alive
CONTENT-LENGTH: 439
CONTENT-TYPE: text/xml; charset="utf-8"

<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<s:Fault>
<faultcode>s:Client</faultcode>
<faultstring>UPnPError</faultstring>
<detail>
<UPnPError xmlns="urn:schemas-upnp-org:control-1-0">
<errorCode>403</errorCode>
<errorDescription>Not available Action</errorDescription>
</UPnPError>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>

Well.. this is embarrassing.. my NAT device has two separate settings for UPnP port forwardings. One to generally disabling this (which I had not set). But I also had to enable this individually for the lnd host.
So, mostly sorry for wasting your time... although I think I learned quite a lot about lnd, go and NAT through this.. :-)
I still find it confusing (or maybe even wrong) that there is a direct interdependency between "Set up port forwardings" and "Please auto discover changes on my external IP".

There is still a (definite) bug in the log message.
https://github.com/lightningnetwork/lnd/blob/master/server.go

Line 1066: When this runs into an error it prints Unable to forwar...
Line 1075: The code will continue and will be returned with return externalIPs, nil
Line 405: The call to this function is ips, err := s.configurePortForwarding(listenPorts...)  -> err is returned as nil.
Line 411: This thinks that the port forwarding was setup successfully and prints Automatically set up port...

I had the same error so far (under Windows 10). But today it worked:
2018-11-26 09:13:26.392 [INF] LNWL: Started listening for bitcoind transaction notifications via ZMQ on tcp://<IP_ADDRESS>:18504
2018-11-26 09:13:26.392 [INF] LNWL: Started listening for bitcoind block notifications via ZMQ on tcp://<IP_ADDRESS>:18503
2018-11-26 09:13:28.578 [INF] LNWL: The wallet has been unlocked without a time limit
2018-11-26 09:13:28.585 [INF] LTND: LightningWallet opened
2018-11-26 09:13:28.620 [INF] LNWL: Catching up block hashes to height 551547, this will take a while...
2018-11-26 09:13:28.788 [INF] HSWC: Restoring in-memory circuit state from disk
2018-11-26 09:13:28.838 [INF] HSWC: Payment circuits loaded: num_pending=0, num_open=0
2018-11-26 09:13:28.890 [INF] SRVR: Scanning local network for a UPnP enabled device
2018-11-26 09:13:32.574 [INF] LNWL: Done catching up block hashes
2018-11-26 09:13:32.652 [INF] LNWL: Started rescan from block<PHONE_NUMBER>00000000181e29d96227aa3dd7094e2b722c7ad6e227b3b08f8db6 (height 550614) for 2 addresses
2018-11-26 09:13:32.652 [INF] LNWL: Starting rescan from block<PHONE_NUMBER>00000000181e29d96227aa3dd7094e2b722c7ad6e227b3b08f8db6
2018-11-26 09:13:33.088 [INF] LNWL: Catching up block hashes to height 550614, this might take a while
2018-11-26 09:13:33.158 [INF] LNWL: Done catching up block hashes
2018-11-26 09:13:33.159 [INF] LNWL: Rescanned through block<PHONE_NUMBER>0000000029f0f5e485da9f20715bb20e6921d6f58406311b1eb6ab (height 550614)
2018-11-26 09:13:33.190 [INF] SRVR: Automatically set up port forwarding using UPnP to advertise external IP
2018-11-26 09:13:33.366 [INF] RPCS: RPC server listening on <IP_ADDRESS>:10009
2018-11-26 09:13:33.367 [INF] RPCS: gRPC proxy started at <IP_ADDRESS>:8080

After restarting the server I got the same error again and since then it doesn't work anymore:
2018-11-26 11:30:22.520 [INF] LTND: Received shutdown request.
2018-11-26 11:30:22.520 [INF] LTND: Shutting down...
2018-11-26 11:30:22.523 [INF] LTND: Gracefully shutting down.
2018-11-26 11:30:22.523 [INF] ATPL: Autopilot Agent stopping
2018-11-26 11:30:22.523 [INF] CRTR: Channel Router shutting down
2018-11-26 11:30:22.524 [INF] CRTR: FilteredChainView stopping
2018-11-26 11:30:22.524 [INF] HSWC: HTLC Switch shutting down
2018-11-26 11:30:22.523 [INF] HSWC: Block epoch canceled, decaying hash log shutting down
2018-11-26 11:30:22.575 [INF] UTXN: UTXO nursery shutting down
2018-11-26 11:30:22.579 [INF] BRAR: Breach arbiter shutting down
2018-11-26 11:30:22.580 [INF] DISC: Authenticated Gossiper is stopping
2018-11-26 11:30:22.580 [INF] CNCT: Stopping ChainArbitrator
2018-11-26 11:30:22.581 [INF] FNDG: Funding manager shutting down
2018-11-26 11:30:22.581 [INF] SRVR: Disconnecting from <IP_ADDRESS>:9735
2018-11-26 11:30:22.581 [INF] PEER: Disconnecting <IP_ADDRESS>:9735, reason: server: disconnecting peer <IP_ADDRESS>:9735
2018-11-26 11:30:22.582 [INF] PEER: unable to read message from <IP_ADDRESS>:9735: read tcp <IP_ADDRESS>:60317-><IP_ADDRESS>:9735: use of closed network connection
2018-11-26 11:30:22.582 [INF] SRVR: Disconnecting from <IP_ADDRESS>:9735
2018-11-26 11:30:22.582 [INF] PEER: Disconnecting <IP_ADDRESS>:9735, reason: server: disconnecting peer <IP_ADDRESS>:9735
2018-11-26 11:30:22.583 [INF] PEER: unable to read message from <IP_ADDRESS>:9735: read tcp <IP_ADDRESS>:60316-><IP_ADDRESS>:9735: use of closed network connection
2018-11-26 11:30:22.737 [INF] LTND: Shutdown complete
2018-11-26 11:31:06.639 [INF] LTND: Version: 0.5.0-beta commit=, build=production, logging=default
2018-11-26 11:31:06.639 [INF] LTND: Active chain: Bitcoin (network=mainnet)
2018-11-26 11:31:06.641 [INF] CHDB: Checking for schema update: latest_version=6, db_version=6
2018-11-26 11:31:06.674 [INF] RPCS: password RPC server listening on <IP_ADDRESS>:10009
2018-11-26 11:31:06.674 [INF] RPCS: password gRPC proxy started at <IP_ADDRESS>:8080
2018-11-26 11:31:06.675 [INF] LTND: Waiting for wallet encryption password. Use `lncli create` to create a wallet, `lncli unlock` to unlock an existing wallet, or `lncli changepassword` to change the password of an existing wallet and unlock it.
2018-11-26 11:31:24.952 [INF] LNWL: Opened wallet
2018-11-26 11:31:25.222 [INF] LTND: Primary chain is set to: bitcoin
2018-11-26 11:31:25.286 [INF] LTND: Initializing bitcoind backed fee estimator
2018-11-26 11:31:25.286 [INF] LNWL: Started listening for bitcoind block notifications via ZMQ on tcp://<IP_ADDRESS>:18503
2018-11-26 11:31:25.286 [INF] LNWL: Started listening for bitcoind transaction notifications via ZMQ on tcp://<IP_ADDRESS>:18504
2018-11-26 11:31:27.491 [INF] LNWL: The wallet has been unlocked without a time limit
2018-11-26 11:31:27.497 [INF] LTND: LightningWallet opened
2018-11-26 11:31:27.534 [INF] LNWL: Catching up block hashes to height 551556, this will take a while...
2018-11-26 11:31:27.660 [INF] HSWC: Restoring in-memory circuit state from disk
2018-11-26 11:31:27.761 [INF] LNWL: Done catching up block hashes
2018-11-26 11:31:27.805 [INF] HSWC: Payment circuits loaded: num_pending=0, num_open=0
2018-11-26 11:31:27.891 [INF] LNWL: Started rescan from block<PHONE_NUMBER>00000000181e29d96227aa3dd7094e2b722c7ad6e227b3b08f8db6 (height 550614) for 2 addresses
2018-11-26 11:31:27.891 [INF] LNWL: Starting rescan from block<PHONE_NUMBER>00000000181e29d96227aa3dd7094e2b722c7ad6e227b3b08f8db6
2018-11-26 11:31:27.915 [INF] SRVR: Scanning local network for a UPnP enabled device
2018-11-26 11:31:28.357 [INF] LNWL: Catching up block hashes to height 550614, this might take a while
2018-11-26 11:31:28.451 [INF] LNWL: Done catching up block hashes
2018-11-26 11:31:28.465 [INF] LNWL: Rescanned through block<PHONE_NUMBER>0000000029f0f5e485da9f20715bb20e6921d6f58406311b1eb6ab (height 550614)
2018-11-26 11:31:37.923 [ERR] SRVR: Unable to discover a UPnP enabled device on the local network: context canceled
2018-11-26 11:31:37.923 [INF] SRVR: Scanning local network for a NAT-PMP enabled device
2018-11-26 11:31:38.264 [ERR] SRVR: Unable to discover a NAT-PMP enabled device on the local network: no gateway found
2018-11-26 11:31:38.264 [ERR] SRVR: unable to create server: Unable to discover a NAT-PMP enabled device on the local network: no gateway found

2018-11-26 11:31:38.335 [INF] LTND: Shutdown complete

Is it perhaps due to the time or the attempts it has?

@japaweiss the gateway discovery will take up to 10 seconds, so if we can't discover it by then, we either try the next or exit.

Can I increase the 10 seconds somehow to test if it's because the discovery needs more time? Or do you have another idea why it worked once and then not anymore without changing anything?

Can I increase the 10 seconds somehow to test if it's because the discovery needs more time?

See https://github.com/lightningnetwork/lnd/blob/master/server.go#L362.

@japaweiss The 10 seconds are currently hardcoded here: server.go#L362. If you feel comfortable you could simply change that value, recompile and run that version for testing.
But I doubt that this is our problem. My suggestion would be to look at the network packets. Either locally (tcpdump), or the network using a mirror port - or both.
Do you have a local firewall (iptables) that could be blocking packets?

Completely shutting down the server, router and one additional router which worked as an AP in my network solved the issue

I wonder is it possible to let LND embed a routing hint into invoices by default if UPnP failed?

@wpaulino It's still failing for me. Bitcoin Core 0.17 works flawlessly on the same machine (Win10 x64 17763). I tried wireshark and procmon, then I found that bitcoin-qt.exe seemed to be able to receive SSDP responce (UDP Receive appeared in procmon), while lnd.exe failed to do this (only UDP Send recorded, no UDP Receive recorded).

@andronoob Could this be caused by the Windows firewall? Do you have a network based sniffer to check whether the NAT device gets and responds to the request? (this help me findout what I need to configure in iptables/ufw on linux)

In the beginning, Wireshark showed nothing (with udp contains "HTTP" filter). lnd then exited due to failed port mapping attempt. Then I turned lnd.exe from "disallow" into "allow" in the Advanced Settings of Windows Defender Firewall. After that, I restarted lnd, though Wireshark showed some traffic this time, it still failed once again.
By the way, I wonder if some Windows settings would affect LND? Eg. the SSDP Discovery service, and the "Turn on network discovery" in the control panel?

Oh, it seemed that I had misinterpreted what Wireshark showed me. There are some apps (Google Chrome maybe?) also sending SSDP discovery packets in the same time.

By the way, I wonder if some Windows settings would affect LND? Eg. the SSDP Discovery service, and the "Turn on network discovery" in the control panel?

I have not tested lnd on windows but IMO it is very likely that Windows settings have an effect on this.

I found something weird: Procmon showed that lnd was sending UDP packets from <IP_ADDRESS>:56517 to <IP_ADDRESS>:1900 - instead of 192.168.1.X:XXXXX ->
@frennkie I don't know much around this stuff, but I guess that LND should not rely on UPnP services provided by Windows.
However, I found that enabling the SSDP Discovery service and the Turn on network discovery setting in the control panel can be very useful: Windows provides a friendly GUI to configure UPnP port mapping settings, my router appeared in the "Network" view of explorer as an "IGD device", the UPnP settings can be found in the properties of that "IGD device" icon.

but I guess that LND should not rely on UPnP services provided by Windows.

Correct.. lnd implements the UPnP for itself and therefore does not used the Windows subsystem. But if Windows prevents the packets from reaching lnd or the NAT device then it will not work.

lnd was sending UDP packets from <IP_ADDRESS>:56517 to <IP_ADDRESS>:1900

Perfectly fine. That is the way the SSDP (Simple Service Discovery Protocol) works. The NAT device will respond to this multicast with a unicast reply (UDP, Src Port 1900, Dst Port Random) and this reply includes the Location of the service (in my case hxxp://<IP_ADDRESS>:49000/igddesc.xml).

<IP_ADDRESS>

This actually looks strange. I assume you are using either DHCP or static IPs on your (<IP_ADDRESS>/24) network, right? Maybe this is a problem.

Perfectly fine.

I don't think so. LND must be probing on a wrong interface. <IP_ADDRESS> was the link-local address of a virtual adaptor (Npcap loopback adaptor).
After disabling all unrelated adaptors (both virtual and physical), Procmon showed that LND could probe on the correct interface now, however, Wireshark showed that my router responded a "500 internal service error" to LND.

@wpaulino I saw the "NewPortMappingDescription" field was empty - is that correct?

After disabling all unrelated adaptors (both virtual and physical)

This sounds like there may be the need to more cleverly detect the local IP/interface - at least on Windows.

Wireshark showed that my router responded a "500 internal service error" to LND.

There are multiple steps, at least:

Service Discovery

Ask for external IP

Send request for port forwarding

When do you get that error? Can you give some more details?

When do you get that error?

I've found the reason - my router won't accept port mapping request with an empty NewPortMappingDescription field. I manually edited the HTTP request data & resent it, then it worked.

IMHO, even if UPnP works, there are still a lot of issues:

ISP may forcefully reassign a new IP address - all existing connection will simply break.

Carrier-grade NAT (CGN) has been deployed widely, for quite a long time. In this scenario, port mapping isn't an available option at all.

IP address might be a sensitive privacy info.

my router won't accept port mapping request with an empty NewPortMappingDescription field.

What vendor/model are you using?

I manually edited the HTTP request data & resent it, then it worked.

The line in lnd that sets an empty Description is here: https://github.com/lightningnetwork/lnd/blob/master/nat/upnp.go#L65. If you change this to something (e.g. "LND") and recompile this should work for you. Can you give this a try?

ISP may forcefully reassign a new IP address - all existing connection will simply break.

Yes, this (or at least something similar) caused me to create https://github.com/lightningnetwork/lnd/pull/2014 which was recently merged into master. lnd will recover after an external IP change by periodically updating the port forwarding.

Carrier-grade NAT (CGN) has been deployed widely, for quite a long time. In this scenario, port mapping isn't an available option at all.

Correct.. I assume then your only option is Tor or another kind of VPN technology. What is the point of your statement?

IP address might be a sensitive privacy info.

I have not yet read up on or tested the Tor implementation of lnd. But I assume this was done to address that concern.

What vendor/model are you using?

That doesn't matter, I think, since there must be countless users using the same model as mine.

If you change this to something (e.g. "LND") and recompile this should work for you. Can you give this a try?

I think it should work - but I don't have build environment still. Even if it works, there's still another issue: go-nat-pmp is probing on an incorrect interface.

I assume then your only option is Tor or another kind of VPN technology.

It's well known that Tor had been block by various entities, esp. the GFW of China - however, I don't think Internet censorship a big issue for now, since there're still some working workarounds, eg. shadowsocks.

What is the point of your statement?

The LN protocol seems to have some limitations which might affect common home node operators.

That doesn't matter, I think, since there must be countless users using the same model as mine.

That was exactly the reason I was asking. Other people might have the same equipment and will run into the same issue(s). Collecting which vendors/devices require which "special" treatment could help in determining the correct way to solve this in a generally acceptable way.

Even if it works, there's still another issue: go-nat-pmp is probing on an incorrect interface.

Now you are confusing me..! ;-D Are you using NAT-PMP or UPnP? These are different protocols and RfCs. My Router (AVM Fritzbox) only supports UPnP. NAT-PMP (and the even more recent PCP) seem to often be available on Apple devices (e.g. Airport Extreme) which I don't have.
But you are right.. if lnd uses the wrong source IP when there are multiple interfaces then I would consider this a bug which either needs to be fixed in lnd or upstream in the packages that are used.
I would suggest you open two separate issues. One for the empty description and one (most likely in https://gitlab.com/NebulousLabs/go-upnp/ - if you are using UPnP) for the wrong source interface/IP selection on the SSDP requests.

Collecting which vendors/devices require which "special" treatment could help in determining the correct way to solve this in a generally acceptable way.

It's a home gateway device made by Huawei. However, I don't know what strategy could be taken to make a "special" treatment" which is specific to this device. By the way, whether filling "LND" into NewPortMappingDescription will cause more problems should be more important - although I don't think this will be a problem.

Now you are confusing me

Sorry. It's UPnP, not NAT-PMP.

By the way, whether filling "LND" into NewPortMappingDescription will cause more problems should be more important - although I don't think this will be a problem.

I tested this on my Router - no problems so far.


APPS-1335 Don't save namespace handler if it fails to start

The actual error was a permission to AS cluster
time=2024-11-13T13:24:00.236Z level=INFO source=:0 msg="ERROR error reading record backup.client.id=asd.aerospike.com backup.handler.id=2cbaae67-c10b-47ba-8d31-fa6ca1b133dc backup.handler.type=backup backup.handler.storage=s3 backup.reader.id=e52efeb8-cb20-4220-911c-af2ba5ed2550 backup.reader.type=record backup.error="ResultCode: FAIL_FORBIDDEN, Iteration: 0, InDoubt: false, Node: BC40300000A0142 <IP_ADDRESS>:4333: Operation not allowed at this time\n  ResultCode: FAIL_FORBIDDEN, Iteration: 0, InDoubt: false, Node: : Operation not allowed at this time""
So, backup failed to start and returned error. But unfortunately, there was no continue in error handling, so failed (nil) handler was added to the map and caused crash. Thats an old bug, we didn't got it before because we had no connection issues, in our negative tests we only tested no connection to databased, but not access denied.

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

Project coverage is 30.04%. Comparing base (65d9eb6) to head (cd56597).

Additional details and impacted files
@@           Coverage Diff           @@
##               v2     #255   +/-   ##
=======================================
  Coverage   30.04%   30.04%
=======================================
  Files          41       41
  Lines        2313     2313
=======================================
  Hits          695      695
  Misses       1523     1523
  Partials       95       95

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


[BUG][Spark]  Logs are not compacted

Bug
Which Delta project/connector is this regarding?

[X] Spark
[ ] Standalone
[ ] Flink
[ ] Kernel
[ ] Other (fill in here)

Describe the problem
Logs don't seem to be deleted after retention or after checkpoint
Steps to reproduce
I am using zeppelin notebook and loading my data from HDFS do an update I ran this command many times and I have a lot of checkpoints on hdfs but none of the logs are deleted

Here is my table description

Observed results

None of the logs are deleted +100 files
Expected results

older logs to be deleted especially the ones before the checkpoint
Further details

Environment information

Delta Lake version: delta-core_2.12-2.0.2.jar
Spark version: 3.2.1
Scala version:

Willingness to contribute
The Delta Lake Community encourages bug fix contributions. Would you or another member of your organization be willing to contribute a fix for this bug to the Delta Lake code base?

[ ] Yes. I can contribute a fix for this bug independently.
[X] Yes. I would be willing to contribute a fix for this bug with guidance from the Delta Lake community.
[ ] No. I cannot contribute a bug fix at this time.

Found the solution minimum retention is 1 day and can't be converted to hours or minutes

For reference:
https://github.com/delta-io/delta/blob/97439835a4a667ac2ad86ec6054f0e85e8214760/spark/src/main/scala/org/apache/spark/sql/delta/DeltaConfig.scala#L356C1-L362C28

The shortest duration we have to keep delta files around before deleting them. We can only delete delta files that are before a compaction. We may keep files beyond this duration until the next calendar day.


TEI-export APIS dates

the current cleanup is not valid TEI:

the error code says: The @when attribute cannot be used with any other att.datable.w3c attributes.
solution would be to exchange when with when-iso

side note: funny enough, both attributes, @notBeforeand when-iso would allow a four digit value "1854"

can you please post a link to this entity?

I'm sorry, this seems to have been an earlier export. At least I cannot find it anymore


How to start to 1 if there are blank spaces before the seat?

Greetings everyone,
Can someone help me with this one? Skipping ID and the undefined value? Thank you in advance!

请问解决了吗 我现在也遇到这个问题

English please

@mateuszmarkowski hello. Asking for your assistance. Thank you sir.


feat - show DEX quotes on LLD Swap screen

📝 Description
On desktop, this PR will change which rates are shown on swap - so we are now showing the DEX quotes. In the common library, there's some logic that if we search for a DEX compatible pair that we can't get a quote back for, we just show a link to the provider's iframe instead of the quote.
On mobile, we are not making any changes to this.
❓ Context

Impacted projects:  Mobile/Desktop/Common
Linked resource(s): https://ledgerhq.atlassian.net/browse/LIVE-4633 / https://ledgerhq.atlassian.net/browse/LIVE-4862

✅ Checklist

[ ] Test coverage
[ ] Atomic delivery
[ ] No breaking changes

📸 Demo
https://user-images.githubusercontent.com/119950081/207909281-f6e231b0-3a51-43ae-8b86-d5a2f138c417.mov
One DEX quote

Two DEX quotes

Incompatible DEX pair

Two DEX quotes, but hidden behind feature flag (i.e. showing what we have today)

🚀 Expectations to reach
Please make sure you follow these Important Steps.
Pull Requests must pass the CI and be internally validated in order to be merged.

Can you add the correct description to the pr? and add changelogs?

Can you add the correct description to the pr? and add changelogs?

@sarneijim I've added in changelog/included the JIRA ticket. I have already put in a description, let me know if there's anything I should change.

Can you add the correct description to the pr? and add changelogs?

@sarneijim I've added in changelog/included the JIRA ticket. I have already put in a description, let me know if there's anything I should change.

Could you use one changelog per package? (ci has some problem to detect when they are in the same file)

Can you add the correct description to the pr? and add changelogs?

@sarneijim I've added in changelog/included the JIRA ticket. I have already put in a description, let me know if there's anything I should change.

Could you use one changelog per package? (ci has some problem to detect when they are in the same file)

@sarneijim updated: https://github.com/LedgerHQ/ledger-live/pull/2123/commits/f6b47d76e30ec1401ea15a8919e7edc9ad192c20

Test feedback:

Change 'Oneinch' to '1inch'
Investigate wrong Ethereum account selected in 1inch/paraswap Dapp
Add missing unit tests

@cjordan-ledger in future, please use "Squash & Merge" to not create a lot of commits in develop branch. Thanks 👍


Set up CI with Azure Pipelines

Closing this.  Just needed to submit to get Azure Pipelines to unlock the UI so I could start running tests directly on branches.


fix animations lag on destroing

I think this is a typo
actually cause lags when destroying animations after update
let A,B,C to be TickerListener
----- Before fix -----
A
B <-- emit + destroy
C <--- before destroy this is "next" candidate
after destroy
A <---NEXT
[B] <---destroy over B set next = A that will be updated twice
C
----- After fix -----
A
B <-- emit + destroy
C <--- before destroy this is "next" candidate
after destroy
A
[B] <---destroy over B set next = C that has never been updated in this tick cycle
C <---NEXT
    TickerListener.prototype.emit = function emit(deltaTime) {
        if (this.fn) {
            if (this.context) {
                this.fn.call(this.context, deltaTime);
            } else {
                this.fn(deltaTime);
            }
        }
        // NOTE:
        //if this.context is destroyed in this.fn call
        // TickerListener.prototype.destroy is called too.
        // after destroy this.next actually is this.prev that will be called twice
        var redirect = this.next;

        if (this.once) {
            this.destroy(true);
        }

        // Soft-destroying should remove
        // the next reference
        if (this._destroyed) {
            this.next = null;
        }

        return redirect;
    };

this bug also cause this.previous to be called twice

Can you add a test that shows the failure case? The test should fail before your changes and succeed afterward. I think that will make it a lot clearer what problem you are fixing, and prevent regressions in the future.

testAnim.zip

Sorry I think you misunderstood. I meant writing a unit test that fails before applying your fix, and succeeds after applying it. That way if we break it in the future, the test will fail and let us know.

Oh, ok..
something like that
   it('should TickerListeners call next after destroy', function (done) {
        const ticker = new Ticker();

        const listener1 = sinon.spy();
        const listener2 = sinon.spy(() => {
            ticker.remove(listener2);
        });

        const listener3 = sinon.spy(() => {
            ticker.stop();

            expect(listener1.calledOnce).to.be.true;
            expect(listener2.calledOnce).to.be.true;
            expect(listener3.calledOnce).to.be.true;
            done();
        });

        ticker.add(listener1, null, PIXI.UPDATE_PRIORITY.HIGH);
        ticker.add(listener2, null, PIXI.UPDATE_PRIORITY.HIGH);
        ticker.add(listener3, null, PIXI.UPDATE_PRIORITY.HIGH);

        ticker.start();
    });

Commit the test so that it goes in with the merge. Also it looks like your change is failing another test, can you look into that?

@lucap86 Can you make this work without changing the existing test?

Coming back from vacation,
i will take a look this afternoon

Hello, any update on this issue?
the fix proposed on tickerlistener work for me, so i integrate it locally, but it's another thing to remember when we want to upgrade pixi :D manually patch it :)

Thank you @lucap86, sorry for the delay.


Feature/extract characters

Codecov Report

Merging #9 into master will decrease coverage by 2.71%.
The diff coverage is 16.45%.

@@            Coverage Diff             @@
##           master       #9      +/-   ##
==========================================
- Coverage   27.11%   24.39%   -2.72%
==========================================
  Files          78      108      +30
  Lines         686      910     +224
==========================================
+ Hits          186      222      +36
- Misses        500      688     +188

Impacted Files
Coverage Δ

src/actions/gw2.js
100% <ø> (ø)

src/index.js
0% <ø> (ø)
:arrow_up:

src/reducers/reducerFactory.js
0% <ø> (ø)
:arrow_up:

src/components/LoadingStrip/index.js
100% <ø> (ø)
:arrow_up:

src/components/Gw2Specialization/index.js
0% <ø> (ø)
:arrow_up:

src/components/Gw2Trait/index.js
0% <ø> (ø)
:arrow_up:

src/reducers/tooltip.reducer.js
0% <ø> (ø)
:arrow_up:

src/components/Gw2GuildUpgrade/index.js
0% <ø> (ø)
:arrow_up:

src/components/TooltipTrigger/index.js
92.85% <ø> (ø)
:arrow_up:

src/reducers/professions.reducer.js
0% <ø> (ø)
:arrow_up:

... and 70 more

Continue to review full report at Codecov.

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


suggest

@Tramac
hope that the dataset part of this link will help you load some new datasets.
https://github.com/xiaoyufenfei/EDDSNet/tree/master

Hi, thank you for your great job, It is helpful!

@Tramac
and here is repo for some segmodel ,hope will help you project organization.
https://github.com/xiaoyufenfei/Real-Time-Semantic-Segmentation/tree/master/Real-Time SegModel

Great!


Product alignment

I have just added 2 new products to Ecovend however the new products aren't dropping into the grid.
Can we keep it so there are 3 in each row, please?

Something like this:

Thanks @iamkunall


cd Vk-Tokenner

I've done all instructions, and everything was perfect until "cd Vk-Tokenner" command.
Here's what I got: "bash: cd: Vk-Tokenner: No such file or directory"

ZXc

Everything was fine with me until I wrote "python3 main.py" writes that the file is not in the directory


i flag: allow to reference anonymous paths

For now, it's not possible to select impl blocks or const _ items: those have no explicit name in Rust.

I documented that in https://github.com/hacspec/hax/issues/497


update to use java 1.7

Pull Request Test Coverage Report for Build 585

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 89.41%

Totals

Change from base Build 580:
0.0%

Covered Lines:
2347

Relevant Lines:
2625

💛  - Coveralls

good call

@thomaszurkan-optimizely, you can probably drop java 7 Jan 16th 2019.
https://cloud.google.com/appengine/docs/deprecations/java7


Add how to migrate to ODK .md and link to it

This PR adds the odk-migrate-to-odk.md to the docs/howto folder to provide a How To article for the migration of an existing ontology repository to ODK, based on this draft https://docs.google.com/document/d/10i76WqZ8EbnW4ta7BBNqTOYH2tLx51QDzhWF63-80uY/.
CC:
@matentzn
@cmungall

Overall looks good to me, but I believe there are issues with the indenting of keys in the ODK config file shown as example. This must be fixed as people are likely going to be copy-paste that example to “bootstrap” their own migration effort.

Thank you for the review. I've addressed all of your points and fixed some typos/improved some wording (9d8f1af).


refactor(navbar): replace sidebar logic with state management

Signed-off-by: Yevhenii Kamenskyi<EMAIL_ADDRESS>

[ ] remove todos
[ ] fix mobile view


SPARK-6532 [BUILD] LDAModel.scala fails scalastyle on Windows

Use standard UTF-8 source / report encoding for scalastyle

Test build #29232 has started for   PR 5211 at commit 16a33e5.

This patch merges cleanly.

Test build #29232 has finished for   PR 5211 at commit 16a33e5.

This patch passes all tests.

This patch merges cleanly.

This patch adds no public classes.

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

Merged in master. Thanks.


Possible typo in AV1 synthetizer

The AV1 synthetizer's decoder_model_info method outputs the following:
        self.f(32, dm.buffer_removal_time_length_minus_1)?;
        self.f(32, dm.frame_presentation_time_length_minus_1)?;

However, from the AV1 parser, both buffer_removal_time_length_minus_1 and frame_presentation_time_length_minus_1 are read from 5 bits. Could this be a typo?

Oh, yes.  You're fully right.  5.5.4. Decoder model info syntax defines the layout. It is
decoder_model_info( ) {
    buffer_delay_length_minus_1               f(5)
    num_units_in_decoding_tick                f(32)
    buffer_removal_time_length_minus_1        f(5)
    frame_presentation_time_length_minus_1    f(5)
}

The generated bitstream has decoder_model_info_present_flag = 0 so that syntax is not generated, however this should be fixed to avoid long debugs.
Good catch! Thanks!


Fix boolean-prop-naming with Object.spread syntax

There is an issue where using Object.spread syntax with this rule causes Eslint to break as it attempts to look for node.value.property in a spread object. We avoid validating spread nodes by checking for the ExperimentalSpreadProperty type.
Reopened #1482 (github wasn't showing new commit) @ljharb

@ljharb Done!


Seeking in Stremio when using the proxy regenerates the url link in real debrid which eventually leads to rate limiting

When seeking in Stremio using the streaming proxy, the RD download link is regenerated each time:

This eventually leads to a warning which I guess is due to rate limiting:
comet  | 2024-08-29 10:57:09 | ⚠ WARNING | realdebrid.generate_download_link - Exception while getting download link from Real-Debrid for 78ffxxxxxxxxxxxxxxxx|1: 'uri'
The result is that the video doesn't resume after a certain number of seeks.

I think the issue is related to this line:
f"SELECT link, timestamp FROM download_links WHERE debrid_key = '{config['debridApiKey']}' AND hash = '{hash}' AND file_index = '{index}'"
In my config, debridapikey is empty because I want to use the proxy and not provide my api key in the addon config.
However the download link gets  cached with the api key because of this code:
            if (                 settings.PROXY_DEBRID_STREAM                 and settings.PROXY_DEBRID_STREAM_PASSWORD                 == config["debridStreamProxyPassword"]                 and config["debridApiKey"] == ""             ):                 config["debridService"] = (                     settings.PROXY_DEBRID_STREAM_DEBRID_DEFAULT_SERVICE                 )                 config["debridApiKey"] = (                     settings.PROXY_DEBRID_STREAM_DEBRID_DEFAULT_APIKEY                 )
I guess the fix would be to do the same for getting the cached download link in the first place.

working on a fix 👍

@pkonecki fixed in latest commit, can you confirm?

petite erreur de ma part 💀

Working flawlessly! Merci !


entity_id for sensors

Make sure you are running the latest version of Home Assistant before reporting an issue.
You should only file an issue if you found a bug. Feature and enhancement requests should go in the Feature Requests section of our community forum:
Home Assistant release (hass --version):
hassio version 1.1.2
Home Assistant 0.63.3
Python release (python3 --version):
I use hass.io
Component/platform:
I use hass.io on Raspberry Pi 3 with 32GB SD and ethernet connection
Description of problem:
I use russian friendly names in all my devices. But It is not work correctly.
Example: I create 2 mqtt sensors: temperature and humidity. Both sensors have friendly names in russian language. And both of this have the same entity_id: sensor.__
When I receive temperature value from mqtt, I see only temperature sensor with sensor.__ entity_id and on web interface (on dev-state too only one sensor), and when I receive humidity value from mqtt I see only humidity sensor with sensor.__ entity_id and temperature sensor is lost.
Expected:
Use russian friendly names
Problem-relevant configuration.yaml entries and steps to reproduce:
sensor:
  - platform: mqtt
    state_topic: "domoticz/in/14"
    name: "Температура в спальне"
    unit_of_measurement: "°C"
  - platform: mqtt
    state_topic: "domoticz/in/15"
    name: "Влажность в спальне"
    unit_of_measurement: "%"

Traceback (if applicable):

Additional info:

The mqtt platform creates entity IDs based on the name configuration value. I don't know if that's the right thing to do. But you can work-around this issue. Use a name value in ascii, like name: temperature and use a customize friendly_name to give it a Russian friendly name, like
customize:
  sensor.temperature:
    friendly_name: 'Температура в спальне'

This is what I need, thank you!


[1]    17458 illegal hardware instruction  sourcedocs generate -- -scheme MyFramework

Using this command
sourcedocs generate -- -scheme MyFramework
The framework has around 40 swift files which has documentation in it.
After parsing some 10 files, it is throwing this error
[1]    17458 illegal hardware instruction  sourcedocs generate -- -scheme MyFramework
Please help with this

The same issue here
11976 illegal hardware instruction  sourcedocs generate

Getting a somewhat similar error for specific source files.
After running the following command:
sourcedocs generate --spm-module "MyFramework"
I get the following error:

57725 Illegal instruction: 4  sourcedocs generate --spm-module "MyFramework"

@eneko I prepared a small SwiftPM package to illustrate the issue and would be happy to provide it.

@eneko @zddhub @suhas03su just opened PR #73.
I verified against my sample project the generate command now works as expected. Can you try the same on your side? Thanks

@dean-harel-healthy , It's good, Do you mind release a new version?

I tested it, it works. 👍
When will we release new version with this patch? @dean-harel-healthy


Tutorial - Won't start rviz out of the box

Description
After following all tutorials this line
ros2 launch moveit2_tutorials demo.launch.py rviz_tutorial:=true
won't work as predicted
move_group-4] [ERROR] [1662375043.529176769] [moveit_robot_model.robot_model]: Joint 'wheel_left_joint' not found in model 'panda' [move_group-4] [ERROR] [1662375043.529211279] [moveit_robot_model.robot_model]: Joint 'wheel_right_joint' not found in model 'panda'
Your environment

ROS Distro: Galactic
OS Version: e.g. Ubuntu 20.04
git clone -b galactic https://github.com/ros-planning/moveit2_tutorials.git --depth 1

Steps to reproduce
Freshly install, ros2 via ros2 tutorial and moveit2 via tutorial -
https://moveit.picknik.ai/galactic/doc/tutorials/quickstart_in_rviz/quickstart_in_rviz_tutorial.html#getting-started
Expected behaviour
rviz should open with panda robot
Backtrace or Console output
[Use gist.github.com to copy-paste the console output or segfault backtrace using gdb.](https://gist.githubusercontent.com/MightyMirko/c371c035d11626f21605bf18e4b848a3/raw/d6a511abf2d2b8b43a5c51b2d361bfdacf8765d6/error.log)

Looks like you loaded the wrong URDF. Wheels are definitely not part of the Panda robot...
Check whether you have a robot_description parameter set from some previous ROS run.

How would one check that?
Nonetheless, a reboot helped...

rosparam list
rosparam get robot_description


microk8s pods crashing with CrashLoopBackOff error

Please run microk8s inspect [inspection-report-20210126_164036.tar.gz](https://github.com/ubuntu/microk8s/files/5876955/inspection-report-20210126_164036.tar.gz)  and attach the generated tarball to this issue.
We appreciate your feedback. Thank you for using microk8s.

Hi,
While creating a kubernetes deployment using microk8s, the pod is failing with the below error:
microk8s.kubectl get pods
NAME                                   READY   STATUS             RESTARTS   AGE
kubernetes-bootcamp-57978f5f5d-l6qd9   0/1     CrashLoopBackOff   23         98m
I have already attached the microk8s inspect tarball to this issue. Please let me know if anything else is needed.
Also I'm running this on  Ubutu using a Raspberry Pi.

Hi,
While creating a kubernetes deployment using microk8s, the pod is failing with the below error:
microk8s.kubectl get pods
NAME                                   READY   STATUS             RESTARTS   AGE
kubernetes-bootcamp-57978f5f5d-l6qd9   0/1     CrashLoopBackOff   23         98m
I have already attached the microk8s inspect tarball to this issue. Please let me know if anything else is needed.
Also I'm running this on  Ubutu using a Raspberry Pi.

Hi @MakrandPare
In the logs of the pod I see:
standard_init_linux.go:219: exec user process caused: exec format error

This most probably means you are using an image for kubernetes-bootcamp that is not applicable for the architecture of your host, ARM64.

Hi @MakrandPare
In the logs of the pod I see:
standard_init_linux.go:219: exec user process caused: exec format error

This most probably means you are using an image for kubernetes-bootcamp that is not applicable for the architecture of your host, ARM64.

Hi Konstantinos,
Thanks for your reply. I guess like you are right. Actually I was using this image as specified in the kubernetes tutorial https://kubernetes.io/docs/tutorials/kubernetes-basics/deploy-app/deploy-interactive/,  which is directed for minikube.
Seems like there is a difference between the way kubernetes images behave on minikube versus microk8s.
I may have to look for tutorials specifically written for microk8s.
Thanks again for your response,
Makrand

Hi Konstantinos,
Thanks for your reply. I guess like you are right. Actually I was using this image as specified in the kubernetes tutorial https://kubernetes.io/docs/tutorials/kubernetes-basics/deploy-app/deploy-interactive/,  which is directed for minikube.
Seems like there is a difference between the way kubernetes images behave on minikube versus microk8s.
I may have to look for tutorials specifically written for microk8s.
Thanks again for your response,
Makrand

Hi @MakrandPare i will close this issue for now.
If you need help, don't hesitate to create one.
Thanks.

Hi @MakrandPare i will close this issue for now.
If you need help, don't hesitate to create one.
Thanks.


When the namespace option is set, the styled components class does not add a namespace.

When configuring the plugin in my rsbuild.config.js using the namespace option as follows:
 plugins: [pluginStyledComponents({namespace:"my-namespace"})]
The styled components class does not appear to have any namespaces added.
(The namespace was inserted appropriately when I used babel-plugin-styled-components in another webpack-based application.)

Hi, this Rsbuild plugin is simply a wrapper for @swc/plugin-styled-components.
If you have any requirements for styled-components, I would recommend submitting this issue to SWC plugins repo or the styled-components repo.


Create Chat Rooms with Potential Roommates

Add a functionality where users should be able to chat with potential roommates

Done

done


Prevent multiple handlers for the same device with the same priority

Enforce either timeout or different priorities
Maybe define priorities in the config_spec for different handlers. e.g. enable > release_one > disable

fixed in dev


Text to add to the "join" page

Can we add the following on the "Join" page please :)
Press & Media
For all press requests or media enquiries please contact Helena Flack<EMAIL_ADDRESS>

and put it on the top seeing as the other applications are closed!

https://github.com/Department-of-Decentralization/ETHBerlinZwei/pull/16
changed your email to like it is below

Thanks @ligi !


Music doesn't work

Command that caused the error
/music play
Image that caused the error
No response
Steps to reproduce

Go to '...'
Click on '....'
Scroll down to '....'
See error

Self-hosted instance?
Yes
Error file
Message: RestError: Session not found
at Rest.fetch (file:///home/esmBot/esmBot/node_modules/.pnpm/shoukaku@â€‹4.1.1_bufferutil@â€‹4.0.8/node_modules/shoukaku/dist/index.mjs:949:13)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async Player.sendServerUpdate (file:///home/esmBot/esmBot/node_modules/.pnpm/shoukaku@â€‹4.1.1_bufferutil@â€‹4.0.8/node_modules/shoukaku/dist/index.mjs:709:5)
at async Shoukaku.joinVoiceChannel (file:///home/esmBot/esmBot/node_modules/.pnpm/shoukaku@â€‹4.1.1_bufferutil@â€‹4.0.8/node_modules/shoukaku/dist/index.mjs:1332:7)
at async play (file:///home/esmBot/esmBot/utils/soundplayer.js:129:32)
at async MusicAIOCommand.run (file:///home/esmBot/esmBot/commands/music/music.js?v=101:20:23)
at async default (file:///home/esmBot/esmBot/events/interactionCreate.js:57:20) {
timestamp:<PHONE_NUMBER>153,
status: 404,
error: 'Not Found',
trace: undefined,
path: '/v4/sessions/7fdonrxiqqpwonic/players/1100106220909637746'
}
Stack Trace: RestError: Session not found
at Rest.fetch (file:///home/esmBot/esmBot/node_modules/.pnpm/shoukaku@â€‹4.1.1_bufferutil@â€‹4.0.8/node_modules/shoukaku/dist/index.mjs:949:13)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async Player.sendServerUpdate (file:///home/esmBot/esmBot/node_modules/.pnpm/shoukaku@â€‹4.1.1_bufferutil@â€‹4.0.8/node_modules/shoukaku/dist/index.mjs:709:5)
at async Shoukaku.joinVoiceChannel (file:///home/esmBot/esmBot/node_modules/.pnpm/shoukaku@â€‹4.1.1_bufferutil@â€‹4.0.8/node_modules/shoukaku/dist/index.mjs:1332:7)
at async play (file:///home/esmBot/esmBot/utils/soundplayer.js:129:32)
at async MusicAIOCommand.run (file:///home/esmBot/esmBot/commands/music/music.js?v=101:20:23)
at async default (file:///home/esmBot/esmBot/events/interactionCreate.js:57:20)
Additional context
No response

Duplicate of #459


Global Hades issue tracker for Hades website

Thanks to Paul Nagy we have all of the OHDSI github issues continuously loaded into an elastisearch instance with a number of attributes. We should be able to use the rest endpoints in the Hades website. As a first step I thought it would be nice to have a global Hades issue tracker that would allow sorting by various metrics (time open, etc).

Great idea!
I hacked some JavaScript to show the current milestones, that might be an alternative to consider: https://github.com/OHDSI/Hades/blob/main/Rmd/milestones.js

I need a service account to Paul Nagy’s massive GitHub database!

What exactly do you mean by 'service account'?

By service account I mean a username and password that is used by the app/website to access the elastisearch datastore containing all the mined github data. This would allow the website to query the datastore on the user’s behalf without requiring each user to have credentials.

Sorry to be dense, but what is the elastisearch datastore? And who can create a service account for that?

Not dense at at all! Happy to explain what I know. My understanding is probably not 100% correct though.
Elastisearch is an uberfast cloud data storage system for analytics. You can think of it like a database but it works differently that the usual SQL databases. It might be closer to a no-sql database or even a search engine.
Elastisearch has it's own query language implemented in JSON and an example query looks like this.

We can think of it like a database. We send a query and get results. The datastore I want access to (for the Hades website) is the one that powers this dashboard. The elastisearch datastore contains essentially all OHDSI github activity and is automatically updated. The fast performance of the elastisearch "database" would allow us to surface custom analytics about OHDSI repos on a public website. So for starters I was thinking we could have a table that would show all open issues and PRs sorted by various metrics (e.g. time since last comment). The idea would be to help us triage issues and PRs to tackle in a global/cross-repo way.
We could also just do this in the OHDSI kibana dashboard (link here) but I don't have permissions to create persistent changes here. If we had a service account to query the database we can build whatever we want on top of this fast query engine. I believe Paul (who set up the elastisearch datastore) is on board with this.

And who can create a service account for that?

@paulnagy I believe.


Fix #7828 - File Manager only offers Download option in menu for images

https://github.com/concrete5/concrete5/issues/7828

Sorry I missed this very helpful pull request when I fixed this bug earlier. Thank you for submitting it


Version 2.0.0 Null timestamps rendering as "Invalid Date".

In previous versions of sqlpad, a null value in a timestamp would render as an empty column.  In 2.0.0 it shows up as Invalid Date

Thanks for reporting @nbrustein! Just published fix to npm in version 2.1.0


CLIMATE-820 - Update pip requirements

Remove unused requirements (nose-exclude, pylint)
Update all packages to latest version

Can one of the admins verify this patch?

Coverage remained the same at 83.506% when pulling b27b6f5f8789effd136da51b7b0f260ca16941d1 on jarifibrahim:CLIMATE-820 into 0cc3afeb1085e66c586ebbc1fc547a5022e4d851 on apache:master.


GCS - Replication Metrics are Missing

I have created a stack-driver exporter to scrape metrics for GCS component.
All the metrics under storage.googleapis.com/replication is missing.
Configuration:
STACKDRIVER_EXPORTER_MONITORING_METRICS_TYPE_PREFIXES:  storage.googleapis.com, storagetransfer.googleapis.com
STACKDRIVER_EXPORTER_MONITORING_METRICS_INTERVAL:       10m
STACKDRIVER_EXPORTER_MONITORING_METRICS_OFFSET:         0s

Stack-driver image : prometheuscommunity/stackdriver-exporter:v0.14.1
Can anyone help me with this issue? Thanks in advance.

Hi @maxkimambo ,
Thanks for your input. The problem I 'm facing is, stack-driver exporter was not able to scrape metrics under  storage.googleapis.com/replication
see https://cloud.google.com/monitoring/api/metrics_gcp#gcp-storage under replication.
Based on your feedback, I have started a new stack-driver exporter with below configuration.
      --google.project-id=some-project
      --monitoring.metrics-interval=10m
      --monitoring.metrics-offset=0s
      --monitoring.metrics-type-prefixes=storage.googleapis.com/replication/missing_rpo_minutes_last_30d
      --stackdriver.backoff-jitter=1s
      --stackdriver.http-timeout=10s
      --stackdriver.max-backoff=5s
      --stackdriver.max-retries=0
      --stackdriver.retry-statuses=503
      --web.listen-address=:9255
      --web.telemetry-path=/metrics
      --monitoring.aggregate-deltas
      --monitoring.aggregate-deltas-ttl=30m

Prometheus didn't showed the metrics related to storage.googleapis.com/replication/missing_rpo_minutes_last_30d.

Need help on this issue !!!
    - name: kpi-stackdriver-exporter-rpo       metrics:         typePrefixes: 'storage.googleapis.com/replication/'         interval: 3800s         offset: 30s         aggregateDeltasTTL: '30m'

Not able scrape metrics for prefix 'storage.googleapis.com/replication/'


Retain empty value if clicked outside of datepicker

Steps to reproduce:

Go to http://jsfiddle.net/Eonasdan/0Ltv25o8/
Click inside second datepicker. Current datetime is being set for text field.
Click outside of datepicker. Current datetime remains in text field. Most other datepickers understand this as 'cancel' action and will keep input empty.

Check the behavior of http://dev.sencha.com/extjs/5.1.0/examples/simple-widgets/editor.html and http://demos.telerik.com/kendo-ui/datepicker/index for example.
Possibly you can introduce some option for enabling/disabling such behavior.

you can set useCurrent: false

Oh thanks, apparently it works. My bad, it wasn't obvious for me.


Return SSL_AD_UNEXPECTED_MESSAGE alert when receiving any other change_cipher_stec value(RFC 8446)

Fixes: #25086
CLA: trivial

Sorry, but can we have a title on the commit message? Then there should be a blank line before the CLA: trivial line.
Currently the commit header is just
commit 3714b1465e5084bccf9215de135216d8ca3b523f (HEAD -> fix-msg)
Author: cx<EMAIL_ADDRESS>Date:   Thu Aug 22 02:13:01 2024 +0800

    CLA: trivial

A more usual commit message would be something like
commit 02b8b7b83698d1c7ddfef274f16c039c8cca7988
Author: Bhaskar Metiya<EMAIL_ADDRESS>Date:   Wed Aug 14 11:34:01 2024 +0530

    Return SSL_AD_DECRYPT_ERROR alert on PSK binder validation failure (RFC 8446)

    CLA: trivial

Thank you for the feedback,I've updated the commit message

Not sure why the coding style checker is complaining about files not included in this PR. Adding the "style: waived" label.

Agree - CLA trivial

24 hours has passed since 'approval: done' was set, but as this PR has been  updated in that time the label 'approval: ready to merge' is not being automatically set.  Please review the updates and set the label manually.

Typo in commit message ? : cipher_stec

Thanks for catching those issues and suggesting improvements! I’ve made the necessary changes

Pushed. Thanks.


api/now/import/x_mioms_azpipeline_change_request_import Endpoint Error

I am trying to use the api/now/import/x_mioms_azpipeline_change_request_import endpoint, but I am getting the following error:
{
"import_set": "ISET0231334",
"staging_table": "x_mioms_azpipeline_change_request_import",
"result": [
{
"transform_map": "change_request_imports",
"status": "error",
"error_message": "Unable to resolve target record, coalesce values not present: [Script]; Invalid table ",
"status_message": "Unable to resolve target record, coalesce values not present: [Script]"
}
]
}
Please could someone advise how I can fix this issue. Below are the parameters I am passing:
u_correlation_id={{$guid}}&u_type=Normal&status=-4&u_short_description=testingtestingtestingtesting&u_description=testingtestingtestingtesting&u_assignment_group=Warehouse
Systems Dev Ops&u_category=Hardware;u_priority=Low;u_risk=Low;U_impact=Low;cmdb_ci=ATS TOFT CAB 5 (Callout not required);u_start_date=03-09-2021 18:27:10 UTC;u_end_date=04-09-2021 08:43:15 UTC;u_otherParameters=&u_number=CHG0114055&u_otherParameters="u_justification": "Justification testing testing testing testing", "u_test_plan": "test plan testing testing testing testing", "u_implementation_plan"
: "implementation plan testing testing testing testing", "u_risk_impact_analysis": "risk impact analysis testing testing testing testing"

Fixed this by amending the Web Service settings.


nbdev_new: json.decoder.JSONDecodeError: Expecting ',' delimiter: line 19 column 41 (char 323)

On creating a new nbdev project with the nbdev_new command, after cloning into an empty git repo as described in the tutorial, I get the following error:
Traceback (most recent call last):
File "/home/ndev_env/bin/nbdev_new", line 8, in
sys.exit(nbdev_new())
File "/home/ndev_env/lib/python3.9/site-packages/fastcore/script.py", line 119, in _f
return tfunc(**merge(args, args_from_prog(func, xtra)))
File "/home/ndev_env/lib/python3.9/site-packages/nbdev/cli.py", line 108, in nbdev_new
nbdev_export.wrapped()
File "/home/ndev_env/lib/python3.9/site-packages/nbdev/doclinks.py", line 134, in nbdev_export
for f in files: nb_export(f)
File "/home/ndev_env/lib/python3.9/site-packages/nbdev/export.py", line 48, in nb_export
nb = NBProcessor(nbname, [exp]+L(procs), debug=debug)
File "/home/ndev_env/lib/python3.9/site-packages/nbdev/process.py", line 92, in init
self.nb = read_nb(path) if nb is None else nb
File "/home/ndev_env/lib/python3.9/site-packages/execnb/nbio.py", line 57, in read_nb
res = dict2nb(_read_json(path, encoding='utf-8'))
File "/home/ndev_env/lib/python3.9/site-packages/execnb/nbio.py", line 16, in _read_json
return loads(Path(self).read_text(encoding=encoding, errors=errors))
File "/home/ndev_env/lib/python3.9/json/init.py", line 346, in loads
return _default_decoder.decode(s)
File "/home/ndev_env/lib/python3.9/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/home/ndev_env/lib/python3.9/json/decoder.py", line 353, in raw_decode
obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Expecting ',' delimiter: line 19 column 41 (char 323)
The same error gets triggered when I try to export any notebooks within this project using the nbdev_export command. I saw this issue, but changing the python encoding environment variable doesn't work for me. I am running Linux.
Here is a link to the GitHub action for the failed test upon commit.
Has anyone seen or solved this before?

I had this problem also. I used the solution provided in #1278 . My problem was that my description contains double quotes and my solution was to delete the files generated by nbdev_new and run nbdev_new again, this time without the use of any quotes in the description.


[HW] Spring Stargate By Joshua B. Turner

Name: Joshua B. Turner
Email<EMAIL_ADDRESS>LinkedIn: https://www.linkedin.com/in/taztech/
I did all the steps twice in two different GitPod instances here as well. Looking at the logs, there is some issue with dependencies in the chevron repository. Please fix this issue and I'll try again. Otherwise, award the achievement please as I went through all the exercises with a fine tooth comb, and it probably would have worked just fine if not for this one and only issue. thanks.
Attach the homework step I screenshots below:

Attach the homework step II screenshots below:

Great in your second attempt you got the DB Id correctly. In the first try you put an unfortunate -1 it was the reason your your issue. Great JOB !

Joshua B. Turner
Thank you for your efforts, it is a pleasure for us to give you your well deserved BADGE at the following link

https://api.badgr.io/public/assertions/hXMYFqsTQ664glF-YkXuWw

You can now brag about it on Twitter, Facebook or LinkedIn. It helps the workshops to be more visible and encourages us Advocates coming back every week with new content. Please make sure to use the hashtag #DatastaxDevWorkshops.
💚   🙏🏻    🙏🏽   🙏🏿
The Datastax Advocates Team (@DatastaxDevs)
#DatastaxDevWorkshops


Create default header styles for all pages

Currently our header styles (ex. H1, H2, H3, etc.) are not easily readable and do not create good visual hierarchy for the user.
Styles need to be defined (either USWDS or tailwind) for our base header styles.
Requirements:

Defining default header styles on mobile, tablet, desktop
Accessibility guidelines for pages where default header styles may be overridden

Need a few main north star pages to be created before finalizing

When we validate the headings are styled as we want them and correctly ordered in the html within Northstar we need to take into account the USWDS alerts which use H4 as the default (on non-slim alerts).
I ran into issues adding the new eligibility alert headings in both the old and northstar code where I had to override the heading on different pages because the Axe accessibility tests found either headings in the wrong order (e.g., h1-h3-h2) or gaps (e.g., h1-h3-h4).

Update: Header styles have been created. Reccomendation is to use all styles in usa-prose. https://designsystem.digital.gov/components/prose/
Accessibility guidelines need for specific components


KVM: Fix agents dont reconnect post maintenance

Description
Before this fix, there were two possible scenarios when cancelling maintenance/prepare for maintenance on a KVM host:

If global setting 'kvm.ssh.to.agent' = true, then the management server performed SSH into the host and restarted the CloudStack agent service.
If global setting 'kvm.ssh.to.agent' = false, then the management server required that the CloudStack agent service on the host was restarted manually, for the host to become operational again. Restart was to establish a new connection between management server and the host agent, as it was closed after the host is notified to be put into maintenance

After cancelling maintenance on one-time SSH password hosts, hosts did not reconnect and were not operational unless a manual restart on the CloudStack agent service was performed.
This feature keeps the connection between management server and host agent alive while preparing for maintenance and when on maintenance. This imples that:

Host agent is connected during maintenance period unless it is stopped
If the host or the agent are restarted during maintenance period, a new connection will be established between the agent and the management server.
If a host agent is connected to the management server when cancelling maintenance, then the current connection is kept alive regardless the value of the global setting 'kvm.ssh.to.agent'
If a host agent is disconnected when cancelling maintenance:

If 'kvm.ssh.to.agent' = true, then the management server restarts the agent service via SSH into the host
If 'kvm.ssh.to.agent' = false, then an error is thrown indicating that the agent must be connected to the management server.

Summary

When an admin cancels maintenance mode on a KVM host:

If 'kvm.ssh.to.agent' = false and the agent is connected then maintenance mode is cancelled, then maintenance mode is cancelled.
If 'kvm.ssh.to.agent' = true and the agent is connected, then maintenance mode is cancelled.
If 'kvm.ssh.to.agent' = true and the angent is not connected, then the management server will attempt to SSH into the host and restart the agent. If the agent connects, then maintenance mode is cancelled. If the agent still does not connect then maintenance mode fails to be cancelled and a suitable message is returned.
If 'kvm.ssh.to.agent' = false and the agent is not connected, then maintenance mode fails to be cancelled and a suitable message is returned

A host must be able to exit maintenance under the following circumstances:

Host agent has remained online throughout the maintenance period
Host agent has been restarted after host went into maintenance
KVM host has been fully restarted during the maintenance period

A host in maintenance mode and with agent connected must be shown to remain connected to CloudStack management whilst rejecting all CloudStack operations (new internal agent state = hostInMaintenance)
Hosts in which SSH is allowed (kvm.ssh.to.agent = true) must be able to still exit maintenance mode regardless of whether the host or agent have been restarted during the maintenance period. (i.e. no regressions to existing functionality)
Hosts in maintenance mode which have either or both the host itself or the host agent restarted should be reconnected to management server with the management server agent in the new internal hostInMaintenance state

Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] New feature (non-breaking change which adds functionality)
[ ] Bug fix (non-breaking change which fixes an issue)
[x] Enhancement (improves an existing feature and functionality)
[ ] Cleanup (Code refactoring and cleanup, that may add test cases)

Screenshots (if appropriate):
How Has This Been Tested?
Tested on 2xKVM hosts environment, NFS primary and secondary storage, changing values of the global setting 'kvm.ssh.to.agent' for each case to test

I'll wait @nvazquez to address comments and will trigger testing on this.

Thanks @rhtyd @borisstoyanov, comments addressed and re-tested functionalities.

@blueorangutan package

@nvazquez a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos6 ✔centos7 ✔debian.  I'll keep you posted as I make progress.

Packaging result: ✔centos6 ✔centos7 ✔debian. JID-2719

@blueorangutan test

@nvazquez a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-3529)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 33967 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr3239-t3529-kvm-centos7.zip
Intermittent failure detected: /marvin/tests/smoke/test_public_ip_range.py
Intermittent failure detected: /marvin/tests/smoke/test_templates.py
Intermittent failure detected: /marvin/tests/smoke/test_usage.py
Intermittent failure detected: /marvin/tests/smoke/test_volumes.py
Smoke tests completed. 65 look OK, 3 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_04_extract_template
Failure
128.43
test_templates.py

ContextSuite context=TestISOUsage>:setup
Error
0.00
test_usage.py

test_06_download_detached_volume
Failure
137.92
test_volumes.py

@blueorangutan package

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos6 ✔centos7 ✔debian. JID-2725

@blueorangutan test

@rhtyd a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-3542)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 24119 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr3239-t3542-kvm-centos7.zip
Intermittent failure detected: /marvin/tests/smoke/test_outofbandmanagement.py
Smoke tests completed. 68 look OK, 0 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

I see two approvals and a perfectly passed test suite. Is this still WIP?

ping @nvazquez

Thanks @DaanHoogland @borisstoyanov, this feature is completed

@rhtyd @nvazquez this one won't fwd-merge again due to moved files. I'll be looking at it later.

done. simpler than thought


Adding Abstract DiscreteSpaceDF

This PR adds an abstract class to define the interface for Discrete Spaces (Grids and Networks).
Some points to consider:

A default capacity can be set in the __init__, which can be overriden by a capacity set in set_cells. There might be some performance benefits if only a default capacity was allowed (I think we can consider changing it after we have the concrete implementation)
Distinction between "empty" and "free" cells. Empty cells are cells were no agent is currently present, free cells are cells where some agents may be present but there is some remaining capacity.

Sorry for the delay, I've been a bit busy the last few days