getZipFileContents does not produce the same filenames as UnzipFileTo:overWrite:

When filenames in the zip file contain non ASCII characters (e.g. ö) , getZipFileContents does not give the same filename as those created by unzipFileTo.
It seems to be caused by the following line:
NSString * strPath = [NSString stringWithCString:filename encoding:NSASCIIStringEncoding];
I think it should be:
NSString * strPath = [NSString stringWithCString:filename encoding:self.stringEncoding];

Well spotted.


clean up hero controller scope

Description
This pr cleans up the comments in https://github.com/flutter/flutter/pull/58808 and makes the herocontroller swapping more robust
Related Issues
https://github.com/flutter/flutter/issues/45938
Tests
I added the following tests:
See files
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

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

Breaking Change
Did any tests fail when you ran them? Please read Handling breaking changes.

[ ] No, no existing tests failed, so this is not a breaking change.
[ ] Yes, this is a breaking change. If not, delete the remainder of this section.

[ ] I wrote a design doc: https://flutter.dev/go/template Replace this with a link to your design doc's short link
[ ] I got input from the developer relations team, specifically from: Replace with the names of who gave advice
[ ] I wrote a migration guide: https://flutter.dev/go/breaking-changes-template Replace this with a link to a pull request that adds the migration guide to https://flutter.dev/docs/release/breaking-changes

Looks like cirrus is unhappy.

filed a issue for customer to fix the test https://github.com/alibaba/flutter_boost/issues/780
In the meanwhile, this is ready for review

a friendly bump 👍

seems reasonable, modulo test failures

@Hixie I have a pr to remove the test. https://github.com/flutter/tests/pull/42

text passed, ready for review! @goderbauer @Hixie


Make ockam message send ... support - to represent STDIN in its addr argument

Current Behaviour:
Here are two example commands:
» ockam node create

Node Created!

Node:
  Name: 7ad4e471
  Status: Running
  API Address: <IP_ADDRESS>:53552
  ...

then:
» ockam message send /ip4/<IP_ADDRESS>/tcp/53552/ockam/uppercase "hello"
HELLO

Desired Behaviour:
We want the following to work (note the hyphen)
» echo "/ockam/uppercase" | ockam message send /ip4/<IP_ADDRESS>/tcp/53552/- "hello"
HELLO

also
» echo "/ip4/<IP_ADDRESS>/tcp/53552/" | ockam message send -/ockam/uppercase "hello"
HELLO

ockam message send ... should inspect addr (its first argument) to see if contains -, if it does, replace the hyphen with piped input read from STDIN
This will allow us to chain various ockam commands
The code for this is here:
https://github.com/build-trust/ockam/blob/0df0d9658b44b772d24e7ac3ea95313f61c15c21/implementations/rust/ockam/ockam_command/src/message/send.rs#L8-L12

We love helping new contributors!
If you have questions or need help as you work on your first Ockam contribution, please leave a comment on this discussion.
If you're looking for other issues to contribute to, checkout issues labeled -  https://github.com/build-trust/ockam/labels/good first issue or https://github.com/build-trust/ockam/labels/help wanted

would like to take this up tomorrow after exams

@pro465 that would be awesome!!
good luck with your exams.

In https://github.com/build-trust/ockam/pull/3116 @leonzchang added support for this. However we learnt that clap confuses - at the beginning of the string with an option.  I wonder of there is a way to replace -/ or /- in the entire std::env::args before clap even starts to parse.

Some more improvements to explore:
Currently, this works:
echo "/ip4/<IP_ADDRESS>/tcp/64005/" | ockam message send -- -/ockam/uppercase "hello"

but this fails:
» echo "/ip4/<IP_ADDRESS>/tcp/64005" | ockam message send -- -/ockam/uppercase "hello"
Error invalid digit found in string

we should make that less fragile

@mrinalwadhwa I fix this in #3120

Another improvement we could do here is to encapsulate this string parsing behavior in a struct, so we can reuse it on other commands. Maybe it could be called HyphenatedMultiAddr, or something like that? I'm thinking about something along these lines:
#[derive(Clone, Debug, Args)]
pub struct SendCommand {
    #[clap(flatten)]
    addr: HyphenatedMultiAddr,
    message: String,
}

#[derive(Clone, Debug, Args)]
struct HyphenatedMultiAddr {
    addr: String
};

impl HyphenatedMultiAddr {
    fn new(addr: &str) -> Self {
        HyphenatedMultiAddr {
            addr: addr.to_string()
        }
    }

    fn multiaddr(&self) -> Result<MultiAddr> {
        let addr = match self.0 {
            ...
        };
        MultiAddr::from_str(&addr)?
    }
}

To deal with the problem from this comment.
I'm wondering if we could use parse_from https://docs.rs/clap/latest/clap/trait.Parser.html#method.parse_from
Instead of parse https://github.com/build-trust/ockam/blob/develop/implementations/rust/ockam/ockam_command/src/lib.rs#L245
and give parse_from std::env::args that have already be processed to replace -/ or /-.

working on a fix using parse_from..

sorry i messed up the branch, it it showing it is 446 commits ahead of bouild-trust:patch-1 branch

I can fix it for you if you want ... look like I have access to it. Should I?

@adrianbenavides thank you for the advice, I have refactor it in #3123
@mrinalwadhwa I will dive into it

@leonzchang oh well now one of us will have to fix merge conflicts

@mrinalwadhwa perhaps. I don't seem to be able to install gpg, so...

@leonzchang @pro465 Thank you both!!
That was awesome open source collab on making the feature work 🏆


Mac OSX lacks realpath

The gcloud scripts depend on realpath to locate the function library, without it you get
+++ dirname /path-to-my-tfdir/modules/agent-policy/scripts/create-update-script.sh module.admin_agent_policy.module.gcloud-upsert.null_resource.run_command[0] (local-exec): ++ realpath /path-to-my-tfdir/modules/agent-policy/scripts module.admin_agent_policy.module.gcloud-upsert.null_resource.run_command[0] (local-exec): /path-to-my-tfdir/modules/agent-policy/scripts/create-update-script.sh: line 38: realpath: command not found module.admin_agent_policy.module.gcloud-upsert.null_resource.run_command[0] (local-exec): + SCRIPT_DIR= module.admin_agent_policy.module.gcloud-upsert.null_resource.run_command[0] (local-exec): + UTILS_ABS_PATH=/script-utils.sh module.admin_agent_policy.module.gcloud-upsert.null_resource.run_command[0] (local-exec): + source /script-utils.sh module.admin_agent_policy.module.gcloud-upsert.null_resource.run_command[0] (local-exec): /path-to-my-tfdir/modules/agent-policy/scripts/create-update-script.sh: line 41: /script-utils.sh: No such file or directory
Interestingly, the scripts don't elevate that error up to terraform, which thinks the terraform apply worked just fine, but leaving an empty state file and no actual policies.
A workaround is to use homebrew to install coreutils, which has realpath, but the scripts really should either not depend on it, or catch the lack and the failure to execute.

We should probably validate this in script and surface error.


Changed default channel to quincy/stable

Using latest may cause expectation mismatches when the new release (reef) comes out.

Utkarsh, thanks for the contribution.
The main branch should refer to quincy/edge snap channel.
However the charm needs to be branched out to create quincy/stable and this change should be part of quincy/stable.
I will let you know once the branches are created so that you can submit this patch on quincy/stable branch.

Perfect @hemanthnakkina


Poorly documented use of sonatypePublishTo with subprojects

Original issue
Use Case
Working on a project that has multiple subprojects and an empty root project used only for aggregation, I wanted to write a simple release procedure that would publish all of the subproject artifacts in one staging repository, and then release that repository. Because sonatypeRelease won't work when there are several staging repositories open, I opted for an "open, publish, release" flow.
Initial Attempt Based on Documentation
I had a simple script setup like this, called checkPublish to run after every build.
if [ $BRANCH == 'master' ]; then
    echo Publishing to Sonatype
    sbt 'sonatypeOpen "Release via Travis ($TRAVIS_BUILD_NUMBER)"' publishSigned sonatypeRelease
fi

In the settings shared by subprojects, I set publishTo := sonatypePublishTo.value, following the README to my best understanding.
Problem
However, this didn't work as expected. sonatypeOpen and sonatypeRelease did give normal looking logs, and publishSigned did run successfully, just nothing was released.
I ended up looking into the plugin's implementation for a while before I saw the cause of this problem.
The problem in this case is that sonatypeOpen and sonatypeRelease are implemented as commands, meaning they only change settings at the root level, and thus the value of sonatypePublishTo was only updated in the root project, which appears to do nothing in my use case.
Solution
In my top-level build.sbt, I set publishTo in ThisBuild := sonatypePublishTo.value, so that publishTo in subprojects inherits the value of sonatypePublishTo from the parent project.
Feedback / Recommendations

Since the README lists publishTo := sonatypePublishTo.value as a configuration, with no other commentary, it's not obvious that that configuration might not be correct in some cases. I would recommend adding some kind of qualification to the README so users know that this might be something to think about.

It was not obvious to me that the sbt-sonatype plugin could fail in this way, since sonatypeOpen could be implemented as a file-cached task or cached over subprojects using a scope filter.

To the prior point, I do concede that the documentation does state that sonatypeOpen, sonatypeClose, etc. are "commands". Still, I don't think many people are very acquainted with the distinction and consequences of using a command over a task.

Thanks for the report. Previoius verisions of sbt didn't allow running a task only for the root project, so I needed to use sbt command to run the conmand only once for a project.
Now that sbt can enable/disable plugins for each project, we should implement sonatypeXXX commands as tasks as mentioned in #48
And personally speaking I'm not publishing sub modules to different places, so the support for multiple projects needs to rely on external contributions. The current documentation might have several flaws as you pointed out.
I think it's good timing to start working on #48.

Indeed. I just had a lot of problems to make the tutorial on readme.md work for a multi project setting.

sbt-sonatype 3.0 has improved the support for releasing multi-module projects using a single staging repository. https://github.com/xerial/sbt-sonatype#uploading-artifacts-in-parallel


Blank localhost:8080 page

I followed the directions on downloading, compiling and installing the opensfm requirements.
I was able to preprocess the Berlin dataset successfully and create the reconstruction.meshed.json file.
But the web page comes up blank (black) when I run python viewer/server.py -d data/berlin
Am I missing something or could there be a package mismatch?  I had to fiddle with Flask to get rid of the jinja2/escape error.  Ended up upgrade to flask v2.1, then downgrading back to 1.1.2 (plus downgrading werkzeug, itsdangerous, jinja2 to < 2).  Either version produces the same blank screen.
I'm running on Windows 10, with an Anaconda virtual environment with Python 3.7.
Here's the package list:
Package                       Version

alabaster                     0.7.12
Babel                         2.10.1
certifi                       2<IP_ADDRESS>
charset-normalizer            2.0.12
click                         8.1.3
cloudpickle                   0.4.0
colorama                      0.4.4
cycler                        0.11.0
decorator                     5.1.1
docutils                      0.17.1
ExifRead                      2.1.2
Flask                         1.1.2
fonttools                     4.33.3
fpdf2                         2.4.6
idna                          3.3
imagesize                     1.3.0
importlib-metadata            4.11.4
itsdangerous                  1.1.0
Jinja2                        2.11.3
joblib                        0.14.1
kiwisolver                    1.4.2
MarkupSafe                    1.1.1
matplotlib                    3.5.2
networkx                      2.5
numpy                         1.21.6
opencv-python                 <IP_ADDRESS>
packaging                     21.3
Pillow                        9.1.1
pip                           22.1.2
py                            1.11.0
Pygments                      2.12.0
pyparsing                     3.0.9
pyproj                        3.2.1
pytest                        3.0.7
python-dateutil               2.8.2
pytz                          2022.1
PyYAML                        5.4
requests                      2.27.1
scipy                         1.7.3
setuptools                    62.3.2
six                           1.16.0
snowballstemmer               2.2.0
Sphinx                        4.0.2
sphinxcontrib-applehelp       1.0.2
sphinxcontrib-devhelp         1.0.2
sphinxcontrib-htmlhelp        2.0.0
sphinxcontrib-jsmath          1.0.1
sphinxcontrib-qthelp          1.0.3
sphinxcontrib-serializinghtml 1.1.5
typing_extensions             4.2.0
urllib3                       1.26.9
Werkzeug                      1.0.1
wheel                         0.37.1
xmltodict                     0.10.2
zipp                          3.8.0

Hi @shaharyuval ,
From the top of my head, the main problem I can think of is that you're pointing to the wrong directory.

Could try an absolute path like: C:/.....?
Does the folder contain also a reconstruction.json?
You can also look at the logs in your browser (I think F12 in Chrome)

Good luck,
Fabian

Thanks @fabianschenk,
I confirmed the existence of reconstruction.json and I tried setting an absolute path, but am still getting a blank page.
The Chrome logs reveal the following error:
opensfm.js:1 Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of "text/plain". Strict MIME type checking is enforced for module scripts per HTML spec.

Looking inside opensfm.js, I see the following:
/**
 * @format
 */

export {CommandExplainerControl} from './control/CommandExplainerControl.js';
export {Copier} from './control/Copier.js';
export {InfoControl} from './control/InfoControl.js';
export {Popup} from './control/Popup.js';
export {ThumbnailControl} from './control/ThumbnailControl.js';

export {DatController, FolderName} from './controller/DatController.js';
export {FileController} from './controller/FileController.js';
export {KeyController} from './controller/KeyController.js';
export {ListController} from './controller/ListController.js';
export {OptionController} from './controller/OptionController.js';

export * as ProviderMath from './provider/math.js';
export {DataConverter} from './provider/DataConverter.js';
export {OpensfmDataProvider} from './provider/OpensfmDataProvider.js';

export {AxesRenderer} from './renderer/AxesRenderer.js';
export {CustomRenderer} from './renderer/CustomRenderer.js';
export {EarthRenderer} from './renderer/EarthRenderer.js';

export {FileLoader} from './ui/FileLoader.js';
export {FileSelecter} from './ui/FileSelecter.js';
export {OpensfmViewer} from './ui/OpensfmViewer.js';
export {OrbitCameraControls} from './ui/OrbitCameraControls.js';

export {CancelledError} from './util/Error.js';
export {EventEmitter} from './util/EventEmitter.js';
export * from './util/coords.js';
export * from './util/ids.js';
export * from './util/params.js';
export * from './util/types.js';

I'm pretty clueless about JavaScript, but the error above suggests this has to do with the headers rather than the content, no?

Is there a particular version of Python that's been verified with this environment?

Hi @shaharyuval ,
According to Google, the error you get is because your server doesn't tell the browser that it's a JS website, so it's neither a Python nor JavaScript problem. You can also try running a different browser.
You can also try to start the server with a different python version, e.g. python3 instead of just python.

Thanks @fabianschenk,
I followed your lead and did some more googling along these lines.  I found this Stackoverflow: https://stackoverflow.com/questions/68584547/flask-server-not-sending-js-module-script
And renamed viewer/src/opensfm.js -> opensfm.mjs (and adjusted the reference to the module in viewer/index.html according).  And... voila! Works like a charm on Windows.

All - I had a similar problem with a blank page and my root cause was directory permissions on the node_module folder. If you're running Linux, make sure your user has read/write permissions to that folder after running ./node_modules.sh.
Looking at the log output of F12/inspection in the browser was the perfect troubleshooting step though! Those logs led me right to the issue.


CIs needs to have Graphviz installed

The CIs do not have Graphviz installed and some tests (@unittest.skipIf(not HAS_GRAPHVIZ,...)).
Skipping these tests allowed PR #3005 which introduced a bug (fixed in #3022).

I don't think this has been true for sometime. We definitely install graphiz in CI and we even run the tutorials and jupyter executes using graph drawers based on graphviz (via retworkx and pydot) for docs builds. I also looked at a recent ci run and these tests are executing: https://dev.azure.com/qiskit-ci/qiskit-terra/_build/results?buildId=27042&view=logs&j=cd283863-fb6a-5830-043c-9c2ff8e5eadb&t=2cfcf938-699c-5ca1-acca-22b32300fd1d&l=10727 . I'm going to close this issue as there isn't anything left to do on it. It might be worth opening up a new issue though on migrating these visualization tests to the binder based jupyter workflow.


Add a namespace column to the metrics tables

I'm also moving the PodList.jsx api to not use the ListPods api (as with the deployments and replication controllers pages). The code could also be moved in to use the PodOwnerList.jsx code, but I'll keep this change small.
Also, squish the metrics columns a bit to better support long resource names.

Fixes #786

Hmmmm well the resource is the thing you're actually interested in when you visit a page, and kubectl seems to display the Name column first (granted they don't display namespace). Hierarchically it makes sense. We could also consider making Name the first column in the CLI. They should probably be consistent though. I'll change it here so they match.
About linking the namespace to the same thing as the resource name: if we have namespaces as a top level component we can get stats about wouldn't it be confusing? I'd expect a link on a namespace to take me to a page about that namespace. I would find it confusing to have two different concepts (e.g. namespace and rc name) taking me to the same page. I'd expect two links to take me to different places. I don't think we should link just for the sake of not having the second column be the only linked column. And if it's the case we really don't like that look we could consider keeping the name column first?
Fixed the right aligning.

For the multiple sorting problem, there's no way to sort by more than one column I think, but we could do something like filtering on the namespace column, then sorting on the name column would work. I'd rather do that in a separate PR though, still need to figure out if that's doable with the page refresh rate we have.

omg, I thought I'd checked those. I ensured the links were correct, but didn't actually pay attention to the displayed name :| thanks!


Upgrade npm modules

Upgrade npm modules so node-ledger-rest can be run on newer Node.js
versions.
It also fixes this exception:
TypeError: The super constructor to "inherits" must not be null or undefined
Fixes #6

Thank you for the pull request @carlosyslas.


Idea: Comparison of some Result libs

I'd love your feedback on LightResults if you ever have the time to look.


Ferrodri/agora 1551 various responsive issues

Preview link: https://agora-next-m69tadsug-voteagora.vercel.app/

PR-Codex overview
This PR focuses on updating the Tailwind CSS configuration and making UI improvements in various components.
Detailed summary:

Updated tailwind.config.js to modify the spacing and minimum width values.
Added minWidth breakpoint for desktop in tailwind.config.js.
Updated the class names and styles in Header.jsx, DelegateStatementContainer.tsx, PageContainer.tsx, BetaBanner.tsx, LogoLink.jsx, and page.tsx.
Improved the layout and responsiveness of the components in Header.jsx, DelegateStatementContainer.tsx, PageContainer.tsx, BetaBanner.tsx, LogoLink.jsx, and page.tsx.
Added a new paragraph element with a class name in DelegateStatementContainer.tsx.
Updated the class names and styles in page.tsx for better alignment and spacing.

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

This is looking good on the visual side ty! Minor issue – on mobile the logo on the left doesnt really work. Not part of this issue, but since you're here, could be addressed in the same PR too. There's no good solution here, but I would hide the Agora logo and the vertical bar on mobile and simply show only the OP logo

@yitongzhang just resolved your comments, here is the preview link: https://agora-next-alfch19l8-voteagora.vercel.app/
Could you please merge since I am not authorized to merge into main

my bad @ferrodri
updated permissions, you should be able to merge


[MongoDB] Mention the Enterprise Server edition in the description

https://endoflife.date/mongodb does not mention there is a community and an enterprise edition.
Explaining this and the differences between the two could be beneficial to endoflife.date users.

The dates for both are the same right? How about something like this:

MongoDB offers Enterprise Advanced Support, which includes Technical Support, Extended Lifecycle Support Add-On with up to 2 years of coverage, and a license for MongoDB Enterprise Server.

The dates for both are the same right?

There is no mention of extended support on https://www.mongodb.com/try/download/enterprise or on https://www.mongodb.com/support-policy/lifecycles.
But I do not understand this on https://www.mongodb.com/products/enterprise-advanced/support:

MongoDB Extended Lifecycle Support Add-On (ELS Add-On) provides you with ongoing technical support for a minor version of MongoDB after it reaches its End of Life (EOL) date, giving you peace of mind and the flexibility to upgrade to newer versions of the database at your own pace.

Does it mean we could add an extended support column with date = EOL date + 2 years for each release cycle on https://endoflife.date/mongodb ?

It's unclear when the 2 year window starts. The page only says "Up to two year coverage window", so I'm guessing this could be shorter for some versions.
Reached out by filling the form at https://www.mongodb.com/contact/extended-lifecycle-support-add-on.
If we add the column, we should also make it clear that it is only available for Enterprise users.

MongoDB sales team reached out to me, and that didn't go anywhere, since they couldn't answer our queries. Trying again.


Feature idea: Ban using var

The evolution of C# is too fast. Some of the new features even reduce the LOC and removes whole level of pyramid of enterprise code (also know as pyramid of doom). That damages quartal bonuses based on newly writen LOC. The "flat" using statement is of them.
Wrong:
using var writer = new StreamWriter(...);

Correct:
using (var writer = new ...)
{
   ...
}

Resolved, valiantly, via #30


Support autocomplete by indexing tags and values for a given service and operation name

Requirement - what kind of business use case are you trying to solve?
Support autocomplete by indexing tags and values for a given service and operation name

Problem - what in Jaeger blocks you from solving the requirement?
There are no API implemented in backend yet to add tags and retrieve tags based on service and operation name

Impact of the problem
No impact. It is an improvement for UX.
Proposal - what do you suggest to solve the problem or improve the existing situation?
Create  API in the query module for adding and fetching tags for particular service and operation name

Any open questions to address

It was mentioned in 364 to use the service name while filtering tags. It makes sense to add the operation name. As the tags will be based on the service and operation name as well.
Should the API's be done on the query module or any other?

This is a dup of #364, please add your comments there. Are you interested in working on this?

I am working on this, just that the issue exists in UI repo. But the work has to be done on jaeger server as well. So created this issue.
I have started to explore the code. Will soon send out a WIP PR.


View Not Found Exception

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;

import io.github.sporklibrary.Spork;
import io.github.sporklibrary.annotations.BindLayout;
import io.github.sporklibrary.annotations.BindView;

@BindLayout(R.layout.activity_test)
public class TestActivity extends AppCompatActivity {

    @BindView(R.id.textTest)
    TextView txtView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Spork.bind(this);

        txtView.setText("Hello Test");
    }
}

Below is XML Layout
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@mipmap/main_bg"
    android:orientation="vertical"
    tools:context="com.devdigital.glowmotion.view.activities.FillOutBasicDataActivity">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/transparent"
        android:fitsSystemWindows="true"
<EMAIL_ADDRESS>        app:elevation="0dp">

        <include
            android:id="@+id/scanner_toolbar"
            layout="@layout/toolbar" />
    </android.support.design.widget.AppBarLayout>

    <TextView
        android:id="@+id/textTest"
        android:layout_width="@dimen/DP200"
        android:layout_height="@dimen/DP200"
        android:layout_gravity="center"
        android:layout_marginBottom="@dimen/DP5"
        />
</LinearLayout>

FATAL EXCEPTION: main
Process: com.devdigital.glowmotion.debug, PID: 19629
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.devdigital.glowmotion.debug/com.devdigital.glowmotion.TestActivity}: io.github.sporklibrary.exceptions.BindException: BindView failed for TestActivity: View not found
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Caused by: io.github.sporklibrary.exceptions.BindException: BindView failed for TestActivity: View not found

Thanks for your bug report. I have some questions:

What version of the library are you using? (can you post your build.gradle dependency?)
Are you sure that activity_test.xml is the layout you posted?
If so: are you sure that the layout being loaded doesn't have an alternative layout override (e.g. for tables or so, like /layout-sw600dp/) and that this layout has the specified view defined?

I resolved the problem: proguard is obfuscating the method names, which disallows the reflection code to find the Android bindings.
There are 2 solutions:
Solution 1
Add this to your proguard file:
-keep class io.github.sporklibrary.SporkAndroid { *; }

Solution 2
Call this code in Application::onCreate():
SporkAndroid.initialize(Spork.getBinderManager());

I will update the proguard documentation later regarding this issue.

Other proguard rules you should add:
-keep public class io.github.sporklibrary.** { *; }
-keep public interface io.github.sporklibrary.** { *; }
-keep public enum io.github.sporklibrary.** {
	**[] $VALUES;
	public *;
}

I'lll embed these into Spork tonight and I'll publish a new version.

Spork-Android version 2.4.3 is released and has all ProGuard fixes in it.
I've tested in my own project with obfuscation and it all seems to work.
You can remove any custom ProGuard rules.
I'll append the integration tests later this week to avoid this issue.
Thank you very much for reporting it!


Missing operators

Missing a couple mathematical operators.
%, probably some others.

Missing list:

[ ] modulus, %
[ ] unary, -
[ ] powerof, ^
[ ] ternary? (Doesn't exist, but replicated by Lua's and/or behaviours.)


properties subsition with liquibase.properties file

Description
At this moment liquibase doesnt support properties substitution through liquibase properties file. This issue is to request this new feature  and discuss about it.
This request comes from this other issue #3249

Any updates?

Any updates on this issue?


fix: attribute mappings ignored

Problem
https://github.com/aws-amplify/amplify-backend/issues/963
Inspired by https://github.com/aws-amplify/amplify-backend/pull/970, this is a slight modification that catches one more edge case where the customer may provide mappings and we should not override them if so.
Also fixes merge conflicts.
Attribute mappings will be merged, instead of replaced, if applicable.
Corresponding docs PR, if applicable:
Validation
Tests added to ensure:

we don't ignore customer provided mappings, and we merge them instead
we allow customer to provider their own mappings, even though we provide a default email mapping, customer can still provider their own email mapping

Checklist

[x] If this PR includes a functional change to the runtime behavior of the code, I have added or updated automated test coverage for this change.
[ ] If this PR requires a change to the Project Architecture README, I have included that update in this PR.
[ ] If this PR requires a docs update, I have linked to that docs PR above.
[x] If this PR modifies E2E tests, makes changes to resource provisioning, or makes SDK calls, I have run the PR checks with the run-e2e label set.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

When is this going to be released?

Was this released? the issue seems to be still exist in the latest version?


Output markdown is formatted wrong after multi-lang save

Hello
I am trying out Grav because I need a good multilingual cms for a client, however I ran into an issue.
I have defined a page that lists content from a specific taxonomy like so :
---
title: Category title
content:
    items:
<EMAIL_ADDRESS>category_title
---

when I edit this page and save it under another language it generates this content :
---
title: Category title
content:
    items<EMAIL_ADDRESS>category_title'
---

I tried to switch between single and double quotes and it did nothing. Tried without quotes and it doesn't work.
I think this is a bug, correct me if I am wrong please.

I cannot replicate the problem, by pasting your same snippet.
Does that page use a custom blueprint?

I am using version 1.3.0-rc.3 as well as the default Antimatter theme.
If it helps I tried with 4 languages enabled : french (default), english, spanish and chinese.
I will try to setup a new site from scratch and try the same see if I can replicate.

Just tried again in a Linux environment here is the outcome :

if I simply enable fr and en as languages everything works fine, when I save the page it formats the items nicely like so

items:
    @taxonomy.category:
        urban

however as soon as I added es and zh to the list then whenever I save a page it messes up the items and outputs them like so items<EMAIL_ADDRESS>urban'
i then tried to disable es and zh but when I save then it still formats it wrong.

I will try to to another fresh install, but I was able to reproduce on Windows and Linux already so I am pretty sure something is up

How to replicate :

Fresh install from downloaded zip of rc from site, no language settings nothing, go straight to page creation.
Add a blog with (any syntax you please, I think I tried most of them...)

---
title: Blog
content:
    items:
<EMAIL_ADDRESS>urban
---

Add an item with the right taxonomy

---
taxonomy:
    category:
        - urban
---

Hello World

Check if it works and it does.
Go in backend and go to the blog page.
Don't even need to change anything just hit save.
The outputted page is now :

---
title: Blog
content:
    items<EMAIL_ADDRESS>urban'

And the listing doesn't work now for obvious syntax problems.
I have no idea how this happens, I thought it had to do with line endings at first, then languages but it is really inconsistent...

Mmm, I followed the instructions but I'm still unable to replicate. I also tried downloading and installing a fresh RC. Might be an environment issue. You mention it just happens on Windows, what is the stack used? XAMPP or others?

i get the same issue

I experience the same problem, but only when I save in "normal mode". If I edit and save in "expert" mode everything works as expected.


Nightly panic in cubeb caused by PA_SINK_SET_FORMATS flag (Firefox bug 1375873)

Hello, it appears this library is crashing some Linux users of Nightly Firefox, see https://bugzilla.mozilla.org/show_bug.cgi?id=1375873
There's a proposed patch to media/libcubeb/cubeb-pulse-rs/pulse-rs/src/lib.rs at https://reviewboard.mozilla.org/r/152352/diff/1#index_header

Thanks for reporting. A fix was landed in https://bugzil.la/1376000, but the fix in https://bugzil.la/1375873 corrects the try_from function, so I've upstreamed it in PR #12.

Fixed by #12


Database should be hosted on separate VM

Yes databases are hosted in separate VM
Details - https://github.com/airavata-courses/HogwartsRejects/wiki/Setting-up-your-kubernetes-cluster


[Question] Reconfiguring Traefik

Hey, first of all, thank you for this repo! :)
While playing around with it, I observed some things I couldn't figure out on my own. Sorry I'm completely new to terraform. A few days ago I was able to specify a cluster_name and all went fine, but now with the latest version it fails with
╷
│ Error: name is already used (uniqueness_error)
│
│   with hcloud_placement_group.control_plane[0],
│   on main.tf line 50, in resource "hcloud_placement_group" "control_plane":
│   50: resource "hcloud_placement_group" "control_plane" {
│
╵
╷
│ Error: name is already used (uniqueness_error)
│
│   with hcloud_placement_group.agent[0],
│   on main.tf line 56, in resource "hcloud_placement_group" "agent":
│   56: resource "hcloud_placement_group" "agent" {
│
╵

So I went ahead without a cluster_name for now, no big deal.
But the crucial thing to me now is the ability to change the traefik config. I changed the traefik_additional_options and expected that an additional terraform apply... would do the trick, but that's not the case. So I copy/pasted the kustomization_backup file to kustomization.yaml and invoking kubectl apply -k ./ fails with an error, basically saying that the traefik_config.yaml cannot be found. My next step is to copy/paste the traefik_config.yaml.tpl and continue from there, but it feels like this could be improved or is unexpected actually. In addition to traefik_additional_options I have set these values in terraform.tfvars
traefik_acme_tls   = true
traefik_acme_email = "<email>"

So basically my question ist - how am I supposed to reconfigure traefik without destroying the whole cluster :D

Basically, to reconfigure Traefik, just use traefik_congig.yaml (copy from the template indeed) and edit. They apply with kubectl apply -f.
For the uniqueness name error, make sure your nodepools do not have the same names.
If you are sure it's related to the cluster name, let me know! Will check anyways.

As for SSL, better go with cert-manager or Cloudfare. Please search the issues, we've discussed this in others threads already! ☺

@mysticaltech thanks for your hint to cert-manager or cloudfare, I will look into this.
As for the cluster_name: I started from scratch with the cluster_name set and it failed. I have not altered any names of my nodepools

Ok, thanks for the confirmation, I will investigate the cluster name issue!

Hey @skriems, the cluster_name works well, just tried (see screenshot). The only thing is that it has to respect the same format as the domain name, only alphanumeric or/and dashes eventually, so other special characters are allowed.
Also, make sure that your different nodepools all have different names! Last but not least, do migrate to the latest version of the cluster.

Ah, it is also possible that you already had another cluster in your account with the same name! That would also cause the uniqueness error!

ok then that is definitely the cause :)


increase go tests timeout to 30m

I think, the reason may be that those tests are unable to pull the rc4 version of timescaledb which is why it is stuck infinitely.


Range/noUiSlider control malfunctioning on touch devices

If you use the "Range"-control/noUiSlider (e.g. the demo http://materializecss.com/forms.html) on mobile devices, it catches the focus and does not release it again.
Means: You cannot use any other control any more.
To reproduce:

Shift a handle of the noUISlider with your finger
Shift the other handle or try to use another control

If it does not immediately "glue" on your finger, try it a second or third time.
I've tested with various Apple devices and a Google Nexus. No problems on desktops.
The original noUiSlider does not show this behaviour.
Appendix:
Can happen on desktop browsers as well, although more difficult to reproduce.
Overwriting nouislider.min.js from https://refreshless.com/nouislider/ seems to fix this bug.

@Tomer1c  which version of nouislider did you used to fix this bug?
11.0.3 Kills the CSS from Materialize.

@Syndlex: I "mixed in" NoUISlider 10.0.0 from 5/2017.

+1 for that, the issue is still present. Any progress on this?

HTML5 Range component seems to exhibit a problem where touchleave event is not triggered (on touch devices and chrome68 testing environment) and so, thumb bubble does not get released.
I've tweeked materialize.js and replaced touchleave event to touchend.  Also _handleRangeChange() is triggered right after touchend, so I've also added condition to check "this._mousedown" to avoid thumb bubble popping up right after touchend.
Is touchleave event commonly supported on all browsers?

For noUiSlider there is a simple fix. To the class .noUi-handle-touch-area add the parameter: z-index: 5. Thus, the touch area will be "higher" than the slider and sticking will disappear.

+1 issue still exists. Added nouislider directly as dependency and used.

Issue is still exist

For noUiSlider there is a simple fix. To the class .noUi-handle-touch-area add the parameter: z-index: 5. Thus, the touch area will be "higher" than the slider and sticking will disappear.

That worked!


FoundationEssentials: avoid precondition failure on Windows

Repair the error reporting on Windows in the case of a failure in SHGetKnownFolder - the returned value is a HRESULT, which is the extended error code unlike the Win32 APIs which return a BOOL.
The "Recyle Bin" is a virtual folder and does not have an associated path with the folder that we can query. Undo the implementation here for the time being to avoid the assertion failure in the runtime.

@swift-ci please test


More fine grained copy and paste

Sorry if there's already an issue about this.
I'd really like more fine grained copy and paste options. I believe the best way to do this is to let the user select any text in the graph/linear view and making ctrl-c/cmd-c copy that text. This way, the user can copy an address, opcodes, the instruction, the instruction operands, multiple lines of instructions, etc.
I'm fine with adding some more copy commands to the context menu (copy address, copy instruction, copy line, etc.), but I think having freeform selection is much more important and powerful.

Dupe of #91


Sensors Missing After Upgrade to 2022.11.5 - Required Restart of the Add-on to Restore

After upgrading to 2022.11.5, the onedrive backup sensors were unavailable.  The sensors were promptly restored after restarting the add-on.    Glad it was easily resolved, but wanted to share in case there is helpful information I can gather from the logs.

Thanks. The sensors are refreshed every run interval for the addon. Possibly after the upgrade they were cleared for some reason. A restart of the addon is a way to force a new interval to run otherwise it would have likely sorted itself out in the next run.
In version 1.2 I'm reducing the refresh interval to every 5 minutes so things should happen much quicker.


Installing Via Mops.one

When trying to add http-parser to my project using mops add, it fails with the custom  aviate-labs fields from package-set, for mo:/json
Arguably, you're doing a valid approach with the package-set for vessel, but mops doesn't parse the aviate labs ones successfully. Could we add a full mops.toml file with dependencies?

Thanks for reporting the issue!
I found that the problem was caused by a package set in the motoko-matchers library that was removed from GitHub.
To fix this, I removed the dependency and updated the vessel config files.
You should now be able to install the package with mops.
If it doesn't work, please try clearing the cache with mops cache clean and install the package again.

There's one other tweak - the JSON dependency has changed. Line 246 needs to be updated to
JSON.parse(text())

The current JSON.Parser().parse(text()) is no longer valid

Thanks for pointing this out.
I've updated that line in the code and pushed a new release (v0.1.2)


Nuances involving async operations & the use of Polymer.dom.flush() seemingly benefits having a code snippet provided (DOM API Docs)

Given the unconventional (non-standard) way that insert, append, & remove operations are transacted lazily, it seems in the best interest of developers reading up on Polymer to have a code snippet demonstrating the correct usage of Polymer.dom.flush() w/ such operations.
This is particularly true in the contexts of having to use Polymer.dom.flush() & window.getComputedStyle, assuming the latter was in fact the method referred by the getComputedStyle reference in the documentation.

Maybe in the "async operations" box we could add a little code snippit?

This issue was moved to Polymer/docs#1159


Skeleton.leaf has no effect

Provided example has no any effect.
return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: Text(widget.title),
      ),
      body: const Center(
        child: Skeletonizer(
          child: Skeleton.leaf(
            child: Card(
              child: ListTile(
                title: Text('The title goes here'),
                subtitle: Text('Subtitle here'),
                trailing: Icon(Icons.ac_unit, size: 40),
              ),
            ),
          ),
        ),
      ),
    );

above code result:

flutter doctor:
[✓] Flutter (Channel beta, 3.21.0-1.0.pre.2, on macOS 14.4 23E214 darwin-arm64, locale ru-RU)
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[!] Xcode - develop for iOS and macOS (Xcode 15.2)
✗ Unable to get list of installed Simulator runtimes.
[✓] Chrome - develop for the web
[!] Android Studio (version unknown)
✗ Unable to determine Android Studio version.
[✓] IntelliJ IDEA Ultimate Edition (version 2023.3.4)
[✓] VS Code (version 1.88.1)
[✓] Connected device (4 available)
[✓] Network resources

@ripls56 This works fine on the latest stable version of Flutter, might this be caused by some change in the beta channel? can you check if the issue exists in on the stable channel?

@ripls56 This works fine on the latest stable version of Flutter, might this be caused by some change in the beta channel? can you check if the issue exists in on the stable channel?

Also tried disable impeller, same thing:

full code (if needed):
import 'package:flutter/material.dart';
import 'package:skeletonizer/skeletonizer.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(
          seedColor: Colors.deepPurple,
          brightness: Brightness.dark,
        ),
        useMaterial3: true,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  void _incrementCounter() {
    setState(() {
      _counter++;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Colors.red,
        title: Text(widget.title),
      ),
      body: const Center(
        child: Skeletonizer(
          enabled: true,
          child: Skeleton.leaf(
            child: Card(
              child: ListTile(
                title: Text('The title goes here'),
                subtitle: Text('Subtitle here'),
                trailing: Icon(Icons.ac_unit, size: 40),
              ),
            ),
          ),
        ),
      ),
    );
  }
}

Ok its probably android only issue. Working on macos and web as well

Yeah, ran it on the emulator expectantly and it doesn't work

Hey @ripls56 please confirm the fix and close

Yep, everything works now, thanks for fix


Disable DevTextBuffer by default

This is code ported from an older PR that is still in development. Could possibly look at checking if sv_cheats is enabled, but adding any kind of branching in the inner function seems to crash on a stack canary for some reason.

As Amos pointed out in discord, the first parameter to the function is a pointer and uses uint64_t and not int, which is why it would crash whenever I added any code, as it would overflow. Working on a fix and adding a convar to change behaviour.

In this case char* would be better right? since it is pointing to a char* that contains the path

Yes, as it adds context. Its still pretty much the same otherwise.

this isn't a complete fix - DevTextBufferWrite should be behind the same convar as you can use it to endlessly write into memory and cause an OOM crash on the client. (+ there's no point in being able to write into the buffer if you can't also dump to file)

isnt it supper easy to set a convar from squirrel. so this fix wont do anything

Superseded by #211


x/net/http2: PROTOCOL_ERROR after GOAWAY

What version of Go are you using (go version)?

$ go version
go version go1.12.4 darwin/amd64

Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (go env)?
This reproduces on Linux as well.
We are running http2 servers behind a TCP ELB loadbalancer (we need to terminate SSL at the server). This is causing unbalanced traffic since clients try to multiplex a single http2 connection. We had the idea of randomly sending GOAWAY to get clients to close their connections.
// CycleConnections sends a GOAWAY frame with a given probability after the request completes.
func CycleConnections(probability float64, next http.Handler) http.Handler {
	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		if r.ProtoMajor == 2 && rand.Float64() < probability {
			// The "Connection: close" header is turned into a GOAWAY frame by the http2 server.
			w.Header().Add("Connection", "close")
			log.Info("cycling http2 connection")
		}
		next.ServeHTTP(w, r)
	})
}

I then ran fake traffic using Vegeta to my server. So Go client/server.
What did you expect to see?
I expect that when a GOAWAY frame is sent, the server will complete processing of any open requests, and the client will open a new connection for new requests. This should all be transparent to user code. (I expected maybe I'd see http.Client return some errors about GOAWAY, but haven't seen that)
What did you see instead?
The connection close chance was set at 0.5. At low qps, <10, everything is fine, no errors. Ramping up qps to 50, I start seeing PROTOCOL_ERROR coming from the server. This is reproducible locally with no load balancer in between client/server.
Here's server and client logs for such occurrence:

Server logs
2019-05-17T12:44:52.115009-04:00 cycling http2 connection
2019-05-17T12:44:52.115013-04:00 http2: Framer 0xc000238460: read SETTINGS flags=ACK len=0
2019-05-17T12:44:52.115024-04:00 http2: server read frame SETTINGS flags=ACK len=0
2019-05-17T12:44:52.115093-04:00 http2: Framer 0xc000238460: read DATA stream=1 len=258 data="redacted"
2019-05-17T12:44:52.115147-04:00 http2: Framer 0xc000238460: read DATA flags=END_STREAM stream=1 len=0 data="redacted"
2019-05-17T12:44:52.115149-04:00 http2: server read frame DATA stream=1 len=258 data="redacted"
2019-05-17T12:44:52.11517-04:00 http2: Framer 0xc000238460: wrote WINDOW_UPDATE len=4 (conn) incr=258
2019-05-17T12:44:52.115205-04:00 http2: server read frame DATA flags=END_STREAM stream=1 len=0 data="redacted"
2019-05-17T12:44:52.115227-04:00 http2: Framer 0xc000238460: wrote WINDOW_UPDATE stream=1 len=4 incr=258
2019-05-17T12:44:52.118329-04:00 http2: Framer 0xc000238460: wrote GOAWAY len=8 LastStreamID=1 ErrCode=NO_ERROR Debug=\"\"
2019-05-17T12:44:52.11837-04:00 http2: Framer 0xc000238460: read HEADERS flags=END_HEADERS stream=3 len=8
2019-05-17T12:44:52.118409-04:00 http2: decoded hpack field header field \":authority\" = \"localhost:8443\"
2019-05-17T12:44:52.118433-04:00 http2: decoded hpack field header field \":method\" = \"POST\"
2019-05-17T12:44:52.118464-04:00 http2: decoded hpack field header field \":path\" = \"/api/sessions/authenticate\"
2019-05-17T12:44:52.118503-04:00 http2: server encoding header \":status\" = \"200\"
2019-05-17T12:44:52.118526-04:00 http2: server encoding header \"content-type\" = \"application/json\"
2019-05-17T12:44:52.118564-04:00 http2: server encoding header \"content-length\" = \"224\"
2019-05-17T12:44:52.118592-04:00 http2: decoded hpack field header field \":scheme\" = \"https\"
2019-05-17T12:44:52.118615-04:00 http2: decoded hpack field header field \"content-type\" = \"application/json; utf-8\"
2019-05-17T12:44:52.118637-04:00 http2: decoded hpack field header field \"content-length\" = \"258\"
2019-05-17T12:44:52.118663-04:00 http2: decoded hpack field header field \"accept-encoding\" = \"gzip\"
2019-05-17T12:44:52.118691-04:00 http2: decoded hpack field header field \"user-agent\" = \"Go-http-client/2.0\"
2019-05-17T12:44:52.118741-04:00 http2: server read frame HEADERS flags=END_HEADERS stream=3 len=8
2019-05-17T12:44:52.118743-04:00 http2: server encoding header \"date\" = \"Fri, 17 May 2019 16:44:52 GMT\"
2019-05-17T12:44:52.1188-04:00 http2: Framer 0xc000238460: wrote HEADERS flags=END_HEADERS stream=1 len=42
2019-05-17T12:44:52.118831-04:00 http2: Framer 0xc000238460: read DATA stream=3 len=258 data="redacted"
2019-05-17T12:44:52.118856-04:00 http2: server read frame DATA stream=3 len=258 data="redacted"
2019-05-17T12:44:52.118926-04:00 http2: server connection error from <IP_ADDRESS>:51029: connection error: PROTOCOL_ERROR
2019-05-17T12:44:52.118939-04:00 http2: Framer 0xc000238460: wrote DATA flags=END_STREAM stream=1 len=224 data="redacted"
2019-05-17T12:44:52.11898-04:00 http2: Framer 0xc000238460: read DATA flags=END_STREAM stream=3 len=0 data="redacted"
2019-05-17T12:44:52.118985-04:00 http2: server read frame DATA flags=END_STREAM stream=3 len=0 data="redacted"
2019-05-17T12:44:52.119036-04:00 http2: server connection error from <IP_ADDRESS>:51029: connection error: PROTOCOL_ERROR
2019-05-17T12:44:52.125133-04:00 http2: server connection from <IP_ADDRESS>:51031 on 0xc000e00820
2019-05-17T12:44:52.125193-04:00 http2: Framer 0xc000238b60: wrote SETTINGS len=24, settings: MAX_FRAME_SIZE=1048576, MAX_CONCURRENT_STREAMS=250, MAX_HEADER_LIST_SIZE=1048896, INITIAL_WINDOW_SIZE=1048576
2019-05-17T12:44:52.125383-04:00 http2: server: client <IP_ADDRESS>:51031 said hello
2019-05-17T12:44:52.125422-04:00 http2: Framer 0xc000238b60: wrote WINDOW_UPDATE len=4 (conn) incr=983041
2019-05-17T12:44:52.125466-04:00 http2: Framer 0xc000238b60: read SETTINGS len=18, settings: ENABLE_PUSH=0, INITIAL_WINDOW_SIZE=4194304, MAX_HEADER_LIST_SIZE=10485760
2019-05-17T12:44:52.125519-04:00 http2: server read frame SETTINGS len=18, settings: ENABLE_PUSH=0, INITIAL_WINDOW_SIZE=4194304, MAX_HEADER_LIST_SIZE=10485760
2019-05-17T12:44:52.125557-04:00 http2: server processing setting [ENABLE_PUSH = 0]
2019-05-17T12:44:52.125586-04:00 http2: server processing setting [INITIAL_WINDOW_SIZE = 4194304]
2019-05-17T12:44:52.125612-04:00 http2: Framer 0xc000238b60: wrote SETTINGS flags=ACK len=0
2019-05-17T12:44:52.125631-04:00 http2: server processing setting [MAX_HEADER_LIST_SIZE = 10485760]
2019-05-17T12:44:52.125646-04:00 http2: Framer 0xc000238b60: read WINDOW_UPDATE len=4 (conn) incr=1073741824
2019-05-17T12:44:52.125662-04:00 http2: server read frame WINDOW_UPDATE len=4 (conn) incr=1073741824
2019-05-17T12:44:52.125779-04:00 http2: Framer 0xc000238b60: read HEADERS flags=END_HEADERS stream=1 len=78
2019-05-17T12:44:52.125862-04:00 http2: decoded hpack field header field \":authority\" = \"localhost:8443\"
2019-05-17T12:44:52.125895-04:00 http2: decoded hpack field header field \":method\" = \"POST\"
2019-05-17T12:44:52.125939-04:00 http2: decoded hpack field header field \":path\" = \"/api/sessions/authenticate\"
2019-05-17T12:44:52.125992-04:00 http2: decoded hpack field header field \":scheme\" = \"https\"
2019-05-17T12:44:52.126016-04:00 http2: decoded hpack field header field \"content-type\" = \"application/json; utf-8\"
2019-05-17T12:44:52.126035-04:00 http2: decoded hpack field header field \"content-length\" = \"258\"
2019-05-17T12:44:52.126049-04:00 http2: decoded hpack field header field \"accept-encoding\" = \"gzip\"
2019-05-17T12:44:52.126064-04:00 http2: decoded hpack field header field \"user-agent\" = \"Go-http-client/2.0\"
2019-05-17T12:44:52.126068-04:00 http2: server read frame HEADERS flags=END_HEADERS stream=1 len=78
2019-05-17T12:44:52.126126-04:00 http2: Framer 0xc000238b60: read SETTINGS flags=ACK len=0
2019-05-17T12:44:52.12616-04:00 http2: server read frame SETTINGS flags=ACK len=0
2019-05-17T12:44:52.126183-04:00 http2: Framer 0xc000238b60: read DATA flags=END_STREAM stream=1 len=0 data="redacted"
2019-05-17T12:44:52.12622-04:00 http2: server read frame DATA flags=END_STREAM stream=1 len=0 data="redacted"
2019-05-17T12:44:52.126336-04:00 Request failed elapsed="171.371µs"
2019-05-17T12:44:52.126394-04:00 http2: server encoding header \":status\" = \"400\"
2019-05-17T12:44:52.126429-04:00 http2: server encoding header \"content-type\" = \"application/json\"
2019-05-17T12:44:52.126466-04:00 http2: server encoding header \"content-length\" = \"86\"
2019-05-17T12:44:52.126505-04:00 http2: server encoding header \"date\" = \"Fri, 17 May 2019 16:44:52 GMT\"
2019-05-17T12:44:52.126533-04:00 http2: Framer 0xc000238b60: wrote HEADERS flags=END_HEADERS stream=1 len=42
2019-05-17T12:44:52.126608-04:00 http2: Framer 0xc000238b60: wrote DATA flags=END_STREAM stream=1 len=86 data="redacted"
2019-05-17T12:44:52.12689-04:00 http2: Framer 0xc000238b60: read HEADERS flags=END_HEADERS stream=3 len=8
2019-05-17T12:44:52.126926-04:00 http2: decoded hpack field header field \":authority\" = \"localhost:8443\"
2019-05-17T12:44:52.126963-04:00 http2: decoded hpack field header field \":method\" = \"POST\"
2019-05-17T12:44:52.126986-04:00 http2: decoded hpack field header field \":path\" = \"/api/sessions/authenticate\"
2019-05-17T12:44:52.127016-04:00 http2: decoded hpack field header field \":scheme\" = \"https\"
2019-05-17T12:44:52.127031-04:00 http2: decoded hpack field header field \"content-type\" = \"application/json; utf-8\"
2019-05-17T12:44:52.127045-04:00 http2: decoded hpack field header field \"content-length\" = \"258\"
2019-05-17T12:44:52.127061-04:00 http2: decoded hpack field header field \"accept-encoding\" = \"gzip\"
2019-05-17T12:44:52.1271-04:00 http2: server read frame HEADERS flags=END_HEADERS stream=3 len=8
2019-05-17T12:44:52.127126-04:00 http2: decoded hpack field header field \"user-agent\" = \"Go-http-client/2.0\"

Client logs:
2019-05-17T12:44:52.106537-04:00 http2: Transport failed to get client conn for localhost:8443: http2: no cached connection was available
2019-05-17T12:44:52.114077-04:00 http2: Transport creating client conn 0xc0003e6900 to <IP_ADDRESS>:8443
2019-05-17T12:44:52.114147-04:00 http2: Framer 0xc000272700: wrote SETTINGS len=18, settings: ENABLE_PUSH=0, INITIAL_WINDOW_SIZE=4194304, MAX_HEADER_LIST_SIZE=10485760
2019-05-17T12:44:52.114176-04:00 http2: Framer 0xc000272700: wrote WINDOW_UPDATE len=4 (conn) incr=1073741824
2019-05-17T12:44:52.114241-04:00 http2: Transport encoding header \":authority\" = \"localhost:8443\"
2019-05-17T12:44:52.11427-04:00 http2: Framer 0xc000272700: read SETTINGS len=24, settings: MAX_FRAME_SIZE=1048576, MAX_CONCURRENT_STREAMS=250, MAX_HEADER_LIST_SIZE=1048896, INITIAL_WINDOW_SIZE=1048576
2019-05-17T12:44:52.114318-04:00 http2: Transport encoding header \":method\" = \"POST\"
2019-05-17T12:44:52.114342-04:00 http2: Transport encoding header \":path\" = \"/api/sessions/authenticate\"
2019-05-17T12:44:52.11437-04:00 http2: Transport encoding header \":scheme\" = \"https\"
2019-05-17T12:44:52.114404-04:00 http2: Transport encoding header \"content-type\" = \"application/json; utf-8\"
2019-05-17T12:44:52.114434-04:00 http2: Transport encoding header \"content-length\" = \"258\"
2019-05-17T12:44:52.114455-04:00 http2: Transport encoding header \"accept-encoding\" = \"gzip\"
2019-05-17T12:44:52.114498-04:00 http2: Transport received SETTINGS len=24, settings: MAX_FRAME_SIZE=1048576, MAX_CONCURRENT_STREAMS=250, MAX_HEADER_LIST_SIZE=1048896, INITIAL_WINDOW_SIZE=1048576
2019-05-17T12:44:52.114542-04:00 http2: Transport encoding header \"user-agent\" = \"Go-http-client/2.0\"
2019-05-17T12:44:52.114577-04:00 http2: Framer 0xc000272700: wrote HEADERS flags=END_HEADERS stream=1 len=78
2019-05-17T12:44:52.11461-04:00 http2: Framer 0xc000272700: wrote SETTINGS flags=ACK len=0
2019-05-17T12:44:52.114669-04:00 http2: Framer 0xc000272700: read WINDOW_UPDATE len=4 (conn) incr=983041
2019-05-17T12:44:52.114704-04:00 http2: Transport received WINDOW_UPDATE len=4 (conn) incr=983041
2019-05-17T12:44:52.114733-04:00 http2: Framer 0xc000272700: read SETTINGS flags=ACK len=0
2019-05-17T12:44:52.114763-04:00 http2: Transport received SETTINGS flags=ACK len=0
2019-05-17T12:44:52.11481-04:00 http2: Framer 0xc000272700: wrote DATA stream=1 len=258 data="redacted"
2019-05-17T12:44:52.114864-04:00 http2: Framer 0xc000272700: wrote DATA flags=END_STREAM stream=1 len=0 data="redacted"
2019-05-17T12:44:52.11527-04:00 http2: Framer 0xc000272700: read WINDOW_UPDATE len=4 (conn) incr=258
2019-05-17T12:44:52.115307-04:00 http2: Transport received WINDOW_UPDATE len=4 (conn) incr=258
2019-05-17T12:44:52.115345-04:00 http2: Framer 0xc000272700: read WINDOW_UPDATE stream=1 len=4 incr=258
2019-05-17T12:44:52.11537-04:00 http2: Transport received WINDOW_UPDATE stream=1 len=4 incr=258
2019-05-17T12:44:52.11802-04:00 http2: Transport encoding header \":authority\" = \"localhost:8443\"
2019-05-17T12:44:52.118053-04:00 http2: Transport encoding header \":method\" = \"POST\"
2019-05-17T12:44:52.118087-04:00 http2: Transport encoding header \":path\" = \"/api/sessions/authenticate\"
2019-05-17T12:44:52.118112-04:00 http2: Transport encoding header \":scheme\" = \"https\"
2019-05-17T12:44:52.118141-04:00 http2: Transport encoding header \"content-type\" = \"application/json; utf-8\"
2019-05-17T12:44:52.11816-04:00 http2: Transport encoding header \"content-length\" = \"258\"
2019-05-17T12:44:52.118192-04:00 http2: Transport encoding header \"accept-encoding\" = \"gzip\"
2019-05-17T12:44:52.118218-04:00 http2: Transport encoding header \"user-agent\" = \"Go-http-client/2.0\"
2019-05-17T12:44:52.118253-04:00 http2: Framer 0xc000272700: wrote HEADERS flags=END_HEADERS stream=3 len=8
2019-05-17T12:44:52.118371-04:00 http2: Framer 0xc000272700: wrote DATA stream=3 len=258 data="redacted"
2019-05-17T12:44:52.118425-04:00 http2: Framer 0xc000272700: read GOAWAY len=8 LastStreamID=1 ErrCode=NO_ERROR Debug=\"\"
2019-05-17T12:44:52.118456-04:00 http2: Transport received GOAWAY len=8 LastStreamID=1 ErrCode=NO_ERROR Debug=\"\"
2019-05-17T12:44:52.118504-04:00 http2: Framer 0xc000272700: wrote DATA flags=END_STREAM stream=3 len=0 data="redacted"
2019-05-17T12:44:52.118533-04:00 http2: Transport failed to get client conn for localhost:8443: http2: no cached connection was available
2019-05-17T12:44:52.118862-04:00 http2: Framer 0xc000272700: read HEADERS flags=END_HEADERS stream=1 len=42
2019-05-17T12:44:52.118913-04:00 http2: decoded hpack field header field \":status\" = \"200\"
2019-05-17T12:44:52.118961-04:00 http2: decoded hpack field header field \"content-type\" = \"application/json\"
2019-05-17T12:44:52.119014-04:00 http2: decoded hpack field header field \"content-length\" = \"224\"
2019-05-17T12:44:52.11905-04:00 http2: decoded hpack field header field \"date\" = \"Fri, 17 May 2019 16:44:52 GMT\"
2019-05-17T12:44:52.119087-04:00 http2: Transport received HEADERS flags=END_HEADERS stream=1 len=42
2019-05-17T12:44:52.11916-04:00 http2: Framer 0xc000272700: read DATA flags=END_STREAM stream=1 len=224 data="redacted"
2019-05-17T12:44:52.119196-04:00 http2: Transport received DATA flags=END_STREAM stream=1 len=224 data="redacted"
2019-05-17T12:44:52.125208-04:00 http2: Transport creating client conn 0xc0003e6c00 to <IP_ADDRESS>:8443
2019-05-17T12:44:52.125271-04:00 http2: Framer 0xc0004927e0: wrote SETTINGS len=18, settings: ENABLE_PUSH=0, INITIAL_WINDOW_SIZE=4194304, MAX_HEADER_LIST_SIZE=10485760
2019-05-17T12:44:52.12532-04:00 http2: Framer 0xc0004927e0: wrote WINDOW_UPDATE len=4 (conn) incr=1073741824
2019-05-17T12:44:52.125359-04:00 http2: Transport encoding header \":authority\" = \"localhost:8443\"
2019-05-17T12:44:52.125395-04:00 http2: Framer 0xc0004927e0: read SETTINGS len=24, settings: MAX_FRAME_SIZE=1048576, MAX_CONCURRENT_STREAMS=250, MAX_HEADER_LIST_SIZE=1048896, INITIAL_WINDOW_SIZE=1048576
2019-05-17T12:44:52.125456-04:00 http2: Transport encoding header \":method\" = \"POST\"
2019-05-17T12:44:52.125512-04:00 http2: Transport encoding header \":path\" = \"/api/sessions/authenticate\"
2019-05-17T12:44:52.125545-04:00 http2: Transport encoding header \":scheme\" = \"https\"
2019-05-17T12:44:52.125577-04:00 http2: Transport encoding header \"content-type\" = \"application/json; utf-8\"
2019-05-17T12:44:52.125609-04:00 http2: Transport encoding header \"content-length\" = \"258\"
2019-05-17T12:44:52.125647-04:00 http2: Transport encoding header \"accept-encoding\" = \"gzip\"
2019-05-17T12:44:52.125689-04:00 http2: Transport encoding header \"user-agent\" = \"Go-http-client/2.0\"
2019-05-17T12:44:52.12572-04:00 http2: Framer 0xc0004927e0: wrote HEADERS flags=END_HEADERS stream=1 len=78
2019-05-17T12:44:52.125759-04:00 http2: Transport received SETTINGS len=24, settings: MAX_FRAME_SIZE=1048576, MAX_CONCURRENT_STREAMS=250, MAX_HEADER_LIST_SIZE=1048896, INITIAL_WINDOW_SIZE=1048576
2019-05-17T12:44:52.125802-04:00 http2: Framer 0xc0004927e0: wrote SETTINGS flags=ACK len=0
2019-05-17T12:44:52.125829-04:00 http2: Framer 0xc0004927e0: read WINDOW_UPDATE len=4 (conn) incr=983041
2019-05-17T12:44:52.125852-04:00 http2: Framer 0xc0004927e0: wrote DATA flags=END_STREAM stream=1 len=0 data="redacted"
2019-05-17T12:44:52.125898-04:00 http2: Transport received WINDOW_UPDATE len=4 (conn) incr=983041
2019-05-17T12:44:52.125949-04:00 http2: Framer 0xc0004927e0: read SETTINGS flags=ACK len=0
2019-05-17T12:44:52.125987-04:00 http2: Transport received SETTINGS flags=ACK len=0
2019-05-17T12:44:52.126523-04:00 http2: Transport encoding header \":authority\" = \"localhost:8443\"
2019-05-17T12:44:52.126554-04:00 http2: Transport encoding header \":method\" = \"POST\"
2019-05-17T12:44:52.126586-04:00 http2: Transport encoding header \":path\" = \"/api/sessions/authenticate\"
2019-05-17T12:44:52.12661-04:00 http2: Transport encoding header \":scheme\" = \"https\"
2019-05-17T12:44:52.126639-04:00 http2: Transport encoding header \"content-type\" = \"application/json; utf-8\"
2019-05-17T12:44:52.126679-04:00 http2: Transport encoding header \"content-length\" = \"258\"
2019-05-17T12:44:52.126701-04:00 http2: Transport encoding header \"accept-encoding\" = \"gzip\"
2019-05-17T12:44:52.126728-04:00 http2: Framer 0xc0004927e0: read HEADERS flags=END_HEADERS stream=1 len=42
2019-05-17T12:44:52.126764-04:00 http2: Transport encoding header \"user-agent\" = \"Go-http-client/2.0\"
2019-05-17T12:44:52.1268-04:00 http2: Framer 0xc0004927e0: wrote HEADERS flags=END_HEADERS stream=3 len=8
2019-05-17T12:44:52.126845-04:00 http2: decoded hpack field header field \":status\" = \"400\"
2019-05-17T12:44:52.127143-04:00 http2: decoded hpack field header field \"content-type\" = \"application/json\"
2019-05-17T12:44:52.127383-04:00 http2: Framer 0xc0004927e0: wrote DATA stream=3 len=258 data="redacted"
2019-05-17T12:44:52.127587-04:00 http2: decoded hpack field header field \"content-length\" = \"86\"
2019-05-17T12:44:52.12762-04:00 http2: Framer 0xc0004927e0: wrote DATA flags=END_STREAM stream=3 len=0 data="redacted"
2019-05-17T12:44:52.127654-04:00 http2: decoded hpack field header field \"date\" = \"Fri, 17 May 2019 16:44:52 GMT\"
2019-05-17T12:44:52.127687-04:00 http2: Transport received HEADERS flags=END_HEADERS stream=1 len=42
2019-05-17T12:44:52.127749-04:00 http2: Framer 0xc0004927e0: read DATA flags=END_STREAM stream=1 len=86 data="redacted"
2019-05-17T12:44:52.127791-04:00 http2: Transport received DATA flags=END_STREAM stream=1 len=86 data="redacted"
2019-05-17T12:44:52.127823-04:00 http2: Framer 0xc0004927e0: read WINDOW_UPDATE len=4 (conn) incr=258
2019-05-17T12:44:52.12784-04:00 http2: Transport received WINDOW_UPDATE len=4 (conn) incr=258
2019-05-17T12:44:52.127884-04:00 http2: Framer 0xc0004927e0: read WINDOW_UPDATE stream=3 len=4 incr=258
2019-05-17T12:44:52.12791-04:00 http2: Transport received WINDOW_UPDATE stream=3 len=4 incr=258
2019-05-17T12:44:52.131423-04:00 http2: Framer 0xc0004927e0: read GOAWAY len=8 LastStreamID=3 ErrCode=NO_ERROR Debug=\"\"
2019-05-17T12:44:52.131459-04:00 http2: Transport received GOAWAY len=8 LastStreamID=3 ErrCode=NO_ERROR Debug=\"\"
2019-05-17T12:44:52.13163-04:00 http2: Framer 0xc0004927e0: read HEADERS flags=END_HEADERS stream=3 len=7
2019-05-17T12:44:52.131665-04:00 http2: decoded hpack field header field \":status\" = \"200\"
2019-05-17T12:44:52.131697-04:00 http2: decoded hpack field header field \"content-type\" = \"application/json\"
2019-05-17T12:44:52.13173-04:00 http2: decoded hpack field header field \"content-length\" = \"224\"
2019-05-17T12:44:52.131759-04:00 http2: decoded hpack field header field \"date\" = \"Fri, 17 May 2019 16:44:52 GMT\"
2019-05-17T12:44:52.131788-04:00 http2: Transport received HEADERS flags=END_HEADERS stream=3 len=7
2019-05-17T12:44:52.131851-04:00 http2: Framer 0xc0004927e0: read DATA flags=END_STREAM stream=3 len=224 data="redacted"
2019-05-17T12:44:52.131896-04:00 http2: Transport received DATA flags=END_STREAM stream=3 len=224 data="redacted"
2019-05-17T12:44:52.13703-04:00 http2: Transport failed to get client conn for localhost:8443: http2: no cached connection was available

CC @bradfitz @tombergan
Per §<IP_ADDRESS>:

HTTP/2 does not use the Connection header field to indicate connection-specific header fields; in this protocol, connection-specific metadata is conveyed by other means. An endpoint MUST NOT generate an HTTP/2 message containing connection-specific header fields; any message containing connection-specific header fields MUST be treated as malformed (Section <IP_ADDRESS>).

I don't see anything in the x/net/http2 or x/net documentation that suggests an exception to this rule.
I don't know whether there is a documented, supported way to provoke a Go HTTP/2 server to gracefully close the connection after serving a request, but Connection: close does not appear to be it.

@bcmills, the http2 server already maps a Handler's Connection: close response to a GOAWAY, as the OP referenced in their comment.
The x/net/http2/server.go code is:
                // "Connection" headers aren't allowed in HTTP/2 (RFC 7540, <IP_ADDRESS>),
                // but respect "Connection" == "close" to mean sending a GOAWAY and tearing
                // down the TCP connection when idle, like we do for HTTP/1.
                // TODO: remove more Connection-specific header fields here, in addition
                // to "Connection".
                if _, ok := rws.snapHeader["Connection"]; ok {
                        v := rws.snapHeader.Get("Connection")
                        delete(rws.snapHeader, "Connection")
                        if v == "close" {
                                rws.conn.startGracefulShutdown()
                        }
                }

This looks like the server & client were both speaking at the ~same time and had messages that crossed paths in flight:
The server was sending:
GOAWAY
The client was sending:
HEADERS+DATA (a POST request with a body)
The server got the HEADERS and ignored it, since it was already inGoAway state, and just assumed that the client might've already had that in flight.
func (sc *serverConn) processHeaders(f *MetaHeadersFrame) error {
        sc.serveG.check()
        id := f.StreamID
        if sc.inGoAway {
                // Ignore.
                return nil
        }

But it seems like that safety measure was only added for GET requests, because when we get the POST requests body in te DATA frame:
func (sc *serverConn) processData(f *DataFrame) error {
        sc.serveG.check()
        if sc.inGoAway && sc.goAwayCode != ErrCodeNo {
                return nil
        }
        data := f.Data()

        // "If a DATA frame is received whose stream is not in "open"
        // or "half closed (local)" state, the recipient MUST respond
        // with a stream error (Section 5.4.2) of type STREAM_CLOSED."
        id := f.Header().StreamID
        state, st := sc.state(id)
        if id == 0 || state == stateIdle {
                // Section 5.1: "Receiving any frame other than HEADERS
                // or PRIORITY on a stream in this state MUST be
                // treated as a connection error (Section 5.4.1) of
                // type PROTOCOL_ERROR."
                return ConnectionError(ErrCodeProtocol)
        }

I don't remember why the sc.goAwayCode != ErrCodeNo check is there. But that looks like the problem because our error code is ErrCodeNo, and thus we're hitting the ErrCodeProtocol at the bottom there.

Looks like it was added in https://github.com/golang/net/commit/569280fa63be4e201b975e5411e30a92178f0118

Not sure if it's related, but in the server handler, I also occasionally saw errors like request declared a Content-Length of 258 but only wrote 0 bytes reading the request body

@bcmills @bradfitz any plans to fix this? I can take a stab at it too if you want to give me some pointers.

@bradfitz got time to give a final stamp? Andrew already gave a +1. It's a super tiny change that I'd really love to close out. Should only take a moment of your time.

@mightyguava, it needs a test.


Remove underscore syntax from Asm because of undefined behavior + misc formatting

Turns out the 00_00_00_00 hex format isn't actually supported by the compiler, it just happened to work for some reason.

I've made some changes and additions, but it should me merge-ready now

I've made some changes and additions, but it should me merge-ready now


Pause without event

On Latest release build game sometimes crash when an event "pause without event" occurs. For example dfhack show message box "some dwarf starving".

can get around this by disabling all of dfhack's default tweaks


Transport Encryption iSCSI

Hi,
are iSCSI connections secured in transport when recovering files?
Greetings
Klaas

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

ID: 142ddb2b-65ef-10f4-0e68-f9af6f0e3d52
Version Independent ID: 74e33ef9-9a43-8ae6-abbd-a84f1cf91a25
Content: Azure Backup: Recover files and folders from an Azure VM backup
Content Source: articles/backup/backup-azure-restore-files-from-vm.md
Service: backup
GitHub Login: @pvrk
Microsoft Alias: pullabhk

@Klaas- Thanks for the feedback! I have assigned the issue to the content author to evaluate and update as appropriate.

Yes, we use mutual CHAP authentication mechanism to secure iSCSI connections. Also a HTTPS channel is built under which iSCSI is connected. Will add a security section to the document to alleviate any security concerns.

hello - did you update the document to include information about encryption?

Added the security section.
#please-close


Add VolumeScreen screenshots with themes

WHAT
Add MaterialTheme to the VolumeScreenTest
WHY
Agree what we should be the behaviour of VolumeScreen under a theme.
HOW
Paparazzi screenshot tests.
Checklist :clipboard:

[x] Add explicit visibility modifier and explicit return types for public declarations
[x] Run spotless check
[x] Run tests
[x] Update metalava's signature text files

Ideally get to this level of flexibility

Example from screenshot tests.

I still have layout fixes to do in a follow up.


Unable to create custom equals logic for the recursive comparison

Summary
Hello
I'm trying to create a custom equals for specific fields for the recursive comparison.
For example, I would like to return true in my custom equals method if actual value is greater than the expected value by 1 (don't ask me why :)):
public class Example {

    public static void main(String[] args) {
        Foo actual = new Foo(2);
        Foo expected = new Foo(1);

        BiPredicate<Integer, Integer> greaterThan = (a, e) -> Objects.equals(a, e + 1);

        Assertions.assertThat(actual)
                .usingRecursiveComparison()
                .withEqualsForFields(greaterThan, "bar")
                .isEqualTo(expected);
    }

    private static class Foo {

        private final Integer bar;

        private Foo(Integer bar) {
            this.bar = bar;
        }
    }
}

This example works well.
The problem is that the following example with the same initial values for the both entities also wouldn't throw any exception:
public class Example {

    public static void main(String[] args) {
        Foo actual = new Foo(1);
        Foo expected = new Foo(1);

        BiPredicate<Integer, Integer> greaterThan = (a, e) -> Objects.equals(a, e + 1);

        Assertions.assertThat(actual)
                .usingRecursiveComparison()
                .withEqualsForFields(greaterThan, "bar")
                .isEqualTo(expected);
    }

    private static class Foo {

        private final Integer bar;

        private Foo(Integer bar) {
            this.bar = bar;
        }
    }
}

I found the reason of this issue:
https://github.com/assertj/assertj-core/blob/43edf5862d5984af1a6882323874091455bdab3a/src/main/java/org/assertj/core/api/recursive/comparison/RecursiveComparisonDifferenceCalculator.java#L206
And I want to know whether is it really necessary to check references here? Is it a bug? My opinion that custom comparators have to be invoked before/instead of this verification.

Thanks for reporting this @groov1kk!
I'll look into it more but it sounds reasonable to have custom comparison being performed any other comparison.

issue addressed @groov1kk, you will get this error message:
java.lang.AssertionError:
Expecting actual:
  org.assertj.core.api.recursive.comparison.RecursiveComparisonAssert_isEqualTo_withFieldComparators_Test$Foo@4fbb001b
to be equal to:
  org.assertj.core.api.recursive.comparison.RecursiveComparisonAssert_isEqualTo_withFieldComparators_Test$Foo@4010d494
when recursively comparing field by field, but found the following difference:

field/property 'bar' differ:
- actual value  : 1 (Integer@3f3c7bdb)
- expected value: 1 (Integer@3f3c7bdb)

The recursive comparison was performed with this configuration:
- no overridden equals methods were used in the comparison (except for java types)
- these types were compared with the following comparators:
  - java.lang.Double -> DoubleComparator[precision=1.0E-15]
  - java.lang.Float -> FloatComparator[precision=1.0E-6]
  - java.nio.file.Path -> lexicographic comparator (Path natural order)
- these fields were compared with the following comparators:
  - bar -> org.assertj.core.api.recursive.comparison.RecursiveComparisonConfiguration$$Lambda$362/0x0000000800330800@63a5d002
- field comparators take precedence over type comparators.
- actual and expected objects and their fields were compared field by field recursively even if they were not of the same type, this allows for example to compare a Person to a PersonDto (call strictTypeChecking(true) to change that behavior).

Hmm... Could you share you tests? Because I can't catch that exception.

Here is the example which uses Person entity from org.assertj.core.api.recursive.comparison.RecursiveComparisonAssert_isEqualTo_withFieldComparators_Test
  @Test
  public void should_fail() {
    String name = "John";
    Person actual = new Person(name);
    Person expected = new Person(name);

    BiPredicate<String, String> biPredicate = (s1, s2) -> !Objects.equals(s1, s2);
    assertThat(actual).usingRecursiveComparison()
            .withEqualsForFields(biPredicate, "name")
            .isEqualTo(expected);
  }

I think it has to fail, because I reverted the equals logic. But this test passes, because it checks the references of name fields of actual and expected entities and if they are the same - custom comparators would be skipped.