The scheme of the URI for the route should be case-insensitive

When I define the route URI with lower-case scheme, Spring Cloud Gateway handles the request perfectly.
    @Bean
    public RouteLocator myRoutes(RouteLocatorBuilder builder) {
        return builder.routes()
                .route(p -> p
                        .path("/post")
                        .uri("http://httpbin.org:80"))
                .build();
    }

$ curl -v -H Content-Type:application/json -X POST --data '{"hello":"world"}' http://<IP_ADDRESS>:8080/post
Note: Unnecessary use of -X or --request, POST is already inferred.
*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
* Connected to <IP_ADDRESS> (<IP_ADDRESS>) port 8080 (#0)
> POST /post HTTP/1.1
> Host: <IP_ADDRESS>:8080
> User-Agent: curl/7.58.0
> Accept: */*
> Content-Type:application/json
> Content-Length: 17
>
* upload completely sent off: 17 out of 17 bytes
< HTTP/1.1 200 OK
< Date: Mon, 12 Apr 2021 12:32:48 GMT
< Content-Type: application/json
< Content-Length: 566
< Server: gunicorn/19.9.0
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Credentials: true
<
{
  "args": {},
  "data": "{\"hello\":\"world\"}",
  "files": {},
  "form": {},
  "headers": {
    "Accept": "*/*",
    "Content-Length": "17",
    "Content-Type": "application/json",
    "Forwarded": "proto=http;host=\"<IP_ADDRESS>:8080\";for=\"<IP_ADDRESS>:62468\"",
    "Host": "httpbin.org",
    "User-Agent": "curl/7.58.0",
    "X-Amzn-Trace-Id": "Root=1-60743df0-6c9b05602847bfb75849b42e",
    "X-Forwarded-Host": "<IP_ADDRESS>:8080"
  },
  "json": {
    "hello": "world"
  },
  "origin": "<IP_ADDRESS>, <IP_ADDRESS>",
  "url": "http://<IP_ADDRESS>:8080/post"
}
* Connection #0 to host <IP_ADDRESS> left intact

But when I change the scheme to upper-case, Spring Cloud Gateway gives a "HTTP/1.1 200 OK" response with no content.
    @Bean
    public RouteLocator myRoutes(RouteLocatorBuilder builder) {
        return builder.routes()
                .route(p -> p
                        .path("/post")
                        .uri("HTTP://httpbin.org:80"))
                .build();
    }

$ curl -v -H Content-Type:application/json -X POST --data '{"hello":"world"}' http://<IP_ADDRESS>:8080/post
Note: Unnecessary use of -X or --request, POST is already inferred.
*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
* Connected to <IP_ADDRESS> (<IP_ADDRESS>) port 8080 (#0)
> POST /post HTTP/1.1
> Host: <IP_ADDRESS>:8080
> User-Agent: curl/7.58.0
> Accept: */*
> Content-Type:application/json
> Content-Length: 17
>
* upload completely sent off: 17 out of 17 bytes
< HTTP/1.1 200 OK
< content-length: 0
<
* Connection #0 to host <IP_ADDRESS> left intact

From RFC 1738,  the scheme of the URI should be case-insensitive.
2.1. The main parts of URLs

A full BNF description of the URL syntax is given in Section 5.

In general, URLs are written as follows:

   <scheme>:<scheme-specific-part>
A URL contains the name of the scheme being used () followed by a colon and then a string (the ) whose
interpretation depends on the scheme.

Scheme names consist of a sequence of characters. The lower case
letters "a"--"z", digits, and the characters plus ("+"), period
("."), and hyphen ("-") are allowed. For resiliency, programs
interpreting URLs should treat upper case letters as equivalent to
lower case in scheme names (e.g., allow "HTTP" as well as "http").

@aneasystone
I think code in NettyRoutingFilter class make this issue(the request not route to proxy service)
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
	URI requestUrl = exchange.getRequiredAttribute(GATEWAY_REQUEST_URL_ATTR);

	String scheme = requestUrl.getScheme();
	if (isAlreadyRouted(exchange) || (!"http".equals(scheme) && !"https".equals(scheme))) {
		return chain.filter(exchange);
	}
	.......
}

refer RFC 1738,I will make PR like bellow（bellow code works well）:
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
	URI requestUrl = exchange.getRequiredAttribute(GATEWAY_REQUEST_URL_ATTR);

	String scheme = requestUrl.getScheme();
	if (isAlreadyRouted(exchange) || (!"http".equalsIgnoreCase(scheme) && !"https".equalsIgnoreCase(scheme))) {
			return chain.filter(exchange);
	}
	.......
}

@ctlove0523 the code works well, thanks.

@aneasystone
I have make a PR for this issune，if this PR merged next version will works well.


Menu component - clicking outside the open menu should enable close menu (not only selecting a menuItem onClick action))

Is your feature request related to a problem? Please describe.
If a user opens a menu, and decides not to select any of the menuItem options, she wants to close the menu. For example in  material ui she can click anywhere on the screen and the open menu is closed.
Describe the solution you'd like
I would like the same feature as in material ui, that the menu closes  if you click anywhere else but on the menuItems. No further actions are executed.
Additional context
Add any other context or screenshots about the feature request here.

Thanks for requesting this feature. We'll have a look in the not to far away future :)

That would be nice. I was about to post a bug on the Menu component relating to this.
When trying to get a ref to the Menu component to implement this feature i get a React.forwardRef error and the ref stays null.
Maybe worth it's own bug, but I haven't gotten around to reproduce the error.


Build error on ARM64-Release

Version of Beast
v124
Version of Boost
1.65
Steps necessary to reproduce the problem
just including the header is enough:
#include <boost/beast.hpp>
Severity	Code	Description	Project	File	Line	Suppression State
Error	C3861	'__cpuid': identifier not found (compiling source file sources\test.cpp)	Lib	c:\src\beast\include\boost\beast\core\detail\cpu_info.hpp	49
Severity	Code	Description	Project	File	Line	Suppression State
Error	LNK2001	unresolved external symbol jump_fcontext  libboost_coroutine-vc140-mt-1_65.lib(coroutine_context.obj)
All relevant compiler information
msvc 140 ARM64 Release
It cannot find __cpuid on ARM64, how can I make it find? Why do I need cpu_info, can I skip it for a basic query operation?

looking around the internet, it seems we need to include <intrin.h> on windows
https://docs.microsoft.com/en-us/cpp/intrinsics/cpuid-cpuidex?view=msvc-160

I guess no

I believe this was fixed in a later version of Beast


[Feature Request] Add Digital Ocean to list of sponsors in Robyn Docs

We should add Digital Ocean to the list of sponsors in docs: https://sansyrox.github.io/robyn/#/sponsors
Can be added to the PR for docs improvement: https://github.com/sansyrox/robyn/pull/269 @sansyrox

Thanks @shivaylamba . Done! :D


Recurse _ to bypass square brackets, and usually-infix operators

Ref #8.
There may be weird edge cases I've missed, for instance what happens if _ appears inside [ ]?

Trying to think of edge cases, what should happen to each of these?
julia> @_ [rand(1:3.0, 5) for _ in 1:4] |> Int[sum(_^2, x) for x in __]
ERROR: MethodError: no method matching length(::var"#58#63")

julia> @_ rand(4) |> [ sum(__)       sum(_^2, __)
                       sum(_^3, __)  sum(_^4, __) ]
ERROR: syntax: invalid syntax sum(Core.getfield(#self#, :__1)) sum(literal_pow(^, _1, Core.apply_type(Val, 2)()), Core.getfield(#self#, :__1))

julia> using AxisKeys # understands functions inside indexing

julia> @_ wrapdims(randn(5), 10:10:50)[_>33] # here `>(33)` works
ERROR: syntax: all-underscore identifier used as rvalue

I moved the discussion to the end of Extended help. It's leaving space for discussing operators etc. (Which I can add to this PR if you don't mind not keeping things orthogonal?)

Sorry a bit swamped!

It's leaving space for discussing operators etc. (Which I can add to this PR if you don't mind not keeping things orthogonal?)

Right, I think it's actually non-orthogonal anyway - in my mind this is very much all one semantic change from "_ closure goes into the outermost-but-one" AST node to "_ goes into the outermost-but-one parenthesized thing".

The last commit handles the above comprehensions etc. I'm not entirely sure you will want this, easy to revert.

I think it's ok, but perhaps this should happen not by exclusion, but by inclusion: have a few things whitelisted to receive _ rather than a bunch of things blacklisted?

Sure, no rush.
I added what I had for operators onto this now.

perhaps this should happen not by exclusion, but by inclusion: have a few things whitelisted to receive _ rather than a bunch of things blacklisted?

Do you mean as a matter of documentation, or implementation?
To make the list comprehensions work (under "square brackets") this also recurses past un-collected generators. Which is, as you say, another move towards only treating ordinary function calls.

Thanks @mcabbott this is a great improvement. I've been slow enough getting to this that I thought it's important I added you as a collaborator — if you're using it regularly I'd hate for you to get blocked by my tardyness!
I think we could release a new version soon, but I've a sneaking suspicion that there's a few more breaking syntax changes required which we have yet to deal with. So I opened #12 to keep track of the more general problem.

No problem, it's good to have several eyes on things. And glad you like my weird examples :)
I see now I had one more commit locally about macros, but this may need more discussion anyway, will make a fresh PR.


Snapshot from Canvas

Hi
I'm trying to create an image from canvas. Don't know how to extract surface from canvas to do it, so i   do:
    SKSurface surface = null;
    private void OnPaint(object sender, SkiaSharp.Views.Forms.SKPaintGLSurfaceEventArgs e)
    {
        mapDrawing.DrawSample(e.Surface.Canvas, e.RenderTarget.Width, e.RenderTarget.Height);

        surface = e.Surface;
    }

And then try to extract the snapshot from surface in another method after the first paint occurence:
    if (surface == null)
        return null;

            var snap = surface.Snapshot();
            var data = snap.Encode();
            byte[] bytearray = data.ToArray();
    }

and I get the expection when invoking surface.Snapshot();
03-14 22:11:05.294 D/Mono    (12013): Found as 'sk_surface_new_image_snapshot'.
03-14 22:11:05.294 E/mono-rt (12013): Stacktrace:
03-14 22:11:05.294 E/mono-rt (12013):
03-14 22:11:05.302 E/mono-rt (12013):   at <unknown> <0xffffffff>
03-14 22:11:05.302 E/mono-rt (12013):   at (wrapper managed-to-native) SkiaSharp.SkiaApi.sk_surface_new_image_snapshot (intptr) <0x00037>
03-14 22:11:05.302 E/mono-rt (12013):   at SkiaSharp.SKSurface.Snapshot () [0x00006] in <5a812555f55f40c0a29350793a12a8ac>:0

Can you give ma a hand with this?
Thanks :)

Ah. What you are doing is keeping the surface around after the paint event. This cannot be done as the surface lives only as long as the method is running. To do what you are doing, take the snapshot inside the paint event.
Although, looking at your code, you probably can just create a new bitmap and call DrawSample on that:
var bmp = new SKBitmap(desiredWidth, desiredHeight)
var canvas = new SKCanvas(bmp);
mapDrawing.DrawSample(canvas, desiredWidth, desiredHeight);
var pixmap = bmp.PeekPixels();
var data = pixmap.Encode(SKEncodedImageFormat.Png, 100);


Fix migration anchor link

The migration link in the readme has a typo, this change just fixes that

Thanks 👍


OLS-622: provider-specific config for other providers (not just Azure OpenAI)

Description

OLS-622: provider-specific config for other providers (not just Azure OpenAI)
New code paths covered by new unit test

Type of change

[ ] Refactor
[x] New feature
[ ] Bug fix
[ ] CVE fix
[ ] Optimization
[ ] Documentation Update
[x] Configuration Update
[ ] Bump-up dependent library

Related Tickets & Documents

Related Issue #OLS-622
Closes #

Checklist before requesting a review

[x] I have performed a self-review of my code.
[x] PR has passed all pre-merge test jobs.
[ ] If it is a core feature, I have added thorough tests.

/lgtm

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

Project coverage is 95.31%. Comparing base (ed679d4) to head (8df8bf6).
Report is 24 commits behind head on main.

Additional details and impacted files

@@            Coverage Diff             @@
##             main     #982      +/-   ##
==========================================
+ Coverage   95.18%   95.31%   +0.12%
==========================================
  Files          54       54
  Lines        2120     2157      +37
==========================================
+ Hits         2018     2056      +38
+ Misses        102      101       -1

Files
Coverage Δ

ols/src/llms/providers/bam.py
100.00% <100.00%> (ø)

ols/src/llms/providers/openai.py
100.00% <100.00%> (ø)

ols/src/llms/providers/watsonx.py
100.00% <100.00%> (ø)

... and 1 file with indirect coverage changes

/retest

/lgtm

/approve


Paver Support

I was looking for a pure-python alternative to my makefile (which does some system-level initialization necessary for the package), and stumbled across paver. It wraps setuptools and offers makefile style syntax in setup.py.
I attempted to try it out with click (just to see if it would work) by this setup.py (which works with setuptools):
from paver.easy import *
from paver.setuputils import setup, find_packages

setup(
    name = "crib",
    version = "0.0.1",
    description = "testing.",
    packages = find_packages(),
    include_package_data=True,
    install_requires=[
        'Click',
    ],
    entry_points='''
        [console_scripts]
    crib=crib.bootstrap:cli
    ''',

... and installing in the virtual environment with:
python setup.py develop

Which (when used with regular setuptools) makes the crib command available in the virtual environment and runs correctly.
While running this with paver didn't generate any errors, attempting to run my command generates a whole slew of errors - and python setup.py develop -u won't uninstall the command that was installed.
Googling around for python click paver, I'm not finding any information - and searching both click in the paver repo and paver in the click repo turn up nothing.
So - just curious, should this work? If not, any chance support might happen in the future?

Don't have a solution for you, but an alternative…
I switched from Paver to Invoke, for the very reason it wraps and takes over setuptools – this just breaks too often, and paver-minilib is a general pain. See http://springerle.github.io/py-generic-project/ for a fully integrated example, including a Click __main__ stub.

Could you post the slew of errors you're getting?
Since alternatives allegedly work, I strongly suspect this to be a paver issue though.

Out of the scope for this, if you care about that, I would propose to create a separate package.


Handling of DNTs "DO NOT TRANSLATE" strings/text?

Hello MMT team,
Is there a way to tell MMT to protect some text and don't translate them whether this is text between tags or say "All CAPS", CamelCased, or concatenated text for example?
Thanks,
Mohamed

Hi @mzeidhassan ,
you can use any XML tag in order to specify DNTs. In fact XML is stripped out from the text and projected back after the translation untouched. For example you can translate the sentence:
Gilmour is the leader of the <dnt text="Pink Floyd" />

the translation is:
Gilmour è il leader dei <dnt text="Pink Floyd" />

At this point it should be very easy to parse the result and unwrap all the  tags replacing them with the inner text.
Hope this helps!

Thanks Davide for your answer! This is what I was looking for. I appreciate it. I am closing this issue.


Explore how to make default search box dependent on the current page

This issue aims to explore how to make the default search box be dependent on the page.

Checks were put into the current box item selection part of base.html and a corresponding pull request was submitted.

https://github.com/uchicago-cs/chigame/pull/368

Closed after successfully merging and closing PR https://github.com/uchicago-cs/chigame/pull/368. Thanks to @joshuamonroe for reviewing the PR.

Issue Score: Excellent


.bash_profile needs to be sourced after oh-my-zsh updates

System Spec: OSx Yosemite 10.10.2
I noticed that after each oh-my-zsh update ENV vars set in ~/.bash_profile are no longer on my PATH.
$ echo $JAVA_HOME
// it's gone

Simply sourcing .bash_profile fixes the issue:
$ source ~/.bash_profile

So it's a very minor inconvenience with a simple work around.I don't think oh-my-zsh update would require heightened privileges to source .bash_profile post update (I could be wrong).

That's not how you should solve it. .bash_profile is a file read only by bash, which is not compatible with zsh. If we start sourcing .bash_profile bad things will start to happen. Instead, you should copy those ENV vars to the .zshrc file, preferably at the end of it.
Not an issue, please close.

It didn't occur to me to put env vars in .zshrc. Good enough. Thanks!

Just added "source ~/.bash_profile" to my .zshrc and everything is working fine now even when I open new tabs.

@teledirigido: you save me hours of frustration and began considering using instant solution such as MAMP!

@teledirigido @zuhrasofyan to save myself from managing variables and aliases here and there, I did the same. Perhaps, it is a only short-term solution. Eventually, I think that I will extract the harmless variable and alias statements into a third .sh file, which will then be sourced by .bash_profile and .zshrc respectively.

Yes, After i installed, i can't open python or  spyder in the terminal. and i use the command

source ~/.bash_profile
That solved my problem

@mcornella how is the best way to do it ? I had the same problems and I'm using the source ~/.bash_profile as a workaround.

If we start sourcing .bash_profile bad things will start to happen
such as ?

thanks

The best way is source ~/.bash_profile at the end of your .zshrc file. Nothing bad will happen. Copying all the content of .bash_profile is not smart, because you have to maintain two file in synch in case you want remove zsh in the future.

When I put source ~/.bash_profile into the .zshrc, every time I open the terminal, I will get a waring, that is very anoying!

thanx

The way to do it is having one file that is both compatible with bash and zsh, and sourcing it in .bash_profile / .bashrc and .zshrc. .bash_profile can have syntax that is only compatible with bash, so be careful.


Controls are vertically flipped

Spent some time debugging trying to find the largest rendering bottle neck and I can confirm it is the gaussian sorting.
Another option to the GPU compute I think would be to create a BVH data structure or another similar data structure like an octree (to sort the Gaussians in blocks).
For the BVH I think you could use https://github.com/gkjohnson/three-mesh-bvh
After commenting out the sorting code (no real Gaussian splatting but useful to see what's the best performance we could get) the controls with the mouse feel smoother but helped me notice that the vertical dragging feels inverted.

You're right about dragging, will fix in next release.

Fixed in #10


fix: sanitize session data to prevent max cookie size issue

Should fix https://github.com/mitchelvanbever/remix-auth-supabase/issues/15
With some OAuth provider, we hit the 4kb cookie size limit  due to huge Supabase Session datas.
I propose to sanitize what I think is useless data. (session.user?.identities ==> list off all supabase identites linked to the user, I guess)
Open to discuss :p

Can be replaced by https://github.com/mitchelvanbever/remix-auth-supabase/pull/20

Closing in favor of #20


Empty objects

Hi there!
I'm having an issue using the following models:
import UIKit
import ObjectMapper
import ObjectMapper_Realm
import RealmSwift

class Campaign: Object, Mappable {

    var id: String = ""
    var name: String = ""
    var image_url: String = ""
    var start_date: String = ""
    var end_date: String = ""
    var total_hours: Int = 0
    var latitude: String = ""
    var longitude: String = ""
    var media: List<Media> = List<Media>()

    convenience required init?(map: Map) {
        self.init()
    }

    func mapping(map: Map) {
        id <- map["id"]
        name <- map["name"]
        image_url <- map["image_url"]
        start_date <- map["start_date"]
        end_date <- map["end_date"]
        total_hours <- map["total_hours"]
        latitude <- map["lat"]
        longitude <- map["lng"]
        media <- (map["media"], ListTransform<Media>())
    }
}

class Media: Object, Mappable {

    var id: String = ""
    var content_url: String = ""
    var content_type: String = ""
    var qr_code_url: String = ""
    var slogan: String = ""
    var cover_photo_url: String = ""

    convenience required init?(map: Map) {
        self.init()
    }

    func mapping(map: Map) {
        id <- map["id"]
        content_url <- map["content_url"]
        content_type <- map["medium_type"]
        qr_code_url <- map["qr_code"]
        slogan <- map["slogan"]
        cover_photo_url <- map["cover_photo_url"]
    }
}

What i'm trying to achieve is to download the content of the urls from both models, actually downloading the content from a Campaign object works, the problem comes when i try to use a media object and all of the values are empty. I have tried declaring the variables as @objc dynamic, I even print the values of the object using Swift.debugPrint(...) and the values are printed but when trying to use the values they're just not there.
Hope someone can help.
Thanks!

Please take a look at the Realm Swift property cheatsheet to see how you should declare properties for Realm Swift to persist. In particular, you must declare properties with non-generic Swift types (String, Int, and so forth) using @objc dynamic var, while properties of generic Swift types (List<T>, RealmOptional<Int>) using let. This problem alone can result in the default values of your class's properties being returned unexpectedly (empty strings, in your case).

The models now looks like the following, but the problem still happens. I've tried to declare my list with let instead of var but because of the ListTransform of the mapping function i am not allowed. Any other ideas of what might be happening?
import UIKit
import ObjectMapper
import ObjectMapper_Realm
import RealmSwift

class Campaign: Object, Mappable {

    @objc dynamic var id = ""
    @objc dynamic var name = ""
    @objc dynamic var image_url = ""
    @objc dynamic var start_date = ""
    @objc dynamic var end_date = ""
    @objc dynamic var total_hours = 0
    @objc dynamic var latitude = ""
    @objc dynamic var longitude = ""
    var media = List<Media>()

    convenience required init?(map: Map) {
        self.init()
    }

    func mapping(map: Map) {
        id <- map["id"]
        name <- map["name"]
        image_url <- map["image_url"]
        start_date <- map["start_date"]
        end_date <- map["end_date"]
        total_hours <- map["total_hours"]
        latitude <- map["lat"]
        longitude <- map["lng"]
        media <- (map["media"], ListTransform<Media>())
    }
}

class Media: Object, Mappable {

    @objc dynamic var id = ""
    @objc dynamic var content_url = ""
    @objc dynamic var content_type = ""
    @objc dynamic var qr_code_url = ""
    @objc dynamic var slogan = ""
    @objc dynamic var cover_photo_url = ""

    convenience required init?(map: Map) {
        self.init()
    }

    func mapping(map: Map) {
        id <- map["id"]
        content_url <- map["content_url"]
        content_type <- map["medium_type"]
        qr_code_url <- map["qr_code"]
        slogan <- map["slogan"]
        cover_photo_url <- map["cover_photo_url"]
    }
}

Can you please share the code you're using that creates / retrieves the objects and demonstrates retrieving the empty values rather than the values that you stored?

var mediaToDownload: [Media] = []
@IBAction func downloadContentButtonPressed(_ sender: Any) {
        self.apiManager.campaigns { (campaigns) in
            if(campaigns != nil) {
                try! self.realm.write {
                    self.realm.delete(self.realm.objects(Campaign.self))
                    self.realm.delete(self.realm.objects(Media.self))

                    for camp in campaigns! {
                        self.realm.add(camp)
                        self.campaignsToDownload.append(camp)

                        for medium in camp.media {
                            Swift.debugPrint("medium", medium)
                            self.mediaToDownload.append(medium)
                            Swift.debugPrint(self.mediaToDownload)
                        }

                    }
                    `breakpoint1`
                    Swift.debugPrint(self.realm.objects(Campaign.self))
                }
            }
           `breakpoint2`
            self.downloadContent()
        }
    }

Basically i make a request for the objects, clean local database and then store them in realm and in an array that works like a download queue. I have two different queues, one for campaings and one for media, the first does work correctly and the objects have the correct values, on the other hand the media list hast empty values.
When I print the values on both "Swift.debugPrint" the values are printer, but at both breakepoints the array does contain objects, but in an empty state.

?


stripping dead, unlinked code

When running eosiocpp on hello.cpp, if I add a function like:
int whatevs(){
   int x = 433242;
   return x;
}

It doesn't actually strip the function away, adding a few bytes.
Is there a way to strip dead code on hello.cpp? This makes it impossible to use a standard library of sorts - because I'd have to comment out individual functions or add an #ifdef before every function in the library and enabling them with #define if I want to use them

This is not a something unexpected. In the C/C++ perspective, it's very difficult to tell if a function is not being used, as a function can be referenced and called in an external way. like:
extern void func(); // this expects func is defined somewhere else

This will only make the wast file a little bit larger, but it won't make you impossible to use the standard sort function. Actually, you can find std::sort is already used in the system contract voting.cpp.


No QR code or link available to test while editing properties.

There is simply no code or link available to access to the 3d environment for testing the individual properties prior to generating the QR code.  Tested on multiple browsers without adblock.
https://prnt.sc/tOhJSR1mlIso

Short URL error: {
  "error": {
    "code": 400,
    "message": "We could not match param 'https://wwgc.firebaseapp.com/3d.html?u=Ipm7A3j3blaoYLP7FqRvXq3aKRE3' with whitelisted URL patterns in this Google project. [https://support.google.com/firebase/answer/9021429] [https://support.google.com/firebase/answer/9021429]",
    "status": "INVALID_ARGUMENT"
  }
}


TB1EPI flip angles meaning

@ChristophePhillips

Sorted in my pull request. Hopefully.

#36 will resolve this.

#36 will resolve this.


Fixes for employment condition and stress level

Previously, the SDoH HSRN submodule would change employment condition every wellness visit, even if the actual condition did not change.
This change keeps the same condition across wellness visits of the status does not change.
There was a similar problem with stress level. That is also fixed by this change.

All of this code, plus more, is in #1277. This will likely be closed in favor of that PR.

Closing. This was included in #1277


[Bug]User setting for action on load gets reset when the action gets updated and gets re-evaluated according to the bindings

Description
An action's data is dynamically bound to a widget. This leads to the action getting identified as an on load action. The developer user does not want this action to run on page load. The user turns off this setting. So far so good.
When the developer user updates the action configuration, this leads to the action again getting marked for page on load.

Hi @trishaanand
As per discussion on the execution of the scenario I observe  that the issue still exists.Hence reopening the issue

Closing the issue as it is working as expected

Closing the issue as it is working as expected


[1.12.2] Constant Console Spam mekanism.common.tile.TileEntityQuantumEntangloporterremoval without registration

The below lines and ones identical but another machine are continually spammed on the server console, this relates to #4874  & #4955 All machines listed when it spams the message quite frequently, exist in the locations specified & majority of the entire base is powered from an Entangloporter
Forge v*.2.2625
IC2 v2.8.54-112
Mekanism v<IP_ADDRESS>0
[19:28:21] [ic2-poolthread-1/WARN] [ic2.EnergyNet]: Tile mekanism.common.tile.TileEntityQuantumEntangloporter@76110a89 (dim 0: 2601/84/-1074) removal without registration
[19:28:21] [ic2-poolthread-1/WARN] [ic2.EnergyNet]: Tile mekanism.common.tile.TileEntityQuantumEntangloporter@54e0f1e (dim 0: 2625/77/-1054) removal without registration

@sfPlayer1 can you offer any help with this? As far as we can tell, we only register and de-register once
https://github.com/aidancbrady/Mekanism/blob/master/src/main/java/mekanism/common/tile/prefab/TileEntityElectricBlock.java#L59

The check is unsafe, IC2 doesn't process additions/removals immediately to work around various TE lifecycle issues. This should work without trickery on your side.

i've noticed this occuring in server startup as well, not sure if it has any bearing on anything:
[18:55:42] [Server thread/INFO] [FML/]: The mod mekanism has attempted to allocate a chunkloading ticket beyond it's currently allocated maximum: 200

hmm, how many mek blocks with Anchor upgrades do you have in that world?

I couldnt even start to guess .. i know 1 base is practically completely powered by it, a handful of quarries and who knows how many other ppl r using them

Seems like someone is spamming the upgrades (the miner/teleporter/entangloporter doesnt chunkload unless it has that updgrade)
Currently it uses generic per-mod tickets rather than per-user-profile tickets, so you'd have to increase the number in the forge config.

Quite a lot of entangloporter's are being used

Any further information on this at all?

emmm has the same problem as that.
as far as I know, this problem might cause by chunk unload on server, I have installed mek  with IC2 on a personal server with my friend, and the spam message was appeared while chunk, which contains mek blocks, was unloaded.
something seems like should be registed to removed while chunk unloading and registed to be active while chunk loading?
I'm not sure, is that the rule(or problem) of IC2? 😅

IC2 has been made aware of the issue

whooops, hope fix that soon XD

The immediate cause is most likely the linked Mekanism code, nothing in IC2. It's quite likely that the previous registration still hangs in IC2's queue if chunks get reloaded, so getTile doesn't reflect the addition yet. Coupling the ENet (de-)registrations to the TE lifecycle (onLoad, onChunkUnload, invalidate) should be all that's needed.

Guess i'll just wait for an update at some point :D

try this build http://maven.thiakil.com/mekanism/Mekanism/1.12.2-<IP_ADDRESS>ab57d0/

Still getting the spam using this version

@sfPlayer1 the linked build in my post above only calls the register/deregister on lifecycle events (no special checks) yet Morpheus appears to still be getting the problem
And the issue was closed on your tracker with absolutely no useful comment.

I have a local copy of the server, so i can run a new instance with newer logs quite easily and happy to provide them.

I got this issue aswell, and upo nstarting my server this spams the console:
15.04 14:29:22 [Server] Server thread/WARN [ic2.EnergyNet]: Tile mekanism.generators.common.tile.TileEntitySolarGenerator@4ab0cf9f (dim 2: 35/255/34) was unloaded in grid update (ADDITION)

Here is the log with the logging debug from thiakill's mekanism file
https://gist.github.com/Morpheus1101/127d2c2242ba99954cc346d7894d82b6
Basically you see a lot of this occuring:
[07:08:58] [ic2-poolthread-2/WARN] [ic2.EnergyNet]: Tile mekanism.common.tile.TileEntityFactory@75406943 (dim 0: -899/69/1238) removal without registration [07:08:58] [ic2-poolthread-2/WARN] [ic2.EnergyNet]: Tile mekanism.common.tile.TileEntityFactory@69918b59 (dim 0: -899/69/1239) removal without registration [07:08:58] [ic2-poolthread-2/WARN] [ic2.EnergyNet]: Tile mekanism.common.tile.TileEntityFactory@1649820e (dim 0: -899/69/1237) removal without registration [07:09:42] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.onChunkUnload [07:09:42] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.deregister [07:09:42] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.onChunkUnload [07:09:42] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.deregister [07:09:42] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.onChunkUnload [07:09:42] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.deregister [07:09:42] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.onLoad [07:09:42] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.register [07:09:42] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.invalidate [07:09:42] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.deregister [07:09:42] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.onLoad [07:09:42] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.register [07:09:42] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.invalidate [07:09:42] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.deregister [07:09:42] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.onLoad [07:09:42] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.register [07:09:42] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.invalidate [07:09:42] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.deregister [07:09:42] [ic2-poolthread-3/WARN] [ic2.EnergyNet]: Tile mekanism.common.tile.TileEntityFactory@24df7bac (dim 0: -899/69/1238) removal without registration [07:09:42] [ic2-poolthread-3/WARN] [ic2.EnergyNet]: Tile mekanism.common.tile.TileEntityFactory@6387ce2b (dim 0: -899/69/1239) removal without registration [07:09:42] [ic2-poolthread-3/WARN] [ic2.EnergyNet]: Tile mekanism.common.tile.TileEntityFactory@652b22a2 (dim 0: -899/69/1237) removal without registration

It's odd that it logs invalidate() invocations. MC calls invalidate only when a block was removed/replaced, not for chunk unloads.
The logging from Mekanism unfortunately doesn't contain the position, so I can't correlate it properly with other messages. Please add it, using the same format as IC2 to make ctrl+f work.
For IC2 the config setting debug/logEnetApiAccesses appears to be disabled. It logs right at the API edge, making issues easier to dissect.

Yeah I realised that after I saw the log myself, I've since sent Morpheus a build that will include the instance identity code the same way ic2 displays it

With the new code form thiakill and the config change in IC2, re-ran the server and the full outout log is @ https://gist.github.com/Morpheus1101/127d2c2242ba99954cc346d7894d82b6 (updated with current information)
Brief snippet is:

[16:50:41] [ic2-poolthread-4/WARN] [ic2.EnergyNet]: Tile mekanism.common.tile.TileEntityFactory@66215f22 (dim 0: -899/69/1238) removal without registration
[16:50:41] [ic2-poolthread-4/WARN] [ic2.EnergyNet]: Tile mekanism.common.tile.TileEntityFactory@60da08b3 (dim 0: -899/69/1239) removal without registration
[16:50:41] [ic2-poolthread-4/WARN] [ic2.EnergyNet]: Tile mekanism.common.tile.TileEntityFactory@69e1010e (dim 0: -899/69/1237) removal without registration
[16:51:26] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.onChunkUnload
[16:51:26] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.deregister
[16:51:26] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.onChunkUnload
[16:51:26] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.deregister
[16:51:26] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.onChunkUnload
[16:51:26] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.deregister
[16:51:26] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.onLoad
[16:51:26] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.register
[16:51:26] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.invalidate
[16:51:26] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.deregister
[16:51:26] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.onLoad
[16:51:26] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.register
[16:51:26] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.invalidate
[16:51:26] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.deregister
[16:51:26] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.onLoad
[16:51:26] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.register
[16:51:26] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.invalidate
[16:51:26] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.deregister
[16:51:26] [ic2-poolthread-2/WARN] [ic2.EnergyNet]: Tile mekanism.common.tile.TileEntityFactory@16dea7df (dim 0: -899/69/1238) removal without registration
[16:51:26] [ic2-poolthread-2/WARN] [ic2.EnergyNet]: Tile mekanism.common.tile.TileEntityFactory@10a43b55 (dim 0: -899/69/1239) removal without registration
[16:51:26] [ic2-poolthread-2/WARN] [ic2.EnergyNet]: Tile mekanism.common.tile.TileEntityFactory@4dbeaae1 (dim 0: -899/69/1237) removal without registration

-899/69/1237 is a Basic Enriching Factory
-899/69/1239 is a Basic Smelting Factory
-899/69/1238 is a Basic Infusing factory
All of the machines are powered using DraconicEvolution as seen below by connecting a DE Wyvern Wierless Energy Crystal directly to the machines without using any osrt of Conduits, pipes or anything else.

Something is definitely weird about your setup
[17:16:31] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.onLoad @2ae554e
[17:16:31] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.register @2ae554e
[17:16:31] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.invalidate @2ae554e

invalidate shouldnt be called less than 1 second after onLoad...

Please also upload the matching debug.log (or fml-server-latest.log for old Forge), IC2 logs the API accesses with too low severity to show up in the regular log.
Assuming Mekanism does ENet unregistrations from invalidate, we may be able to obtain a stack trace by turning debug/logEnetApiAccessTraces on. Very curious what the cause is there..

We're currently trying to work that out. Seems related to coremods unfortunately
[17:59:00] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.deregister @24b7ac97
[17:59:00] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.onLoad @40bcc7bb
[17:59:00] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.register @40bcc7bb
[17:59:00] [Server thread/INFO] [Mekanism]: TileEntityElectricBlock.invalidate @40bcc7bb
java.lang.Exception: null
        at mekanism.common.tile.prefab.TileEntityElectricBlock.func_145843_s(TileEntityElectricBlock.java:169) [TileEntityElectricBlock.class:?]
        at net.minecraft.world.chunk.Chunk.func_177426_a(Chunk.java:830) [axw.class:?]
        at net.minecraft.world.World.func_72939_s(World.java:1888) [amu.class:?]
        at net.minecraft.world.WorldServer.func_72939_s(WorldServer.java:613) [oo.class:?]
        at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:765) [MinecraftServer.class:?]
        at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:396) [nz.class:?]
        at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:666) [MinecraftServer.class:?]
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:524) [MinecraftServer.class:?]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_171]

So far im about half way through the list of coremods to determine which is the cause

Not necessarily/unlikely, the loop processing addedTileEntityList is probably doing this. The obvious question is why TEs with conflicting positions are in that list.
Deobf stack trace:
java.lang.Exception: null
        at mekanism.common.tile.prefab.TileEntityElectricBlock.invalidate(TileEntityElectricBlock.java:169) [TileEntityElectricBlock.class:?]
        at net.minecraft.world.chunk.Chunk.addTileEntity(Chunk.java:830) [axw.class:?]
        at net.minecraft.world.World.updateEntities(World.java:1888) [amu.class:?]
        at net.minecraft.world.WorldServer.updateEntities(WorldServer.java:613) [oo.class:?]
        at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:765) [MinecraftServer.class:?]
        at net.minecraft.server.dedicated.DedicatedServer.updateTimeLightAndEntities(DedicatedServer.java:396) [nz.class:?]
        at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:666) [MinecraftServer.class:?]
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:524) [MinecraftServer.class:?]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_171]<input>

It may be the best approach to inject a list wrapper (abstract list/collection delegating to what was there before) in addedTileEntityList that logs whenever it encounters a TE with one of the interesting positions.

Removing all the coremods appeared to alleviate the problem, that's why we think that ;)

This is the list of Coremods total:

WARNING: coremods are present:
CTMCorePlugin (CTM-MC1.12-<IP_ADDRESS>.jar)
EnderCorePlugin (EnderCore-1.12.2-0.5.20.jar)
LibLoader (# LibLoader.jar)
OpenModsCorePlugin (OpenModsLib-1.12.2-0.11.5.jar)
AstralCore (astralsorcery-1.12.2-1.8.5.jar)
LoadingPlugin (Quark-r1.4-123.jar)
Do not report to Forge! Remove FoamFixAPI (or replace with FoamFixAPI-Lawful) and try again. (foamfix-0.9.7-1.12.2-anarchy.jar)
Plugin (NotEnoughIDs-<IP_ADDRESS>.jar)
HammerCoreCore (HammerCore-1.12.2-<IP_ADDRESS>.jar)
MalisisCorePlugin (malisiscore-1.12.2-6.4.0.jar)
ShetiPhian-ASM (shetiphiancore-1.12.0-3.5.6.jar)
FMLPlugin (elulib-0.1.12.jar)
Inventory Tweaks Coremod (InventoryTweaks-1.64-dev.jar)
ForgelinPlugin (Forgelin-1.6.0.jar)
CoreMod (TickProfiler-1.12-0.0.4.jar)
LoadingPlugin (ResourceLoader-MC1.12.1-1.5.3.jar)
LoadingPlugin (RandomThings-MC1.12.2-4.1.5.jar)
CoreMod (Aroma1997Core-1.12.2-<IP_ADDRESS>.b148.jar)
TransformerLoader (OpenComputers-MC1.12.2-<IP_ADDRESS>.jar)
IvToolkit (IvToolkit-1.3.3-1.12.jar)
IELoadingPlugin (ImmersiveEngineering-0.12-80-core.jar)
SecretRoomsMod-Core (secretroomsmod-1.12.2-5.6.2.jar)

This is whats left so far untested:

WARNING:
coremods are present:
Do not report to Forge! Remove FoamFixAPI (or replace with FoamFixAPI-Lawful) and try again. (foamfix-0.9.7-1.12.2-anarchy.jar)
Plugin (NotEnoughIDs-<IP_ADDRESS>.jar)
HammerCoreCore (HammerCore-1.12.2-<IP_ADDRESS>.jar)
MalisisCorePlugin (malisiscore-1.12.2-6.4.0.jar)
ShetiPhian-ASM (shetiphiancore-1.12.0-3.5.6.jar)
FMLPlugin (elulib-0.1.12.jar)
Inventory Tweaks Coremod (InventoryTweaks-1.64-dev.jar)
ForgelinPlugin (Forgelin-1.6.0.jar)
TransformerLoader (OpenComputers-MC1.12.2-<IP_ADDRESS>.jar)

NotEnoughIDS is only mod left and the spam continued and being what the mod does i cant see it being responsible

Traced it down with help from thiakill to be CompactMachines thats the cause, whilst the spam still occurs when the world 1st initially loads, subsequent spam does not occur

In at least one case it appears to be a ghostloading issue caused by Draconic
at mekanism.common.tile.prefab.TileEntityElectricBlock.readFromNBT(TileEntityElectricBlock.java:182) [TileEntityElectricBlock.class:?]
at mekanism.common.tile.prefab.TileEntityMachine.readFromNBT(TileEntityMachine.java:158) [TileEntityMachine.class:?]
at mekanism.common.tile.TileEntityFactory.readFromNBT(TileEntityFactory.java:787) [TileEntityFactory.class:?]
at net.minecraft.tileentity.TileEntity.create(TileEntity.java:120) [avj.class:?]
at net.minecraft.world.chunk.storage.AnvilChunkLoader.loadEntities(AnvilChunkLoader.java:494) [aye.class:?]
at net.minecraftforge.common.chunkio.ChunkIOProvider.syncCallback(ChunkIOProvider.java:97) [ChunkIOProvider.class:?]
at net.minecraftforge.common.chunkio.ChunkIOExecutor.syncChunkLoad(ChunkIOExecutor.java:94) [ChunkIOExecutor.class:?]
at net.minecraft.world.gen.ChunkProviderServer.loadChunk(ChunkProviderServer.java:118) [on.class:?]
at net.minecraft.world.gen.ChunkProviderServer.loadChunk(ChunkProviderServer.java:89) [on.class:?]
at net.minecraft.world.gen.ChunkProviderServer.provideChunk(ChunkProviderServer.java:135) [on.class:?]
at net.minecraft.world.World.getChunkFromChunkCoords(World.java:309) [amu.class:?]
at net.minecraft.world.World.getChunkFromBlockCoords(World.java:304) [amu.class:?]
at net.minecraft.world.World.getTileEntity(World.java:2396) [amu.class:?]
at com.brandon3055.draconicevolution.blocks.energynet.tileentity.TileCrystalBase.balanceLinkedDevices(TileCrystalBase.java:120) [TileCrystalBase.class:?]
at com.brandon3055.draconicevolution.blocks.energynet.tileentity.TileCrystalBase.update(TileCrystalBase.java:93) [TileCrystalBase.class:?]
at com.brandon3055.draconicevolution.blocks.energynet.tileentity.TileCrystalDirectIO.update(TileCrystalDirectIO.java:42) [TileCrystalDirectIO.class:?]
at net.minecraft.world.World.updateEntities(World.java:1832) [amu.class:?]
at net.minecraft.world.WorldServer.updateEntities(WorldServer.java:613) [oo.class:?]
at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:765) [MinecraftServer.class:?]
at net.minecraft.server.dedicated.DedicatedServer.updateTimeLightAndEntities(DedicatedServer.java:396) [nz.class:?]
at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:666) [MinecraftServer.class:?]
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:524) [MinecraftServer.class:?]

I don't have Compactmachines or Draconic and i get the error o nboth the initial world load and whenever an area with those problematic machines is loaded

TileEntity.invalidate() should never get invoked unless the block was actually mined up (very unusual deliberate corner cases aside). invalidate is not the direct opposite of validate, the pair is really validate vs (invalidate XOR onChunkUnload).

I think I've worked it out, and is potentially a Forge caused bug.
Forge sets net.minecraft.world.World#processingLoadedTiles to true before ticking TEs starts, so if a chunk is loaded by a ticking TE, the TEs that get added to the world by the chunk/chunkProvider go into the addedTileEntityList list and then processed further down.
During that processing it gets sent back to the Chunk's addTileEntity which sees that there is already a TE there, and so invalidates it (as there seems to be no instance check).
It does then  validate() it though. So I guess we could do the IC2 message there instead of onLoad.
All the stacktraces Morpheus have shown me that Mek's calls to IC2 eNet registration are balanced out with de-registration however, so I'm stumped as to why IC2 is complaining (I'm sure I remember seeing code that handled a pending reg being cancelled).

@TomTheHero Any mod can trigger the edge case.
To all with this problem: It would appear we have solved the underlying issue, and it will be in the next release. When that is I cannot say. In the meantime, you will need to use a chunkloader on the affected positions.

It would be great if mekanism changelogs were available

Thanks to all for workin on this and after a long effort an debugging, knocked this one off the bug list, much appreciated


Merge master-qa

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.2 out of 3 committers have signed the CLA.:white_check_mark: ClaudeROSSI:white_check_mark: LucasBrazi06:x: mahdibenromdhanemahdibenromdhane seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Please note that this is not an official assignment answer sheet

This res is my personal belongs. Meantime, I public it for some students to make a brief check. You should not commit issues to this res because it is not an official assignment answer sheet.

To anyone who came here.

I decide to leave this issue to make a tunnel where someone can release problems about Course Learning.


Adding an owner stopped working

Add an owner and increase the policy
It fails with an error:

Error calculating ERC721 transfer data for adding a Safe owner (You must provide the json interface of the contract when instantiating a contract object.)

I wasn't able to reproduce this. Could you please specify the version of the Safe and the network?

I've completely deleted my node_modules and installed everything again, and it works fine now.
Sorry for the false alarm and thanks for checking @germartinez!

@usame-algan, didn't you encounter similar issues though?


Postgres

Pull Request Test Coverage Report for Build 160

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 100.0%

Totals

Change from base Build 158:
0.0%

Covered Lines:
30

Relevant Lines:
30

💛  - Coveralls


Remove sudo instructions from pip

sudo pip install virtualenv
replace with
pip --user install virtualenv

See also #141

Close it as we removed this part and kept Anaconda only.


transaction status call missing from the latest driver

bigchaindb-driver version: 0.5.0a4
bigchaindb server version (bigchaindb -v): branch alpha-3
Python version: 3.5.2
Operating System: Ubuntu 16.04.3 LTS

The trnasaction.status call is missing from the driver.

Hi @agwego, when you send a transaction to the network, the driver will wait for that transaction to be included in a block (this is true since version 0.5.0a2). If there is a problem, than the call will raise an exception.
I'll keep this issue open so we remember to be more explicit in the documentation and examples.

You're missing the point.
I have code in production against BigchainDB 1.3, I'm in the process of migrating that code to 2.X, I now have to make the decision do I branch my code which is annoying, or work around the issue, because you changed the API and now my code doesn't work with 2.X. This includes Python, Java, Node.js code bases. I've tweaked your codebase quite a bit, because your logging leaves a lot to be desired.

Hey @agwego I've opened a PR to show how to check for the status of a transaction. If you're interested you can give some feedback.


feat(types): make type more accurate

size-limit report 📦

Path
Size

dist/es/index.js
-9 B (0%)

dist/cjs/index.js
-32 B (0%)

:tada: This PR is included in version 0.1.26 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


csview's trim_left and trim_right implicitly assume LTR text

see https://github.com/rust-lang/rust/issues/30459

Thanks, liigo! Since these are new, I simply renamed them to trim_start() and trim_end() as suggested. (also matches with starts_with() and ends_with() functions).
I also renamed all the _right(s, len) functions to _tail(s, len) (because _end() is used for iterators).


Missing argument error in trainer.py when setting lr_scheduler

In trainer.py (line 101) there is a missing argument. Here's how I define optimiser and lr_scheduler in train.py:
optimizer = torch.optim.Adam(params, lr=0.001, weight_decay=0.0001)
scheduler = lr_scheduler.ReduceLROnPlateau(optimizer, factor=0.1, patience=6, verbose=1, min_lr=0.000001)
trainer = Trainer(
    model,
    criterion=BCEDiceLoss(),
    optimizer=optimizer,
    lr_scheduler=scheduler,
    epochs=500
)

That throws the following error:
File "/home/seg/backbones_unet/utils/trainer.py", line 127, in _train_one_epoch
    self.lr_scheduler.step() # this was originally: self.lr_scheduler.step()
TypeError: step() missing 1 required positional argument: 'metrics'

If I then set line 101 to self.lr_scheduler.step(loss) that seems to fix the error. However, when I start training I get this:
Training Model on 500 epochs:   0%|                            | 0/500 [00:00<?, ?it/s
Epoch 00032: reducing learning rate of group 0 to 1.0000e-04.  | 31/800 [00:03<00:54, 14.03 training-batch/s, loss=1.1]
Epoch 00054: reducing learning rate of group 0 to 1.0000e-05.  | 53/800 [00:04<00:51, 14.38 training-batch/s, loss=1.09]
Epoch 00062: reducing learning rate of group 0 to 1.0000e-06.  | 61/800 [00:05<00:54, 13.45 training-batch/s, loss=1.06]
^Epoch 1:  13%|██████████████████                              | 104/800 [00:08<00:58, 11.84 training-batch/s, loss=1.05]

I haven't seen that before when training models with code from other repos. If that is normal, then all is OK, I just wanted to report the missing argument error in trainer.py.

Just to add to this, even with the lr_scheduler set, the learning rate never seems to change during training.

Hello @bc-bytes, firstly, thank you for bringing up the issue. The library can not support the "REDUCELRONPLATEAU" and "COSINEANNEALINGWARMRESTARTS" lr schedulers. However, all other schedulers are supported. Therefore, receiving this error message is quite normal. If you use either of these two schedulers, the learning rate will not change. I intend to add additional support soon, thus making all lr scheduler classes available. Until then, you may use all other schedulers except for these two.
Supported Schedulers:

LAMBDALR
MULTIPLICATIVELR
STEPLR
MULTISTEPLR
CONSTANTLR
LINEARLR
EXPONENTIALLR
POLYNOMIALLR
COSINEANNEALINGLR
CHAINEDSCHEDULER
SEQUENTIALLR
CYCLICLR
ONECYCLELR

Many thanks for the suggestions. However, I am currently producing a set of baseline results from other repositories, and I have trained all those models using ReduceLROnPlateau, so changing the scheduler type would mean that the results would not be comparable to my previous ones.


More HttpClientResponse Uint8List fixes

Description
Follow-on change to https://github.com/flutter/flutter/pull/34863 (see that change
for context), whereby we ensure that we're properly dealing in Uint8List.
These necessary changes would have been caught by disabling implicit casts
in our analysis options.
Related Issues
dart-lang/sdk#36900
https://github.com/flutter/flutter/issues/13815
Tests
n/a - this is low-level testing code already
Checklist

[x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
[x] I signed the [CLA].
[x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
[x] I updated/added relevant documentation (doc comments with ///).
[x] All existing and new tests are passing.
[x] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change

[ ] Yes, this is a breaking change (Please read [Handling breaking changes]). Replace this with a link to the e-mail where you asked for input on this proposed change.
[x] No, this is not a breaking change.


support for new Nexenta version

The new Nexenta version 4.0.5-FP1 don't work whit old URL format.

Hi Afontscd,
Unfortunately I don't have a Nexenta 4.0 system to test against. I noticed in your commit it says "self.url = '%s://%s:%s/rest/nms/' % (protocol, nexenta['ip'], porta)"

Just wanted to thank you for your patch @afontscd
This fixed it for me too. We also upgraded our system a few days ago

Also fixed it for me. Thanks!

#metoo


[admin] Removing empty open spec pages

No product team members have made a public "open spec" part of the development process, instead favoring the preview reference docs as a way to solicit customer feedback. This PR removes the unused open spec pages and references.

Docs Build status updates of commit 0f91351:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/docfx.json
:white_check_mark:Succeeded

docs/excel/performance.md
:white_check_mark:Succeeded

docs/reference/javascript-api-for-office.md
:white_check_mark:Succeeded

docs/reference/openspec/openspec.md
:white_check_mark:Succeeded

docs/reference/overview/excel-add-ins-reference-overview.md
:white_check_mark:Succeeded

docs/reference/overview/word-add-ins-reference-overview.md
:white_check_mark:Succeeded

docs/toc.yml
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


pipelines/ci/tidb: upload coverage for br and dumpling

Wait for https://github.com/pingcap/tidb/pull/30457.


Avoid recursion in the document loader.

The document loading API (yaml_parser_load) was susseptable to a
stack overflow issue when given input data which opened many
mappings and/or sequences without closing them.
This was due to the use of recurion in the implementation.
With this change, we avoid recursion, and maintain our own loader
context stack on the heap.
The loader context contains a stack of document node indexes.
Each time a sequence or mapping start event is encountered,
the node index corrasponding to the event is pushed to the
stack.  Each time a sequence or mapping end event is encountered,
the corrasponding node's index is popped from the stack.
The yaml_parser_load_nodes() function sits on the event stream,
issuing events to the appropriate handlers by type.
When an event handler function constructs a node, it needs to
connect the new node to its parent (unless it's the root node).
This is where the loader context stack it used to find the
parent node.  The way that the new node is added to the tree
depends on whether the parent node is a mapping (with a
yaml_node_pair_t to fill), or a sequence (with a yaml_node_item_t).
Fixes: https://github.com/yaml/libyaml/issues/107

Closing; there was a typo in the commit message.


Cannot load map +  Wgs84Transformer not initialized + NETWORK ERROR

I'm using ROS Melodic on Ubuntu 18.04 to launch mapviz.
I'm not able to load any map (i.e. http://maps.stamen.com/terrain/#12/40.4485/17.9240) since as soon as I load the tilemap plugin I get:
[ WARN] [1637403046.945206940]: Wgs84Transformer not initialized
[ERROR] [1637403046.945483290]: Error: No transform between /wgs84 and map
[ WARN] [1637403048.950361959]: Wgs84Transformer not initialized

or sometimes, I get this other error:
[ WARN] [1637403364.657058338]: [transform_manager]: No transformer from '/wgs84' to '/map'. If '/map' is a /tf frame, it may not have been broadcast recently.
[ERROR] [1637403364.657141043]: Error: No transform between /wgs84 and map
[ WARN] [1637403364.727952973]: [transform_manager]: No transformer from '/map' to '/wgs84'. If '/map' is a /tf frame, it may not have been broadcast recently.

How can I fix this problem?
This is my launch file:
<launch>

  <node pkg="mapviz" type="mapviz" name="mapviz"></node>

  <node pkg="swri_transform_util" type="initialize_origin.py" name="initialize_origin" >
    <param name="local_xy_frame" value="/map"/>
    <param name="local_xy_origin" value="auto"/>
    <!--<param name="local_xy_origin" value="swri"/>-->
    <rosparam param="local_xy_origins">
      [{ name: swri,
         latitude: 40.5675262,
         longitude: 17.4155641,
         altitude: 133.719,
         heading: 0.0},

       { name: back_40,
         latitude: 40.5675262,
         longitude: 17.4155641,
         altitude: 100.0,
         heading: 0.0}]
    </rosparam>
    <remap from="fix" to="/gnss"/>
  </node>

  <node pkg="tf" type="static_transform_publisher" name="swri_transform" args="0 0 0 0 0 0 /map /origin 100"  />

</launch>

I notice the local_xy_origin param is called local_xy_origins. Could that be the problem?

Thank you for your answer and support! How should I change it in order to fix the issue?
I don't think I have changed it.

I suspect you might be running into something similar to this: https://github.com/swri-robotics/mapviz/issues/712#issuecomment-748182040. Can you echo /local_xy_origin to see if you the origin is getting published?

I'm getting the same error.
I was setting up mapviz following this tutorial and after clicking the selector for Color it freezed. Later, when trying to restart the app I got this errors:
[ WARN] [1694950799.304974569]: Wgs84Transformer not initialized
[ERROR] [1694950799.305586765]: Error: No transform between /wgs84 and map
[ WARN] [1694950799.590368388]: No messages received.

(mapviz:10376): GLib-GObject-WARNING **: 08:39:59.709: cannot register existing type 'GtkStyle'

(mapviz:10376): GLib-GObject-WARNING **: 08:39:59.709: cannot add private field to invalid (non-instantiatable) type '<invalid>'

(mapviz:10376): GLib-CRITICAL **: 08:39:59.709: g_once_init_leave: assertion 'result != 0' failed

(mapviz:10376): Gtk-CRITICAL **: 08:39:59.709: gtk_style_attach: assertion 'GTK_IS_STYLE (style)' failed
[mapviz-1] process has died [pid 10376, exit code -11, cmd /opt/ros/noetic/lib/mapviz/mapviz __name:=mapviz __log:=/home/odroid/.ros/log/879aa2e8-554e-11ee-9d03-ce660a7141e3/mapviz-1.log].
log file: /home/odroid/.ros/log/879aa2e8-554e-11ee-9d03-ce660a7141e3/mapviz-1*.log

Could fix this crashes by removing the config of mapviz.
You can find the config by running sudo find / -name "*.mapviz_config"


etcher-cli: Update to 1.5.50 (by fixing autoupdate URL)

etcher-cli is removed from etcher and its latest version is 1.4.9 (https://github.com/balena-io/etcher/releases/tag/v1.4.9)

Fixed Manifest
{
    "homepage": "https://www.balena.io/etcher/",
    "license": "Apache-2.0",
    "version": "1.4.9",
    "description": "CLI for balena Etcher",
    "architecture": {
        "64bit": {
            "url": "https://github.com/balena-io/etcher/releases/download/v1.4.9/balena-etcher-cli-1.4.9-windows-x64.zip",
            "hash": "a3efeab1ee775dab6d07405e0c7f6f0fdd36a544fd5cba80cd387ffc1e305afc"
        },
        "32bit": {
            "url": "https://github.com/balena-io/etcher/releases/download/v1.4.9/balena-etcher-cli-1.4.9-windows-x86.zip",
            "hash": "76812251fb621b0f0ff536a1527deeffb17f13377f892c58800fcdf1cf8bbcc5"
        }
    },
    "bin": [
        [
            "balena-etcher.exe",
            "etcher"
        ]
    ],
    "notes": "'etcher-cli' is outdated and removed from newer 'etcher' releases, please use 'etcher' GUI edition instead."
}

@niheaven Installed and working locally. Is the good to go?


HA configuration.yaml example is using deprecated features

Starting yesterday I have been trying to integrate my solar panels into HA. I'm struggling a bit with getting everything working.
I had to create another template sensor:
template:

  - sensor:
      - name: SoFar_Solar_Power_Generation
        unit_of_measurement: 'Wh'
        state: >
          {{ (states("sensor.solarmanpv_station_generationPower") | float) | round(2) }}
        device_class: energy
        state_class: measurement
        attributes:
          last_reset: '1970-01-01T00:00:00+00:00'

To get it to be able to use in the energy tab.
Together with this I had to comment the entity_id's because these are deprecated. Don't exactly know what they do.

Nice! The device_class, state_class and attributes are definitely required to use these sensors in the Energy view.
Just for comparison. This is the sensor I use for that purpose:
template:
  - sensor:
      - name: "Solarman energy daily"
        unit_of_measurement: 'kWh'
        state: "{{ state_attr('sensor.solarmanpv_inverter', 'Daily_Production_(Active)') }}"
        device_class: energy
        state_class: measurement
        attributes:
          last_reset: '1970-01-01T00:00:00+00:00'

Thanks for the heads-up on the entity_id's. The README will be updated.


Endpoint Cache properties have changed.

The screenshot above no longer matches what I see in the Azure portal. The new "Caching Rules" is more complicated and has options like "Override" and "Set if missing" that should be discussed here.

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

ID: 45034e70-188d-f7f8-d1da-bc72c2f95d7c
Version Independent ID: 34c58d57-87ef-51ea-a04a-03b36073460f
Content: Tutorial - Add Azure CDN to an Azure App Service web app
Content Source: articles/cdn/cdn-add-to-web-app.md
Service: azure-cdn
GitHub Login: @mdgattuso
Microsoft Alias: magattus

@jsuddsjr Thanks for the feedback !  I have assigned this issue to content author to investigate and update the document as appropriate.

Is there any update for this documentation? More than 8 months to update content is strange.

Assigning to PM for review
#reassign:@amitsriva

GitHub user mdgattuso has been removed from the MicrosoftDocs organization, so they were automatically removed as an assignee.

#reassign: gunjanj

Thank you for you dedication to our documentation.
Unfortunately, we have been unable to review this issue in a timely manner. We sincerely apologize for the delayed response. We are closing this issue. If you feel that the problem persists, please respond to this issue with additional information.
Please continue to provide feedback about the documentation. We appreciate your contributions to our community.
#please-close


Rename RedissonMap then set value in map , the value will put in the old map

        Config config = new Config();
        config.useSingleServer().setAddress("addrss").setPassword("passwd");
        RedissonClient client = Redisson.create(config);
        RMap<String, String> map = client.getMap("aaa");
        map.put("111","222");  // 1
        map.rename("bbb");
        map.put("222222","333333");   // 2
        client.shutdown();

the 1 will move into 'bbb' map, but the 2 will put in the 'aaa' map,not the new one 'bbb'.

I am using 3.10.2 with spring session.
When user login, security call session to chang it id. Redisson will tell its map change its name. When this request is finished, security write its context into session. But this context is writen into the old one. So it is lost.

Fixed! thanks for report


bump versions of selected components

to match AWS cluster upgrade document.
Components are:

kube-proxy 1.15.11
coreDNS 1.6.6
VPC CNI 1.6.1
Calico 3.13

Cluster autoscaler not upgraded as chart unavailable for v1.15
Others may follow once sandbox is happy.

I'm unsure if the autoscaler needs upgrading ... there isn't a helm chart released for autoscaler 1.15 (which would be the correct one) ... the next one is for 1.17 (which might be too far) ... I think we'll go ahead without it, and come back for it if we encounter problems.

Autoscaler version was already addressed in https://github.com/helm/charts/pull/21311#issuecomment-599639523

thanks @Krenair ... not massivly keen on using a chart from the future and a tag from the past for autoscaler ... but let's give it a go :smile:


Add User-Agent and additional headers to esp_websocket_client (IDFGH-2193)

esp_websocket_client add the ability to:

Change the User-Agent string.
Specify additional connection headers.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.David N. Junod seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

@igrr can I get this reviewed & merged?  Thanks

@djunod Thanks for the contribution and sorry for not replying earlier.

@Alvin1Zhang merge conflicts resolved.

@djunod Thanks for the contribution, merged as https://github.com/espressif/esp-idf/commit/9200250f512146e348f84ebfc76f9e82e2070da2, thank you.

Hi guys,
Silly question - how do you specify additional headers for websockets? I know that is not the right place to ask but nobody seems to reply in the forum.
I tried to do it like this but it doesn't work with error shown below. I printed out the errors in the backend but there isn't an authorization key in the transaction leading to failure.
websocket_cfg.uri = CONFIG_WEBSOCKET_URI;
const char *header = "{'authorization': 'Token abcdefg'}\r\n";
websocket_cfg.headers = header;
esp_websocket_client_handle_t client = esp_websocket_client_init(&websocket_cfg);
esp_websocket_register_events(client, WEBSOCKET_EVENT_ANY, websocket_event_handler, (void *)client);
I (5599) WEBSOCKET: Connecting to wss://anexample.ddns.net/...
E (23899) esp-tls: Failed to connnect to host (errno 113)
E (23899) esp-tls: Failed to open new connection
E (23899) TRANS_SSL: Failed to open a new connection
E (23899) TRANSPORT_WS: Error connecting to host mftec2149.ddns.net:443
E (23909) WEBSOCKET_CLIENT: Error transport connect
The function esp_transport_ws_set_headers() seems useful but its unclear how to use it. Also, specifying headers using a function in a lower-level layer seem to be correct.
Any tips or advice greatly appreciated, thanks!
Ed


Add a few more python nodes

Proposal to add a few more python nodes. Thanks.

Thanks for contributing!


Attaching to remote VM

Hi,
Playing with VM attach API. Local usage is pretty straightforward.
But I'm wondering, how can I connect to jsadebugd using VirtualMachine.attach?
Noticed that I can get a list of connected remote JVMs via MonitoredHost activeVms() API. But it requires jstatd running. Does it mean that I need to start both jstatd and jsadebugd on target remote VM? If yes, how can I do that? How can I reuse single rmiregistry for both tools?
I'm new to this topic. Would be greatly appreciated if you point me what I'm missing.
Thanks,
Sergey

Hi,
You cannot attach to a remote JVM using Dynamic Attach Mechanism (at least with built-in APIs).
jsadebugd is a different thing - it is a Serviceability Agent proxy. It binds to a particular Java process or coredump and allows you to use SA tools remotely

@apangin thanks! In such case what would you recommend to use for getting remoteDataDump and heapHisto from remote JVM? Or it's better to create some http trigger to do it locally first and then just send results to requester?


Morph deletes conditions on incoming Sequence Flows

This got already fixed via https://github.com/camunda/camunda-modeler/issues/318. Somehow, it is not part of the nightly though.

Nightly simply did not build yet.

Closed via #318.


Exporting Auxiliary Matrices for Code Generation

Hi guys,
I was wondering if there is a way to export auxiliary matrices in generated code to update the data vector in the QP problem. For example, it is common in MPC problems that your "q" matrix in "0.5 x' P x + q' x" is actually "F'x(t)" ( x(t) in this case is the state of the system). This also happens with the lower and upper constraints vectors, which are usually defined by "upper = U_max + E*x(t)". The matrices F, U_max, and E usually changes with the controller horizons, so, it is really boring to recalculate them in C/C++ after you have already done it in Matlab or Python.
If there is not already a way to that, how could I do that? Reading the sources files, it looks to me that is necessary to modify the OSQPData struct definition in "types.h" to add new matrices and vectors, and also include "write_vec" for this vectors/matrices in "render_workspace.m" (Matlab Interface) and "utils.py" (Python Interface).

I don't see what is a problem in computing q_new = F'x(t) outside of OSQP functions and then updating  q with q_new.
And how is this related to Matlab and Python? If you are using OSQP from Matlab or Python, why are you generating the C code?

And no, it is not possible to export auxiliary matrices in generated code.

Unfortunately what you ask would require a QP canonicalizer which is not in the scope of OSQP as a solver. I know there is some future plan to make cvxpy support code generation features which would solve your problem, but not much is available now.
For now, I suggest you to look at the OSQP eigen interface which has been designed by people mostly working on MPC. You can find a C++ example where the problem data gets updated here. I believe the code could be directly adapted for a code-generated OSQP since the update and solve functions stay the same.

Thank you for the answer @gbanjac
My application runs in C++, it is a plugin for ROS. But I design my predictive controllers in Matlab, because I have many more tools at Matlab for that. The problem is not computing F'x(t), but computing F, what changes for every set of horizons and specifications from MPC.

Thank you @bstellato , I will look at eigen interface.

Btw, are you using the condensed or sparse formulation of the MPC problem? In other words, do you eliminate the state variables from the problem?

I believe I am using a sparse formulation. I am using control and control rate constraints right now, what demands me to inform the past control actions. But I want my code to be the most general as possible, in the case I want to include state and output constraints. I don't know if I understood what you said @gbanjac , but I need to update the matrices at each control cycle because some of them depends on the state variables.

I asked if the optimization variable (vector) in your MPC problem had the form (u(0),u(1),...,u(N-1)) or (x(0),u(0),x(1),u(1),...,x(N)).
If you are using the former (condensed) representation, then you have a smaller number of optimization variables, but your data matrices are usually dense. If this is the case, then computing matrix F involves some matrix-matrix multiplications and can be annoying to compute in each control cycle.
Alternatively, you can use the latter (sparse) representation which involves a larger number of variables, but the data matrices are sparse. Not only you will avoid performing matrix-matrix multiplications when constructing your problem data, but OSQP is also very efficient when working with sparse matrices. We use this sparse formulation in this example.

I understood now, I am using the condensed representation.

I suggest closing this issue. Feel free to use our forum for discussions on how to use OSQP for solving nonlinear MPC problems.


Doesn't work with Visual studio 2013

As per http://timrayburn.net/blog/visual-studio-2013-and-msbuild/
Visual studio 2013 now sticks msbuild in C:\Program Files (x86)\MSBuild\12.0\Bin (on my machine). That's where MSbuild should be run from now, and not the old location (C:\Windows\Microsoft.NET\Framework64\v4.0.30319\). Running it from the old location causes errors with missing .target files.

@damianh was @MortenSkjoldager's issue resolved? I'm encountering the same issue trying to clean a solution on a machine with psake 4.3 and VS2013. Psake tries to find MSBuild in c:\Program Files\MSBuild\Microsoft\Visual Studio\v11.0...
Thanks in advance.

Current version is 4.4.1, please verify problem exists with that.
On 5 Feb 2015 00:57, "Jeremy Abbott"<EMAIL_ADDRESS>wrote:

@damianh https://github.com/damianh was @MortenSkjoldager
https://github.com/MortenSkjoldager's issue resolved? I'm encountering
the same issue trying to clean a solution on a machine with psake 4.3 and
VS2013. Psake tries to find MSBuild in c:\Program
Files\MSBuild\Microsoft\Visual Studio\v11.0...
Thanks in advance.
—
Reply to this email directly or view it on GitHub
https://github.com/psake/psake/issues/76#issuecomment-72966893.

I actually tried it first with 4.4.1, and received the same error. The only difference was that psake 4.3 moved onto the next task, and 4.4.1 stopped after the failure.

I dont believe this has anything to do with psake.
http://stackoverflow.com/questions/17433904/v11-0-webapplications-microsoft-webapplication-targets-was-not-found-when-file-a
https://www.nuget.org/packages/MSBuild.Microsoft.VisualStudio.Web.targets/

Should psake find the msbuild exe in the new directory? Or perhaps have an option to specify the msbuilld location?
Thanks,
Ben Guenter
Software Developer
On Wed, Feb 4, 2015 at 5:11 PM, Damian Hickey<EMAIL_ADDRESS>wrote:

I dont believe this has anything to do with psake.
http://stackoverflow.com/questions/17433904/v11-0-webapplications-microsoft-webapplication-targets-was-not-found-when-file-a
https://www.nuget.org/packages/MSBuild.Microsoft.VisualStudio.Web.targets/
Reply to this email directly or view it on GitHub:
https://github.com/psake/psake/issues/76#issuecomment-72969028

It's finding msbuild.exe just fine; it's not finding that targets file.
http://stackoverflow.com/a/20095260

@damianh that's the issue. Our csproj files are referencing old msbuild data. Thank you for the help. I'm sorry for the inconvenience!


After reboot - dpinger not starting on secondary IPv6 WAN interface.

Important notices
Before you add a new report, we ask you kindly to acknowledge the following:

[ x ] I have read the contributing guide lines at https://github.com/opnsense/core/blob/master/CONTRIBUTING.md
[ x ] I am convinced that my issue is new after having checked both open and closed issues at https://github.com/opnsense/core/issues?q=is%3Aissue

Describe the bug
After a reboot, or complete link loss, dpinger for the secondary IPv6 gateway fails to restart. This happened on previous versions as well (24.x)
To Reproduce
Steps to reproduce the behavior:
-Reboot the system
-Log in
-Dpinger not started for secondary IPv6 gateway
Expected behavior
-Dpinger to be started for IPv6 interface
Describe alternatives you considered
-Restarting dpinger manually works (naturally, this is a workaround)
-Going to the gateways page and saving, reconfigured dpinger, upon which all dpingers start correctly
Screenshots

Relevant log files
See above screenshots. Upon reboot, a dpinger_configure is exectuted for all Gateways, except WAN02_DHCP6.
It's seemingly skipped because "WAN02_DHCP6 IPv6 interface address could not be found, skipping."
I also see a mention of "Skipping gateway WAN02_DHCP6 due to empty 'gateway' property."
But it has an IPv6 address (Interfaces -> overview):

Additional context
The opnsense system uses a LAGG towards a switch. If the switch goes completely down (as mentioned above), the same behaviour occurs: WAN01 (IPv4 & IPv6) -> dpinger starts correctly. WAN02: only IPv4 dpinger starts.
Environment
Software version used and hardware type if relevant, e.g.:
OPNsense 24.1.6 (amd64).
Intel(R) Core(TM) i5-7400 CPU
NIC: Intel igb -> LAGG to Switch.

The message seems to originate from:
if (empty($gwifip)) {
                log_msg(sprintf('The required %s IPv6 interface address could not be found, skipping.', $name), LOG_WARNING);
                continue;
            }

... in /usr/local/etc/inc/plugins.inc.d/dpinger.inc - but as you can see in the last screenshot, the IPv6 gateway isn't empty for said WAN02

Seems like a timing issue, where the information isn't available quick enough when the dpinger configure kicks in..
If I randomly add a 2 second delay:
function dpinger_configure_do($verbose = false, $gwname = null, $bootup = false)
{
    sleep(2);
    service_log(sprintf('Setting up gateway monitor%s...', empty($gwname) ? 's' : " {$gwname}"), $verbose);

in /usr/local/etc/inc/plugins.inc.d/dpinger.inc
-> then it "just works"

Could you try adding a tunable „net.inet6.ip6.dad_count“ with value „0“ to see if that problem goes away?
To be frank we wait for this to settle in rc.newwanipv6, but it's been known to still fail:
https://github.com/opnsense/core/blob/3f184a695fdbcbe4071f61da54227a437da94bcd/src/etc/rc.newwanipv6#L71-L76

I think you broke a fix-record in replying on a rainy Sunday. 😄
That did fix it yes. Would have never guessed it was duplicate address detection causing that.
Anyway I can help you guys out on a more permanent fix - seeing I have a "special set-up where this happens for reasons"? (Or we document this behaviour in the OPNsense documentation?)

Hmm, you said dual WAN…. Are both DHCPv6? If yes does it work when you disable the primary one?

(Just the IPv6 part I mean)

Hmm, you said dual WAN…. Are both DHCPv6? If yes does it work when you disable the primary one?

I'll give it a try! Both are DHCPv6 yes.

Removed the dad_count - disabled IPv6 Gateway on WAN01 -> IPv6 Gateway on WAN02 doesn't come up.
For what it's worth, this is a dual-port, copper, IGB-based NIC.

Let me get back tomorrow with a fresh idea. Thanks for the help!

Seems like Linux suffers from this as well..
https://www.agwa.name/blog/post/beware_the_ipv6_dad_race_condition
It mentions:

The problem is that until DAD can confirm that there is no other host with the same address, the address is considered to be "tentative." While it is in this state, attempts to bind() to the address fail with EADDRNOTAVAIL, as if the address doesn't exist. That means that if you have a service configured to listen on a particular IPv6 address, and that IPv6 address is still tentative when the service starts, it will fail to bind to that address. Very few programs will try to bind again later.

If FreeBSD has implemented this in a similar fashion, then yes, we'll run into this if we go "too fast" - not sure if there's a way on FreeBSD to check that "tentative" status.
In any case - many thanks for the lightning fast response 💯
If no clear-cut solution exists - it's probably a good idea to document such an edge case maybe here: https://docs.opnsense.org/troubleshooting/gateways.html

https://reviews.freebsd.org/D40103
Found some interesting references to NoDAD -> maybe there are provisions to get the actual interface status? (Tentative / normal)

Let's not get carried away here... tentative is what it is and we exclude it when we look for viable addresses because it wouldn't work anyway:
https://github.com/opnsense/core/blob/3f184a695fdbcbe4071f61da54227a437da94bcd/src/etc/inc/interfaces.inc#L4164
The problem is that when we look for a dynamic "primary" IP address we don't know what we are looking for and we can't push tentative addresses to the caller as it would end up patching every spot trying to use a non-usable address so that's why we try to exclude it from the lookup.
rc.newwanipv6 is supposed to be started by dhcp6c after addresses are assigned, which means we get a tentative count and the initial wait should do the trick as mentioned.
There could be complications, however:

Tentative takes longer for unknown reasons. You could test this theory by applying a longer wait (increase the "+ 1" delay by a second or two).
The address is created later than rc.newwanipv6 is triggered by dhcp6c (we could check that in dhcp6c code but it's unlikely).
The address is removed and recreated while rc.newwanipv6 is sleeping so it's missing the new address (it's even hard to prove it).
The sleep() in rc.newwanipv6 is interrupted by a signal and is not waiting for the appropriate amount of time, but that seems a bit unlikely it's so easily reproducible for you and not for others.

Netlink could help with this in the future, but ideally we don't want individual code spots to loop until they have a viable address like done elsewhere as that just clogs up subsystems.

That being said if the sleep ends up "+ 2"instead of "+ 1" in order to work I'm not against it I guess.

Which address does it find on WAN BTW? IA-NA or one from the prefix or a SLAAC on WAN?

Interfaces: Settings: Log level mode to "Info" might help, but needs a reboot.

Which address does it find on WAN BTW? IA-NA or one from the prefix or a SLAAC on WAN?
It gets one from the prefix in this case.

That said, I don't think there's an issue with using net.inet6.ip6.dad_count "0" in the case of an "authorative" device on your network. It should be the one having the specific IP. But maybe we should document the case better?
I've set the log level - will reboot as soon as possible.

It gets one from the prefix in this case.

Ok that means it already "swings" to a tracking LAN because there is no GUA IPv6 on WAN itself.

DHCP log level is set to info - any specific log output you would like? 👍🏻

The full general („system“) log on reboot for both dad_counter unset and set to zero (set to debug level or just grab the file on the disk). You can send it to franco AT OPNsense DOT org
thanks!

Log sent - many thanks! 👍🏻

As a test - we updated the following line to " + 2"
https://github.com/opnsense/core/blob/master/src/etc/rc.newwanipv6#L75
... and removed the tunable.
That made the system behave correctly. I'll monitor over the course of a week, with some interface reloads / simulated link-loss how the system behaves.

Closing - https://github.com/opnsense/core/commit/f2e60c18f66a4bcf712078ea718fdb6a95385f55 fixes this 👍🏻

Somehow, had issue with this again since upgrading to 24.7
Fixed it by disabling DAD detection and applying the interface again. I'll dig a little deeper when I return from holidays. According to my provider, the official statement for address assignment is:
IPv6 acquisition is done via SLAAC while IPv6 prefixes delegated for LAN use are acquired via DHCPv6. If the router
supports IPv6 prefix delegation it should automatically use the provided Global IPv6 ranges to make them available
on the LAN.

Sounds reasonable what the ISP said. The thing is a number of people reported this but I'm suspecting this could be a kernel issue unless the SLAAC deprecation is not working as expected:
https://github.com/opnsense/core/blob/897d3cce3a0b5117450ff6c36db0635cf2e19591/src/etc/rc.newwanipv6#L108-L109
But this is after everything should have been dispatched including PD to LAN.

Sounds reasonable what the ISP said. The thing is a number of people reported this but I'm suspecting this could be a kernel issue unless the SLAAC deprecation is not working as expected:
https://github.com/opnsense/core/blob/897d3cce3a0b5117450ff6c36db0635cf2e19591/src/etc/rc.newwanipv6#L108-L109
But this is after everything should have been dispatched including PD to LAN. You can try to remove this code to see if it helps.

Back from holiday, commented out that line, works like a charm after a reboot. 👍🏻

given that my provider said this:
IPv6 acquisition is done via SLAAC while IPv6 prefixes delegated for LAN use are acquired via DHCPv6. If the router
supports IPv6 prefix delegation it should automatically use the provided Global IPv6 ranges to make them available
on the LAN.

I've now set WAN02 to SLAAC, rather than DHCPv6 (as I'm not using any prefix on WAN02 - I NAT IPv6 there (yes, evil, boo 😈 but no other option for transparent failover)). And now it works after reboot + dpinger works on reboot as well.
Seems like indeed there's an issue with handover from SLAAC.

@Wireheadbe just to be clear you think removing the address removal like done on https://github.com/opnsense/core/commit/287c13be works better? If yes I'll backport to 24.7.1 and reassess IPv6 issues from there.

@Wireheadbe just to be clear you think removing the address removal like done on 287c13be works better? If yes I'll backport to 24.7.1 and reassess IPv6 issues from there.

So basically without:
 shell_safe('/usr/local/sbin/ifctl -i %s -f', $device);

Like this:

And then rebooted the appliance, while making sure the interface WAN02 is set as "Dhcpv6"; makes sure that all gateway monitors come up upon reboot:

And WAN02 retains it's IP:

Ok thanks, I'll add it to the 24.7.1 queue then!
Cheers,
Franco

Hello!
Interestingly I come here with the opposite issue. Opnsense 24.7 fixed a SLAAC issue for me. My ISP was giving me a non-routable SLAAC address that was being preferred. Opnsense 24.7 fixed this issue and 24.7.1 broke it again (presumably with https://github.com/opnsense/core/commit/02ae897ba94507544f21a194e243edeb7f007880).
I thought I'd throw my 2c in here in case it helps you with the long term solution.

@adrianmoisey The SLAAC thing is really annoying. I'm aware of users such as yourself, though the reality is this breaks more setups than it fixes for convoluted ISP-specific reasons.
I recommend using the patch for now. It's probably best to add an interface setting for it. If you agree can you create a ticket for me?
Thanks,
Franco

@adrianmoisey The SLAAC thing is really annoying. I'm aware of users such as yourself, though the reality is this breaks more setups than it fixes for convoluted ISP-specific reasons.

That makes sense. For me the problem is mostly a mild annoyance than anything else.

I recommend using the patch for now.

Which patch are you referring to?

It's probably best to add an interface setting for it. If you agree can you create a ticket for me?

I'll give that a go and link that issue here. I appreciate the work you've put into this!

You can opnsense-patch <commithash> on the command line to patch or unpatch a specific commit to retain the desired behaviour after a 24.7.x update until we have a permanent solution.

I didn't know that I could revert a patch. Thanks, that's super nifty!
I've made an issue here: https://github.com/opnsense/core/issues/7759
I hope those words are good enough.


Updated ankushbhardwaj.png to ankushbhardwaj408.png

Description
Here my contribution to "The Duck Gallery".

You must respect the following conditions

Your contribution must respect the code of conduct
It's your first PR to this repository
You have added your image of the duck downloaded from https://pimpmyduck.zenika.com
You have not changed the image of the duck
The image filename must be your GitHub username (ex: your-username.png)
You are using your own GitHub user and it's the same as the PR author
Into the contributors.js file, the message must be short and respect the code of conduct

If the PR doesn't respect those conditions, it will be closed

Hi @jeanphibaconnais I would like to contribute more to Hacktober Fest, if there is anything I can contribute let me know

Hello @ankushbhardwaj408 , we have some hacktoberfest projects in our zenika-open-source organization if you want.

Thanks @jeanphibaconnais


feat(wrangler-d1): Teach wrangler d1 insights about more timePeriods

What this PR solves / how to test
This PR teaches wrangler d1 insights about more timePeriods. The input can now be of the form\d+[dmh]
Fixes #5048
Author has addressed the following

Tests

[x] TODO (before merge)
[ ] Included
[ ] Not necessary because:

Changeset (Changeset guidelines)

[ ] TODO (before merge)
[x] Included
[ ] Not necessary because:

Public documentation

[x] TODO (before merge)
[ ] Cloudflare docs PR(s): https://github.com/cloudflare/cloudflare-docs/pull/...
[ ] Not necessary because:

Don't worry about tests/docs in this PR - we will start documenting this command soon, but have a pretty large refactor planned.

Thanks @rozenmd all done now

@RamIdeas I've added tests - the refactor hasn't happened yet, but this would still be useful in the meantime


Add testable date times

Description
This PR replaces untestable DateTime.now() with clock.now() from pkg:clock.
With this change, the package and the clients of the package could be testing token date times using pkg:fake_async.
And the best part, this change doesn't add breaking chances or change the current behaviors!
Here's a sample of testing an expired token:
import 'package:dart_jsonwebtoken/dart_jsonwebtoken.dart';
import 'package:fake_async/fake_async.dart';
import 'package:test/test.dart';

void main() {
  test('should expires when `expiresIn` duration is elapsed', () {
    final secretKey = SecretKey('secret_key');
    final jwt = JWT({'foo': 'bar'});
    final duration = Duration(hours: 1);
    fakeAsync((async) {
      final token = jwt.sign(secretKey, expiresIn: duration);
      async.elapse(duration);
      expect(
        () => JWT.verify(token, secretKey),
        throwsA(isA<JWTExpiredException>()),
      );
    });
  });
}

Note: clock and fake_async are published by Dart Team:

https://pub.dev/publishers/tools.dart.dev/packages
https://pub.dev/publishers/dart.dev/packages

@jonasroussel I tried to follow your pattern of tests. Let me know if you need to change anything.

CC: @alestiago

Hey @robsonsilv4,
Thanks for your changes! I just refactor your tests to put them in another test file so I can evolve the header tests in the future, I made those changes in another branch here: https://github.com/jonasroussel/dart_jsonwebtoken/tree/testable-datetime. I'll let you merge it into your PR repo branch and then I'll approve it.

Already merged, thanks @jonasroussel
It's really better to split the tests before they grow more


ng update @angular/core @angular/cli gives error 'Package '@angluar/core' is not a dependency.', but it most certainly is.

🐞 Bug report
Command (mark with an x)

[ ] new
[ ] build
[ ] serve
[ ] test
[ ] e2e
[ ] generate
[ ] add
[x] update
[ ] lint
[ ] xi18n
[ ] run
[ ] config
[ ] help
[ ] version
[ ] doc

Is this a regression?

Yes, in that I used ng update to move from v8 to v9 without this issue.
Description
I have an Angular project at v9.1.5.  I want to move to v10.  When I run the command ng update @angular/core @angular/cli I get the error "Package '@angluar/core' is not a dependency.'", but it most certainly is a dependancy.
🔬 Minimal Reproduction

Take an existing angular application at version 9.1.5
Ensure npm install has been run so the packages are installed.
Run ng update @angular/core @angular/cli.

🔥 Exception or Error

  ng:analytics getGlobalAnalytics +0ms
  ng:analytics Client Analytics config found: false +33ms
  ng:analytics Analytics disabled. Ignoring all analytics. +1ms
  ng:analytics getSharedAnalytics +0ms
The installed local Angular CLI version is older than the latest stable version.
Installing a temporary version to perform the update.
Installing packages for tooling via npm.
Installed packages for tooling via npm.
  ng:analytics getGlobalAnalytics +0ms
  ng:analytics NG_CLI_ANALYTICS is false +1ms
  ng:analytics getSharedAnalytics +0ms
Using package manager: 'npm'
Collecting installed dependencies...
Found 88 dependencies.
Package '@angluar/core' is not a dependency.

🌍 Your Environment

Angular CLI: 9.1.5
Node: 12.16.2
OS: darwin x64

Angular: 9.1.6
... animations, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... platform-server, router
Ivy Workspace: Yes

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.901.5
@angular-devkit/build-angular     0.901.5
@angular-devkit/build-optimizer   0.901.5
@angular-devkit/build-webpack     0.901.5
@angular-devkit/core              9.1.5
@angular-devkit/schematics        9.1.5
@angular/cdk                      9.2.3
@angular/cli                      9.1.5
@angular/material                 9.2.3
@ngtools/webpack                  9.1.5
@nguniversal/builders             9.1.0
@nguniversal/common               9.1.0
@nguniversal/express-engine       9.1.0
@schematics/angular               9.1.5
@schematics/update                0.901.5
rxjs                              6.5.5
typescript                        3.8.3
webpack                           4.42.0

Can you share your package.json?

Sure ('***' are items I wanted to hide, but if I've hidden information you really require let me know).
{
  "name": "***",
  "version": "***",
  "license": "***",
  "scripts": {
***
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^9.1.5",
    "@angular/cdk": "^9.2.2",
    "@angular/common": "^9.1.5",
    "@angular/compiler": "^9.1.5",
    "@angular/core": "^9.1.5",
    "@angular/forms": "^9.1.5",
    "@angular/material": "^9.2.2",
    "@angular/platform-browser": "^9.1.5",
    "@angular/platform-browser-dynamic": "^9.1.5",
    "@angular/platform-server": "^9.1.5",
    "@angular/router": "^9.1.5",
    "@fortawesome/angular-fontawesome": "^0.6.1",
    "@fortawesome/fontawesome-svg-core": "^1.2.28",
    "@fortawesome/free-brands-svg-icons": "^5.13.0",
    "@fullcalendar/core": "^4.4.0",
    "@ngui/auto-complete": "^3.0.0",
    "@nguniversal/express-engine": "^9.1.0",
    "ngx-sharebuttons": "^8.0.0",
    "@nicky-lenaers/ngx-scroll-to": "^3.0.1",
    "ajv": "^6.12.1",
    "angular2-chartjs": "^0.5.1",
    "angulartics2": "^9.0.0",
    "chart.js": "^2.9.3",
    "component-emitter": "^1.3.0",
    "compression": "^1.7.4",
    "core-js": "^3.6.5",
    "debug": "~4.1.1",
    "domino": "^2.1.5",
    "express": "^4.17.1",
    "font-awesome": "^4.7.0",
    "forever": "^2.0.0",
    "json-size": "1.0.0",
    "keycharm": "^0.3.1",
    "masonry-layout": "^4.2.2",
    "moment": "~2.24.0",
    "ng2-pdf-viewer": "^6.2.0",
    "ngx-clipboard": "^13.0.0",
    "ngx-color-picker": "^9.1.0",
    "ngx-google-places-autocomplete": "^2.0.4",
    "ngx-image2dataurl": "^8.0.0",
    "ngx-lightbox": "^2.1.2",
    "ngx-masonry": "^9.1.1",
    "ngx-pagination": "^5.0.0",
    "numeral": "^2.0.6",
    "primeicons": "^2.0.0",
    "primeng": "^9.0.5",
    "propagating-hammerjs": "^1.4.7",
    "quill": "^1.3.7",
    "randomcolor": "^0.5.4",
    "rxjs": "^6.5.5",
    "rxjs-compat": "^6.5.5",
    "serve-favicon": "~2.5.0",
    "tslib": "^1.10.0",
    "uuid": "^7.0.3",
    "vis-data": "^6.5.1",
    "vis-timeline": "^7.3.4",
    "vis-util": "^4.0.0",
    "zone.js": "^0.10.3"
  },
  "optionalDependencies": {
    "fsevents": "^2.1.2"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~0.901.4",
    "@angular-devkit/core": "^9.1.4",
    "@angular-devkit/schematics": "^9.1.4",
    "@angular/cli": "^9.1.4",
    "@angular/compiler-cli": "^9.1.5",
    "@types/express-serve-static-core": "^4.17.7",
    "@angular/language-service": "^9.1.5",
    "@nguniversal/builders": "^9.1.0",
    "@types/express": "^4.17.0",
    "@types/gapi": "0.0.36",
<EMAIL_ADDRESS>"0.0.51",
    "@types/jasmine": "^3.5.10",
    "@types/node": "^13.13.0",
    "codelyzer": "^5.2.2",
    "eslint": "^6.8.0",
    "jasmine-core": "^3.5.0",
    "jasmine-spec-reporter": "^5.0.1",
    "karma": "^5.0.2",
    "karma-chrome-launcher": "^3.1.0",
    "karma-cli": "^2.0.0",
    "karma-coverage-istanbul-reporter": "^2.1.1",
    "karma-jasmine": "^3.1.1",
    "karma-jasmine-html-reporter": "^1.5.3",
    "protractor": "^5.4.4",
    "rxjs-tslint": "^0.1.8",
    "ts-loader": "^7.0.0",
    "ts-node": "^8.8.2",
    "typescript": "^3.8.3",
    "webpack-cli": "^3.3.6"
  }
}

Is the above package.json at the root level of the workspace?

Yes, and the official upgrade procedure has been used on this project for at least the last 4 versions of Angular.

@jasonburrows, is there a way to share a reproduction or the project privately? I tried to replicate the above issue with no success.

@jasonburrows it sounds like you made a typo when typing the command as your error message is about @angluar/core and not @angular/core.
I can reproduce it with the typo :
ng update @angluar/core @angular/cli
Using package manager: 'npm'
Collecting installed dependencies...
Found 29 dependencies.
Package '@angluar/core' is not a dependency.

@gregmagolan, great hawk eyes 👀 .
Indeed that is the problem.

My bad !! Sorry.