DNF Pokemon filters

This is the next-gen Pokemon filter designed to both replace the current default+additional+pvp filter (which has complicated and hacky logic and is ReactMap centric) and supersede the user-unfriendly expert filter from #114, while also being super performant. Functionality wise it is identical to expert filters (and absolutely destroys the old filter), and for most use cases it should be as efficient as expert filters. At the same time, the code (and the logic) is more readable/accessible than the other two filters. Currently the old filters are still kept for backwards compatibility reasons but moving forward they should probably be removed.
Implementation details: A new json array field dnf is added to ApiPokemonFilter, which will override and disable old set of filters (similar to #114). Matching logic is follows.

All rulesets are categorized by Pokemon-form, or a default category if it is unset.
If the current Pokemon matches a specific Pokemon-form, that ruleset will be used, otherwise the default ruleset is used.
A row is returned in the result if any rule in the ruleset is matched.
A rule is matched if every single set standard is satisfied by the current row. (Therefore, overall it is an OR of AND's, and hence a Disjunctive Normal Form.)

A consequence of this logic is that an empty ruleset will match nothing. To include everything, one could, for example, have a rule matching IV in range [-1, 100].
Change to old filters: per-Pokemon filter will override global filters, otherwise it is not possible to for example always hide a certain species of Pokemon (without creating a filter for every Pokemon-form). This also allows for 2x performance for filtering.
@jfberry @TurtIeSocks Comments please. (Also needs corresponding support from ReactMap.) Closes #114.

I am on my mobile so no chance to review in detail. But in general I think this is the right idea.
I would make this an entirely new api so we can test in parallel in final form rather than having a combined call. That also makes it easier to delete the old one.
I am also interested whether we can support the api over grpc as that should give us some marshalling performance but since it requires a protobuf based input we should perhaps leave that until later (as we would need to tie down request and response format)
Finally for any testing we should compile with the go_json flag (as per makefile) as the json marshaller was one of the weak spots in previous benchmarking

This PR is meant to be just a start. We can do further performance optimizations down the road. Let's not cram too many things into this.
Re combined call: I don't see any perceivable difference for me at least. I can help with removing old code in the future.

It would be better to have the separate api calls now, guaranteeing backward compatibility and providing for a cleaner implementation of the new model.
This would be the conventional way to provide a v2 api - the v1 deprecation is straight forward and the v1 api is exactly backwards compatible all the time it is still in use.
I will have more time to look later.

Ready to review/test/benchmark now. This commit/branch also removes the old filter from the codebase: https://github.com/Mygod/Golbat/tree/killoldfilter

On my phone but I don’t see the second api in routes?
Both APIs should be available in this version through different endpoints. The original one should be unaltered.
will look later when at a laptop

No need to make a separate API endpoint if it's just for testing?

Surely testing will involve seeing the results are the same between the two endpoints and comparing performance etc?

If your JSON contains a dnf field, it will use the new API; otherwise it uses the old API.

Having just picked through this in more detail, I think this really should be two totally independent functions and routes so that we can just remove the old one; and the existing one is totally untouched by any new code.
That way we can have them living side by side for however long we need to; test them head to head; and remove the old one very simply.
This is standard practice for a v2 api and saves a lot of the confusion in the code which exists because you have tried to make one function do both apis. Harder to validate it gives the same results as the old one in the old instance.
Secondly, for the new DNF there is an opportunity to think about the way that the api is called.
The pokemon ID_form string as a map source is poor for performance as it requires a string conversion for every entry in the loop (this was something >10% of execution time last time I measured); either at the api level or (since you seem to be building up a different list internally) you can make the key a structure with pokemon id/form id.   I'd be in favour of doing this at the api level so it is clear how to structure this.
The other question we should ask ourselves is whether the two-int array is the right way or a more explicit min/max - this doesn't make much of a difference but does force the validation of length to save doing this each loop.
Are there any other changes to naming that we should make whilst we are breaking the api?

Finally, in the hot loop, where you are looping through an array it is faster to do it by array indexing rather than range (probably worth a few %age points)

I think for everyone's sanity sake, it is better to just remove the old one right now and stop procrastinating any further. If we need any optimizations, we just do it on this instead of comparing it with an alternative approach filled with insanity.
If I'm not mistaken, this API is only used by RM only, and will only be used by RM? Why are we stressed about this like this is a big deal? We can always throw further optimizations at it down the route.
If you really want to optimize, you could also look into how using || vs | impacts performance thanks to branch predictors in modern CPUs. Maybe we would like to test this across many different architectures of CPUs to see how to best implement this? /s

People upgrade at different times which is why we will support both APIs for a period.
the optimisations I mentioned were shown in sentry which we will use again

With that said, feel free to change the specific implementation details (API specifics or optimizations alike). Pushing directly is welcome. :)

I thought you were the one that wanted this change? I’m trying to help you get it to a stage where I will merge it.

You can help by pushing onto this branch directly. I don't really care about how you want to do this so it would be more efficient if you just push your suggested changes directly without going through me.

If you would like to wait until I have the time to do so, I will. I don’t expect it will be for a few weeks

I don't really think the API specifics matter since it's RM-facing only, and since the JSON parsing is inevitable, making it into an JSON object instead of a string only increases the overhead. On the other hand, the optimization of removing stringifying the pair can be done without changing the API.

We already have other implementers. And I would also like to create a grpc version of the api after this is complete; and try to avoid future breaking changes. So I was asking to consider the right form of the external api since the form as a string externally is non obvious (and based on RM internal
Details).
But I agree that if it is the right thing to do it can be converted internally to the most appropriate model for processing.

Added commit 9a6675b3cac281e1a539521447b406683b7647cc as the optimization but it does not change the API. The for range optimization is probably too aggressive for too little gain. I'll leave the rest to you.

I'll separate the routes when I get round to it, or you can - we need the functions and api definitions to be segregate what went before (and will eventually be deleted) to the new api, which will also have a grpc entry point.

Had some time this morning; I have separated the routes which makes the changes a lot clearer and allows for easy removal of the v1 api at the appropriate time.
Looking at the code again it may well be that we need to break up the implementation slightly when adding the grpc version
(since the inputs and outputs will be generated protobufs) but the core of it can be re-used

I also note that this implementation - a per pokemon filter not also matching against the 'global' filters means that it does support reactmap logic without sending an 'or' match for every single pokemon of the gloabl filters.  I assume that this is "your" intention, but not sure it matches with reactmap's implementation.

Change to old filters: per-Pokemon filter will override global filters, otherwise it is not possible to for example always hide a certain species of Pokemon (without creating a filter for every Pokemon-form). This also allows for 2x performance for filtering.

What's the point of writing anything any more? 🤷♂

Change to old filters: per-Pokemon filter will override global filters, otherwise it is not possible to for example always hide a certain species of Pokemon (without creating a filter for every Pokemon-form). This also allows for 2x performance for filtering.

What's the point of writing anything any more? 🤷♂

Yes, I was pointing out that this change requires you to add the extra global filters for each form filter; and not making this change - as you point out - would require you not using a global filter when you wanted to hide certain pokemon.
Of course, RM doesn't allow you to hide pokemon that don't match the global filter which is why I was pointing this out to make sure that turtle was comfortable as the main api user.
I personally think the approach you have taken is correct. I also think we should match against a Pokemon form 0 if exact form filter doesn't exist (and stop there), but I didn't make this change arbitrarily.

I also think we should match against a Pokemon form 0 if exact form filter doesn't exist (and stop there), but I didn't make this change arbitrarily.

I think this is already handled in ReactMap but I could be wrong.

I also think we should match against a Pokemon form 0 if exact form filter doesn't exist (and stop there), but I didn't make this change arbitrarily.

I think this is already handled in ReactMap but I could be wrong.

In this case I was thinking about other api users that may not have full game data to hand and wish to match on a Pokémon by id without knowing the current form.   Reactmap likely would not use or require this extension.

What other API users do you have in mind? I don't think Golbat has access to masterfile so wouldn't be able to know the default form id. (Always checking form 0 is a bad idea.)

I know of 3 others users of the api
Master file is available to golbat through ohbemgo, but I was thinking of checking Pokémon id, form=0 if exact match not found before global to aid the simple user case when form doesn’t matter to the consumer.
Golbat would have the choice to optimise by adding all form alternatives from master file or taking the extra step.
Why do you think this is a bad idea?

We should simply not overload a simple query with hidden features (or potentially future bugs). Are you trying to support a wildcard query like (pokemon id, any form)? If so, we should make it explicit by having form=-1 or something. Is there a specific use case for this?

It wouldn’t be intended to be a hidden feature, but a fully documented one.
yes, the intention would be to a provide simple way of querying by pokemon id for any form.
the use case is as I described above - api users who do not care to distinguish between forms or do not have access to the game master

Perhaps the pokemon filter entry should look like this:
{
  "pokemon": [{ "id": xxx, "form": yyy }, {}],
  "iv": { "min": x, "max": y },

etc
then if id is null, it is the global match; if id present but form null it is pokemon id only; and if form present exact match
For min/max values if min or max not specified we could use -1 / 65k
This would be largely self-documenting, remove "magic" strings and arrays and also make this mirror a form which converts to protobuf nicely.
Internally we would simplify this structure into something that is easy to match again (broadly what we have now I would guess).

In starting to build the grpc request body I noticed that each Pvp league is now an 'and' section rather than the previous special case or (which makes sense).  Given this, there is no longer any point in having it in a 'sub-filter' and it should be brought up to align with the rest of the filter types.
If you are happy with both of these changes, I can make them - I will publish the grpc request for comment separately.

possible grpc request body (results not yet built) which would align with proposed json
syntax = "proto3";

option go_package = "github.com/unownhash/golbat/grpc";

package pokemon_api;

// Interface exported by the server.
service Pokemon {
  rpc Search (PokemonSearchRequest) returns (PokemonSearchResponse) {}
}

message PokemonSearchRequest {
  float min_lat = 1;
  float min_lon = 2;
  float max_lat = 3;
  float max_lon = 4;
  int32 limit = 6;
  repeated PokemonDnf filters = 7;
}

message PokemonDnf  {
  optional PokemonId pokemon = 1;
  optional RangeMinMax Iv       =2;
  optional RangeMinMax AtkIv     =3;
  optional RangeMinMax DefIv     =4;
  optional RangeMinMax StaIv   =5;
  optional RangeMinMax Level =6;
  optional RangeMinMax Cp     =7;
  optional int32 Gender   =8;
  optional RangeMinMax PvpLittleRanking =9;
  optional RangeMinMax PvpGreatRanking = 10;
  optional RangeMinMax PvpUltraRanking = 11;
}

message PokemonId {
  int32 id = 1;
  optional int32 form = 2
}

message RangeMinMax {
  int32 min = 1;
  int32 max = 2;
}

message PokemonSearchResponse {
  int64 results = 1;
}

optional repeated PokemonId pokemon = 1;?

I assumed no PokemonId record would be global, but equally it could be non optional and the id field becomes optional (this may be better)

Since no further comments, I have changed the json version to line up with this grpc version (in the dnfgrpc branch).
I'll do some manual testing of this when I get the chance.
I will build a grpc response for the pokemon object also

Updated https://github.com/WatWowMap/ReactMap/pull/809 with the latest changes to the API. Also fixed some small issues regarding edge cases.

In the branch indicated I have changed the api model to reflect the grpc layout naming I proposed. Since you had not commented I assumed you were ok with this.
I will take these fixes across and open that as a PR to move discussion there

Sure. Meanwhile can this be merged? :eyes:

The api is changed in the branch as discussed.

Well I don't know what you want me to do since your branch is not ready to use yet.

I took a closer look. It appears that functionality-wise your branch is identical. If it is something as trivial as changing implementation specifics (grpc or json, minmax or array, api name, whatever), there's no need to go through me. Do whatever you want since it's your repo. At the end of the day I only care about functionality. 🤷

I value your opinion and it is based on your original work. I will open it as a PR in its own right, bring across your fixes here.
If you are happy with the proposed tweaks to the api, then I would be very happy to receive any examples of head-to-head benchmarking between old and new APIs as it might take me some time to be able to find a large enough system test to make this meaningful.
My expectation, assuming that there are no unexpected performance issues that need to be understood is that it will then be possible to merge while the change streaming capability using grpc is built out

Sure. Do whatever you want as long as no functionalities are cut. 👍

Superseded by #158.


Can not login http://localhost:8000/admin/

Describe the bug
Admin can not login web site after startup.
To Reproduce
Steps to reproduce the behavior:

Setup

git clone https://github.com/safe-global/safe-transaction-service.git
cd safe-transaction-service/
python -m venv venv
source venv/bin/activate
pip install -r requirements-dev.txt
pre-commit install -f

Create .env

cp .env.l2.sample .env
echo 'CSRF_TRUSTED_ORIGINS=["http://localhost:8000","http://<IP_ADDRESS>:8000","http://localhost:8888","http://<IP_ADDRESS>:8888"]' >> .env

Startup

docker compose build --force-rm
docker compose up

Create admin

docker exec -it safe-transaction-service-web-1 python manage.py createsuperuser

Login
Open URL http://localhost:8000/admin and login as admin, below is error messages:

Expected behavior
Should login OK.
Environment (please complete the following information):

OS:  Ubuntu 22.04.1 LTS
Browser FireFox v107.0.1

Additional context
Can not login http://localhost:8888/ also after clikc Django Login :

I think echo 'CSRF_TRUSTED_ORIGINS=["http://localhost:8000","http://<IP_ADDRESS>:8000","http://localhost:8888","http://<IP_ADDRESS>:8888"]' >> .env should be echo 'CSRF_TRUSTED_ORIGINS=http://localhost:8000,http://<IP_ADDRESS>:8000,http://localhost:8888,http://<IP_ADDRESS>:8888' >> .env

Also you should be using http://localhost:8000/admin and not http://localhost:8888

Thanks, I will test again tomorrow.

I've just checked, it's working for me

The problem is resolved. Thank you again. Maybe the documents need some upodate.

Thank you very much. You are right, we need to improve our docs


Readme update

Ready for a PR?

[x] I have updated the CHANGELOG with an entry including a description, a link to my profile, and a link to the issue ticket. This change is filed under an Enhancement or Bug Fix, is shown under the relevant release tag name, and is included in my PR branch.

Implementation Notes:
Breaking changes:

this makes me so happyyyyyy. it's back!


I'll be back soon


Update README.md

Clarify where to run the script.

 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.You have signed the CLA already but the status is still pending? Let us recheck it.


Crashes inside + [RLMObject objectsWithPredicate:] when selecting with a NSDate

Goals
I'm trying to query and delete objects of a model by a date field, by selecting objects created before a certain date and then deleting them. I'm using NSPredicate to query the objects.
Expected Results
The objects that have the field 'created_at' older than the specified date should be queried normally, and then deleted.
Actual Results
I'm getting hundreds of crashes from my users when selecting the objects with the NSPredicate, inside + [RLMObject objectsWithPredicate:], even before accessing them. I'm only getting the crash reports from Xcode, so I guess there are a lot more that aren't being reported. There's a try/catch block, but Realm does not throw, just crashes.
Here's the stack trace:
0  long long realm::Array::get<4ul>(unsigned long) const + 8
1  realm::Spec::get_public_column_type(unsigned long) const + 48
2  auto (anonymous namespace)::value_of_type_for_query<realm::DateTime>(realm::Query&, (anonymous namespace)::ColumnReference const&) + 120 (table.hpp:1523)
3  void (anonymous namespace)::add_constraint_to_query<(anonymous namespace)::ColumnReference, objc_object* __strong>(realm::Query&, RLMPropertyType, NSPredicateOperatorType, unsigned long, (anonymous namespace)::ColumnReference, objc_object* __strong) + 1404 (RLMQueryUtil.mm:643)
4  (anonymous namespace)::update_query_with_value_expression(RLMSchema*, RLMObjectSchema*, realm::Query&, NSString*, objc_object*, NSComparisonPredicate*) + 1492 (RLMQueryUtil.mm:945)
5  (anonymous namespace)::update_query_with_predicate(NSPredicate*, RLMSchema*, RLMObjectSchema*, realm::Query&) + 3320 (RLMQueryUtil.mm:1151)
6  RLMUpdateQueryWithPredicate(realm::Query*, NSPredicate*, RLMSchema*, RLMObjectSchema*) + 156 (RLMQueryUtil.mm:1218)
7  RLMGetObjects + 256 (RLMObjectStore.mm:471)
8  +[RLMObject objectsWithPredicate:] + 108 (RLMObject.mm:150)
9  -[TGRecipeRealmRepository removeRecipesCreatedAtMoreThan:] + 104 (TGRecipeRealmRepository.m:104)

Steps to Reproduce
I've never been able to reproduce the issue, but it's been happening with users in production for a while now, at least since Realm 0.98.8. I have upgraded to 1.1.0 but the issue keeps happening.
It affects users from all supported iOS version for my app (iOS 8.x, 9.x, 10.0).
Code Sample
Here's my code that calls objectsWithPredicate:
- (void)removeRecipesCreatedAtMoreThan:(NSDate *)date
{
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"created_at < %@", date];
    RLMResults *recipes = nil;

    @try {
        recipes = [TGRecipe objectsWithPredicate:predicate]; // <---- here's where the crash happens

        if (recipes) {
            RLMRealm *realm = [RLMRealm defaultRealm];

            [realm beginWriteTransaction];
            [realm deleteObjects:recipes];
            [realm commitWriteTransaction];
        }
    } @catch (NSException *exception) {
        // note that there's a catch but Realm doesn't throw, just crashes
    }
}

Version of Realm and Tooling
Realm version: 1.1.0
Xcode version: 8.0
iOS version: 10.0.2 (but has been happening in devices from iOS 8.1 to iOS 10.0)
Dependency manager: Cocoapods 1.1.0.rc.2

I'm sorry you're affected by this. It's the first I've heard of such an issue. Can you confirm that you still experience it with the latest version of Realm? 2.0.2 as of this writing.
It's unfortunate that you can't reproduce this yourself, and therefore we also don't have a way to reproduce this. It might be difficult for us to make progress on this until we can reproduce this ourselves.

Thanks @jpsim.
I've been updating Realm every time before I release an update to see if this is fixed, but so far it looks like it hasn't. I'll update to the latest version again and see if it that helps.
If it doesn't, though, is there anything I can do to try to reproduce it? Any edge cases? Recommendations for working with Realm and NSDates? :(

If it doesn't, though, is there anything I can do to try to reproduce it? Any edge cases? Recommendations for working with Realm and NSDate/NSPredicate? :(

I don't have any tips, what you're doing is supported and it's how I'd recommend doing that, but it's clearly not working reliably in your case.
If you do end up experiencing this yourself, sharing the Realm file with us may help identify what's wrong with it.

Have you had the chance to test this with Realm 2.0.2?

@jpsim I've only deployed the update two days ago. Let me check if I already have the crash reports...

@jpsim I've only got very few crash reports. So far, it hasn't been reported. I should probably confirm this in the next days :)

Thanks! We'll keep this open until you can report back in a few days.

The issue remains with 2.0.2 :(
Here are some screenshots of the crash reports (two "different" but not really call stacks).

I'm also getting many other crashes from Realm that seem to be unrelated. Those existed before but now it looks like there are more.

Ok, let's keep this open then, but we won't be able to look into it until you can share either an affected Realm file, or a sample project that can reproduce these crashes.


no member named closef, define redefined

Build fails on mac and linux with lua51.
Additionally there is a warning about redefining SOL_ALL_SAFETIES_ON.
Sol commit: https://github.com/ThePhD/sol2/commit/47fbab369fcd4ab572929a91975552d3be8dc00e
Seems to work on sol https://github.com/ThePhD/sol2/commit/2ca27ee though.
Example:
https://github.com/Rochet2/lua-sol-mac-test/tree/perkele
https://github.com/Rochet2/lua-sol-mac-test/runs/433916977?check_suite_focus=true#step:4:104
Build error:
2020-02-08T22:23:57.7978830Z [ 98%] Building CXX object example/CMakeFiles/example.dir/main.cpp.o
2020-02-08T22:23:58.8233780Z In file included from /Users/runner/runners/2.164.0/work/lua-sol-mac-test/lua-sol-mac-test/example/main.cpp:6:
2020-02-08T22:23:58.8234560Z /Users/runner/runners/2.164.0/work/lua-sol-mac-test/lua-sol-mac-test/deps/sol/sol.hpp:13432:13: error: no member named 'closef' in 'luaL_Stream'
2020-02-08T22:23:58.8235080Z                                 stream->closef = source->closef;
2020-02-08T22:23:58.8235240Z                                 ~~~~~~  ^
2020-02-08T22:23:58.8235820Z /Users/runner/runners/2.164.0/work/lua-sol-mac-test/lua-sol-mac-test/deps/sol/sol.hpp:13432:30: error: no member named 'closef' in 'luaL_Stream'
2020-02-08T22:23:58.8236250Z                                 stream->closef = source->closef;
2020-02-08T22:23:58.8236390Z                                                  ~~~~~~  ^
2020-02-08T22:23:58.8236970Z /Users/runner/runners/2.164.0/work/lua-sol-mac-test/lua-sol-mac-test/deps/sol/sol.hpp:13439:13: error: no member named 'closef' in 'luaL_Stream'
2020-02-08T22:23:58.8237420Z                                 stream->closef = source.closef;
2020-02-08T22:23:58.8237500Z                                 ~~~~~~  ^
2020-02-08T22:23:58.8238500Z /Users/runner/runners/2.164.0/work/lua-sol-mac-test/lua-sol-mac-test/deps/sol/sol.hpp:13439:29: error: no member named 'closef' in 'luaL_Stream'
2020-02-08T22:23:58.8239090Z                                 stream->closef = source.closef;
2020-02-08T22:23:58.8239250Z                                                  ~~~~~~ ^
2020-02-08T22:23:59.6414540Z 4 errors generated.
2020-02-08T22:23:59.6472040Z make[2]: *** [example/CMakeFiles/example.dir/main.cpp.o] Error 1
2020-02-08T22:23:59.6474400Z make[1]: *** [example/CMakeFiles/example.dir/all] Error 2
2020-02-08T22:23:59.6477020Z make: *** [all] Error 2
2020-02-08T22:23:59.6496960Z ##[error]Process completed with exit code 2.
2020-02-08T22:23:59.6522220Z Cleaning up orphan processes

2020-02-08T21:59:27.7183481Z [ 72%] Building CXX object src/CMakeFiles/xxxxx.dir/XxxxxConfig.cpp.o
2020-02-08T21:59:27.7266015Z In file included from /home/runner/work/xxxxxx/xxxxxx/deps/sol/sol.h:12:0,
2020-02-08T21:59:27.7266333Z                  from /home/runner/work/xxxxxx/xxxxxx/deps/sol/solext.h:4,
2020-02-08T21:59:27.7266563Z                  from /home/runner/work/xxxxxx/xxxxxx/src/XxxxxConfig.h:4,
2020-02-08T21:59:27.7267348Z                  from /home/runner/work/xxxxxx/xxxxxx/src/XxxxxConfig.cpp:1:
2020-02-08T21:59:27.7267627Z /home/runner/work/xxxxxx/xxxxxx/deps/sol/forward.hpp:104:0: warning: "SOL_ALL_SAFETIES_ON" redefined
2020-02-08T21:59:27.7267741Z    #define SOL_ALL_SAFETIES_ON 1
2020-02-08T21:59:27.7267954Z
2020-02-08T21:59:27.7268157Z In file included from /home/runner/work/xxxxxx/xxxxxx/deps/sol/solext.h:4:0,
2020-02-08T21:59:27.7268443Z                  from /home/runner/work/xxxxxx/xxxxxx/src/XxxxxConfig.h:4,
2020-02-08T21:59:27.7268550Z                  from /home/runner/work/xxxxxx/xxxxxx/src/XxxxxConfig.cpp:1:
2020-02-08T21:59:27.7268692Z /home/runner/work/xxxxxx/xxxxxx/deps/sol/sol.h:10:0: note: this is the location of the previous definition
2020-02-08T21:59:27.7268815Z  #define SOL_ALL_SAFETIES_ON false

Apologies for the slowness: I'm in a week-long meeting!

No rush. Using the old version for development.

Sorry about that; I just didn't realize luaL_Stream was crapped on by -- surprise surprise -- LuaJIT. Sigh...


Make gif script

Greetings,
This is to add the script to make gifs from the environments.
Already did a merge from the last version in main (v0.6.0). Check for any details.

Danke mil!


only allow a single retry

Fixes #1530.

Codecov Report

Merging #1550 into master will decrease coverage by <.01%.
The diff coverage is 42.86%.

@@            Coverage Diff             @@
##           master    #1550      +/-   ##
==========================================
- Coverage   88.94%   88.94%   -<.01%
==========================================
  Files         124      124
  Lines        8832     8831       -1
==========================================
- Hits         7855     7854       -1
  Misses        661      661
  Partials      316      316

Impacted Files
Coverage Δ

server_tls.go
78% <100%> (ø)
:arrow_up:

client.go
84.98% <33.33%> (-0.05%)
:arrow_down:

Continue to review full report at Codecov.

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


[py2py3] Add variable Utils.Utilities.PY3

Impact of the new feature
WMCore
Is your feature request related to a problem? Please describe.
We should provide an easily accessible boolean variable to determine if the runtime is py2 or py3.
Describe the solution you'd like
Instead of importing from WMCore/Configuration, we can add this variable to Utils/Utilities.py
Describe alternatives you've considered
We can always use import sys: if sys.version_info[0] == 3: in every module, instead of importing it from Utils.Utilities.
This is a valid option, but can get a bit verbose, such as in
https://github.com/dmwm/WMCore/blob/1a9ec04202c3db836d5a2dd555e686e5845dc214/test/python/Utils_t/MemoryCache_t.py#L32-L44

@mapellidario Dario, in the dup issue that I just opened & closed: https://github.com/dmwm/WMCore/issues/10511, I suggested a different location to put it (and we can adapt it further, of course). If you agree that it makes more sense than the Utilities module, then please go for it. Thanks


docker - write pipe: bad file descriptor

Description
Docker error : "write pipe: bad file descriptor" on every app that i run  !!
I'm on power8 ubuntu ppc64el but same error on intel arch ...
see : http://stackoverflow.com/questions/40022817/docker-write-pipe-bad-file-descriptor

Steps to reproduce the issue:
docker run hello-world
Describe the results you received:
write pipe: bad file descriptor
Describe the results you expected:
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:

The Docker client contacted the Docker daemon.
The Docker daemon pulled the "hello-world" image from the Docker Hub.
The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker Hub account:
https://hub.docker.com
For more examples and ideas, visit:
https://docs.docker.com/engine/userguide/
Additional information you deem important (e.g. issue happens only occasionally):
Output of docker version:
Client:
 Version:      1.12.1
 API version:  1.24
 Go version:   go1.6.2
 Git commit:   23cf638
 Built:        Tue, 27 Sep 2016 12:25:38 +1300
 OS/Arch:      linux/ppc64le

Server:
 Version:      1.12.1
 API version:  1.24
 Go version:   go1.6.2
 Git commit:   23cf638
 Built:        Tue, 27 Sep 2016 12:25:38 +1300
 OS/Arch:      linux/ppc64le

Output of docker info:
Containers: 9
 Running: 0
 Paused: 0
 Stopped: 9
Images: 1
Server Version: 1.12.1
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 19
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: apparmor
Kernel Version: 4.4.0-43-generic
Operating System: Ubuntu 16.04.1 LTS
OSType: linux
Architecture: ppc64le
CPUs: 40
Total Memory: 3.811 GiB
Name: ubuntu
ID: A2XW:VDZQ:C4I7:HLDP:26CE:XSNG:HBQU:YX2Z:M6BJ:NLSM:7AQ4:ZHWV
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Insecure Registries:
 <IP_ADDRESS>/8

Additional environment details (AWS, VirtualBox, physical, etc.):
uname -a
Linux ubuntu 4.4.0-43-generic #63-Ubuntu SMP Wed Oct 12 13:45:41 UTC 2016 ppc64le ppc64le ppc64le GNU/Linux
systemd --version
systemd 229
+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN

PowerPC is currently not a supported architecture; how did you install docker? Did you compile yourself? Do the daemon logs show anything?

ppc64le is a supported platform by ubuntu , so i simple : "sudo apt-get install docker.io"
but the problem is the same on i686 intel look at the link i post  :  http://stackoverflow.com/questions/40022817/docker-write-pipe-bad-file-descriptor
the daemon logs don't show anything , i suppose is a problem with systemd
this is the syslog where i start : docker run hello-world
Oct 16 09:28:31 ubuntu kernel: [38716.489665] aufs au_opts_verify:1597:dockerd[2271]: dirperm1 breaks the protection by the permission bits on the lower branch
Oct 16 09:28:31 ubuntu kernel: [38716.522883] aufs au_opts_verify:1597:dockerd[2271]: dirperm1 breaks the protection by the permission bits on the lower branch
Oct 16 09:28:31 ubuntu kernel: [38716.564416] aufs au_opts_verify:1597:dockerd[2271]: dirperm1 breaks the protection by the permission bits on the lower branch
Oct 16 09:28:31 ubuntu kernel: [38716.604230] aufs au_opts_verify:1597:dockerd[2271]: dirperm1 breaks the protection by the permission bits on the lower branch
Oct 16 09:28:31 ubuntu NetworkManager[1506]:   [1476602911.9234] device (veth9bb559a): failed to find device 4 'veth9bb559a' with udev
Oct 16 09:28:31 ubuntu systemd-udevd[19948]: Could not generate persistent MAC address for veth9bb559a: No such file or directory
Oct 16 09:28:31 ubuntu systemd-udevd[19950]: Could not generate persistent MAC address for veth248074b: No such file or directory
Oct 16 09:28:31 ubuntu kernel: [38716.612166] device veth248074b entered promiscuous mode
Oct 16 09:28:31 ubuntu kernel: [38716.612798] IPv6: ADDRCONF(NETDEV_UP): veth248074b: link is not ready
Oct 16 09:28:31 ubuntu NetworkManager[1506]:   [1476602911.9276] manager: (veth9bb559a): new Veth device (/org/freedesktop/NetworkManager/Devices/3)
Oct 16 09:28:31 ubuntu NetworkManager[1506]:   [1476602911.9281] device (veth248074b): failed to find device 5 'veth248074b' with udev
Oct 16 09:28:31 ubuntu NetworkManager[1506]:   [1476602911.9303] manager: (veth248074b): new Veth device (/org/freedesktop/NetworkManager/Devices/4)
Oct 16 09:28:31 ubuntu NetworkManager[1506]:   [1476602911.9480] devices added (path: /sys/devices/virtual/net/veth248074b, iface: veth248074b)
Oct 16 09:28:31 ubuntu NetworkManager[1506]:   [1476602911.9481] device added (path: /sys/devices/virtual/net/veth248074b, iface: veth248074b): no ifupdown configuration found.
Oct 16 09:28:31 ubuntu NetworkManager[1506]:   [1476602911.9496] devices added (path: /sys/devices/virtual/net/veth9bb559a, iface: veth9bb559a)
Oct 16 09:28:31 ubuntu NetworkManager[1506]:   [1476602911.9497] device added (path: /sys/devices/virtual/net/veth9bb559a, iface: veth9bb559a): no ifupdown configuration found.
Oct 16 09:28:32 ubuntu NetworkManager[1506]:   [1476602912.2010] device (veth9bb559a): driver 'veth' does not support carrier detection.
Oct 16 09:28:32 ubuntu NetworkManager[1506]:   [1476602912.2060] devices removed (path: /sys/devices/virtual/net/veth9bb559a, iface: veth9bb559a)
Oct 16 09:28:32 ubuntu kernel: [38716.894041] eth0: renamed from veth9bb559a
Oct 16 09:28:32 ubuntu NetworkManager[1506]:   [1476602912.2457] device (veth248074b): link connected
Oct 16 09:28:32 ubuntu NetworkManager[1506]:   [1476602912.2467] device (docker0): link connected
Oct 16 09:28:32 ubuntu kernel: [38716.932466] IPv6: ADDRCONF(NETDEV_CHANGE): veth248074b: link becomes ready
Oct 16 09:28:32 ubuntu kernel: [38716.932648] docker0: port 1(veth248074b) entered forwarding state
Oct 16 09:28:32 ubuntu kernel: [38716.932686] docker0: port 1(veth248074b) entered forwarding state
Oct 16 09:28:32 ubuntu kernel: [38716.932860] IPv6: ADDRCONF(NETDEV_CHANGE): docker0: link becomes ready
Oct 16 09:28:32 ubuntu kernel: [38717.062133] docker0: port 1(veth248074b) entered disabled state
Oct 16 09:28:32 ubuntu kernel: [38717.062354] veth9bb559a: renamed from eth0
Oct 16 09:28:32 ubuntu NetworkManager[1506]:   [1476602912.4766] device (veth248074b): link disconnected
Oct 16 09:28:32 ubuntu NetworkManager[1506]:   [1476602912.4767] device (docker0): link disconnected (deferring action for 4 seconds)
Oct 16 09:28:32 ubuntu NetworkManager[1506]:   [1476602912.4769] device (veth9bb559a): failed to find device 4 'veth9bb559a' with udev
Oct 16 09:28:32 ubuntu NetworkManager[1506]:   [1476602912.4803] manager: (veth9bb559a): new Veth device (/org/freedesktop/NetworkManager/Devices/5)
Oct 16 09:28:32 ubuntu kernel: [38717.173312] docker0: port 1(veth248074b) entered disabled state
Oct 16 09:28:32 ubuntu kernel: [38717.175795] device veth248074b left promiscuous mode
Oct 16 09:28:32 ubuntu kernel: [38717.175803] docker0: port 1(veth248074b) entered disabled state
Oct 16 09:28:32 ubuntu NetworkManager[1506]:   [1476602912.5089] devices added (path: /sys/devices/virtual/net/veth9bb559a, iface: veth9bb559a)
Oct 16 09:28:32 ubuntu NetworkManager[1506]:   [1476602912.5089] device added (path: /sys/devices/virtual/net/veth9bb559a, iface: veth9bb559a): no ifupdown configuration found.
Oct 16 09:28:32 ubuntu NetworkManager[1506]:   [1476602912.5096] devices removed (path: /sys/devices/virtual/net/veth9bb559a, iface: veth9bb559a)
Oct 16 09:28:32 ubuntu NetworkManager[1506]:   [1476602912.5106] device (veth9bb559a): driver 'veth' does not support carrier detection.
Oct 16 09:28:32 ubuntu NetworkManager[1506]:   [1476602912.5109] device (veth248074b): driver 'veth' does not support carrier detection.
Oct 16 09:28:32 ubuntu NetworkManager[1506]:   [1476602912.5125] devices removed (path: /sys/devices/virtual/net/veth248074b, iface: veth248074b)
Oct 16 09:28:34 ubuntu avahi-daemon[1399]: Joining mDNS multicast group on interface docker0.IPv6 with address fe80::42:76ff:fe97:9f8d.
Oct 16 09:28:34 ubuntu avahi-daemon[1399]: New relevant interface docker0.IPv6 for mDNS.
Oct 16 09:28:34 ubuntu avahi-daemon[1399]: Registering new address record for fe80::42:76ff:fe97:9f8d on docker0.*.
Oct 16 09:28:37 ubuntu NetworkManager[1506]:   [1476602917.0038] device (docker0): link disconnected (calling deferred action)

Looks like an issue with Ubuntu's packaging, as ppc64le works very well
generally. I would disable NetworkManager as it looks like it is messing
with the docker interfaces, or get it to ignore docker0 and veth*
interfaces.
On 16 Oct 2016 8:31 a.m., "openmax"<EMAIL_ADDRESS>wrote:

ppc64le is a supported platform by ubuntu , so i simple : "sudo apt-get
install docker.io"
but the problem is the same on i686 intel look at the link i post :
http://stackoverflow.com/questions/40022817/docker-
write-pipe-bad-file-descriptor
the daemon logs don't show anything , i suppose is a problem with systemd
this is the syslog where i start : docker run hello-world
Oct 16 09:28:31 ubuntu kernel: [38716.489665] aufs
au_opts_verify:1597:dockerd[2271]: dirperm1 breaks the protection by the
permission bits on the lower branch
Oct 16 09:28:31 ubuntu kernel: [38716.522883] aufs
au_opts_verify:1597:dockerd[2271]: dirperm1 breaks the protection by the
permission bits on the lower branch
Oct 16 09:28:31 ubuntu kernel: [38716.564416] aufs
au_opts_verify:1597:dockerd[2271]: dirperm1 breaks the protection by the
permission bits on the lower branch
Oct 16 09:28:31 ubuntu kernel: [38716.604230] aufs
au_opts_verify:1597:dockerd[2271]: dirperm1 breaks the protection by the
permission bits on the lower branch
Oct 16 09:28:31 ubuntu NetworkManager[1506]: [1476602911.9234] device
(veth9bb559a): failed to find device 4 'veth9bb559a' with udev
Oct 16 09:28:31 ubuntu systemd-udevd[19948]: Could not generate persistent
MAC address for veth9bb559a: No such file or directory
Oct 16 09:28:31 ubuntu systemd-udevd[19950]: Could not generate persistent
MAC address for veth248074b: No such file or directory
Oct 16 09:28:31 ubuntu kernel: [38716.612166] device veth248074b entered
promiscuous mode
Oct 16 09:28:31 ubuntu kernel: [38716.612798] IPv6: ADDRCONF(NETDEV_UP):
veth248074b: link is not ready
Oct 16 09:28:31 ubuntu NetworkManager[1506]: [1476602911.9276] manager:
(veth9bb559a): new Veth device (/org/freedesktop/NetworkManager/Devices/3)
Oct 16 09:28:31 ubuntu NetworkManager[1506]: [1476602911.9281] device
(veth248074b): failed to find device 5 'veth248074b' with udev
Oct 16 09:28:31 ubuntu NetworkManager[1506]: [1476602911.9303] manager:
(veth248074b): new Veth device (/org/freedesktop/NetworkManager/Devices/4)
Oct 16 09:28:31 ubuntu NetworkManager[1506]: [1476602911.9480] devices
added (path: /sys/devices/virtual/net/veth248074b, iface: veth248074b)
Oct 16 09:28:31 ubuntu NetworkManager[1506]: [1476602911.9481] device
added (path: /sys/devices/virtual/net/veth248074b, iface: veth248074b):
no ifupdown configuration found.
Oct 16 09:28:31 ubuntu NetworkManager[1506]: [1476602911.9496] devices
added (path: /sys/devices/virtual/net/veth9bb559a, iface: veth9bb559a)
Oct 16 09:28:31 ubuntu NetworkManager[1506]: [1476602911.9497] device
added (path: /sys/devices/virtual/net/veth9bb559a, iface: veth9bb559a):
no ifupdown configuration found.
Oct 16 09:28:32 ubuntu NetworkManager[1506]: [1476602912.2010] device
(veth9bb559a): driver 'veth' does not support carrier detection.
Oct 16 09:28:32 ubuntu NetworkManager[1506]: [1476602912.2060] devices
removed (path: /sys/devices/virtual/net/veth9bb559a, iface: veth9bb559a)
Oct 16 09:28:32 ubuntu kernel: [38716.894041] eth0: renamed from
veth9bb559a
Oct 16 09:28:32 ubuntu NetworkManager[1506]: [1476602912.2457] device
(veth248074b): link connected
Oct 16 09:28:32 ubuntu NetworkManager[1506]: [1476602912.2467] device
(docker0): link connected
Oct 16 09:28:32 ubuntu kernel: [38716.932466] IPv6:
ADDRCONF(NETDEV_CHANGE): veth248074b: link becomes ready
Oct 16 09:28:32 ubuntu kernel: [38716.932648] docker0: port 1(veth248074b)
entered forwarding state
Oct 16 09:28:32 ubuntu kernel: [38716.932686] docker0: port 1(veth248074b)
entered forwarding state
Oct 16 09:28:32 ubuntu kernel: [38716.932860] IPv6:
ADDRCONF(NETDEV_CHANGE): docker0: link becomes ready
Oct 16 09:28:32 ubuntu kernel: [38717.062133] docker0: port 1(veth248074b)
entered disabled state
Oct 16 09:28:32 ubuntu kernel: [38717.062354] veth9bb559a: renamed from
eth0
Oct 16 09:28:32 ubuntu NetworkManager[1506]: [1476602912.4766] device
(veth248074b): link disconnected
Oct 16 09:28:32 ubuntu NetworkManager[1506]: [1476602912.4767] device
(docker0): link disconnected (deferring action for 4 seconds)
Oct 16 09:28:32 ubuntu NetworkManager[1506]: [1476602912.4769] device
(veth9bb559a): failed to find device 4 'veth9bb559a' with udev
Oct 16 09:28:32 ubuntu NetworkManager[1506]: [1476602912.4803] manager:
(veth9bb559a): new Veth device (/org/freedesktop/NetworkManager/Devices/5)
Oct 16 09:28:32 ubuntu kernel: [38717.173312] docker0: port 1(veth248074b)
entered disabled state
Oct 16 09:28:32 ubuntu kernel: [38717.175795] device veth248074b left
promiscuous mode
Oct 16 09:28:32 ubuntu kernel: [38717.175803] docker0: port 1(veth248074b)
entered disabled state
Oct 16 09:28:32 ubuntu NetworkManager[1506]: [1476602912.5089] devices
added (path: /sys/devices/virtual/net/veth9bb559a, iface: veth9bb559a)
Oct 16 09:28:32 ubuntu NetworkManager[1506]: [1476602912.5089] device
added (path: /sys/devices/virtual/net/veth9bb559a, iface: veth9bb559a):
no ifupdown configuration found.
Oct 16 09:28:32 ubuntu NetworkManager[1506]: [1476602912.5096] devices
removed (path: /sys/devices/virtual/net/veth9bb559a, iface: veth9bb559a)
Oct 16 09:28:32 ubuntu NetworkManager[1506]: [1476602912.5106] device
(veth9bb559a): driver 'veth' does not support carrier detection.
Oct 16 09:28:32 ubuntu NetworkManager[1506]: [1476602912.5109] device
(veth248074b): driver 'veth' does not support carrier detection.
Oct 16 09:28:32 ubuntu NetworkManager[1506]: [1476602912.5125] devices
removed (path: /sys/devices/virtual/net/veth248074b, iface: veth248074b)
Oct 16 09:28:34 ubuntu avahi-daemon[1399]: Joining mDNS multicast group on
interface docker0.IPv6 with address fe80::42:76ff:fe97:9f8d.
Oct 16 09:28:34 ubuntu avahi-daemon[1399]: New relevant interface
docker0.IPv6 for mDNS.
Oct 16 09:28:34 ubuntu avahi-daemon[1399]: Registering new address record
for fe80::42:76ff:fe97:9f8d on docker0.*.
Oct 16 09:28:37 ubuntu NetworkManager[1506]: [1476602917.0038] device
(docker0): link disconnected (calling deferred action)
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/docker/docker/issues/27410#issuecomment-254032215,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAdcPKl85NqEaEGHwie__e37jiSLmDDuks5q0dLigaJpZM4KXv9p
.

I disable networkmanager without success , i think the problem in on this sylog line :
systemd-udevd[19948]: Could not generate persistent MAC address for veth9bb559a: No such file or directory

Hmm, surprised this is not the same on x86, are you on the latest systemd?
On 16 Oct 2016 10:07 a.m., "openmax"<EMAIL_ADDRESS>wrote:

I disable networkmanager without success , i think the problem in on this
sylog line :
systemd-udevd[19948]: Could not generate persistent MAC address for
veth9bb559a: No such file or directory
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/docker/docker/issues/27410#issuecomment-254035806,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAdcPPkImNJdm0P9TiLoL4BE3_pBAszoks5q0ek0gaJpZM4KXv9p
.

systemd 229 +PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN

I'm getting this on armhf as well. Ubuntu's docker.io package, and I, too, blame systemd.
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.1 LTS"

A little more info. I've been using strace to figure out what is going on, and apparently docker is getting confused with a file descriptor (3 in this dump). Watch as the POST call appears to trigger the write pipe: bad file descriptor message:
getsockname(3, {sa_family=AF_LOCAL, NULL}, [2]) = 0
getpeername(3, {sa_family=AF_LOCAL, sun_path="/var/run/docker.sock"}, [23]) = 0
futex(0x10c24824, FUTEX_WAKE, 1)        = 1
write(3, "POST /v1.24/containers/create HT"..., 1505) = 1505
futex(0x10c24824, FUTEX_WAKE, 1)        = 1
futex(0xa4d9ac, FUTEX_WAIT, 0, NULL)    = 0
epoll_wait(4, [], 128, 0)               = 0
futex(0x10c24aa4, FUTEX_WAKE, 1)        = 1
epoll_wait(4, [], 128, 0)               = 0
epoll_wait(4, [{EPOLLOUT, {u32=1976238816, u64=1976238816}}], 128, -1) = 1
epoll_wait(4, [{EPOLLOUT, {u32=1976238816, u64=1976238816}}], 128, -1) = 1
epoll_wait(4, [{EPOLLIN|EPOLLOUT, {u32=1976238816, u64=1976238816}}], 128, -1) = 1
clock_gettime(CLOCK_MONOTONIC, {850, 276190506}) = 0
futex(0xa4d308, FUTEX_WAKE, 1)          = 1
futex(0xa4d298, FUTEX_WAKE, 1)          = 1
read(5, "HTTP/1.1 101 UPGRADED\r\nContent-T"..., 4096) = 109
futex(0x10c245a4, FUTEX_WAKE, 1)        = 1
futex(0x10c24824, FUTEX_WAKE, 1)        = 1
                                           write(3, "POST /v1.24/containers/044b95d17"..., 207) = 207
                                                                                futex(0x10c24d24, FUTEX_WAKE, 1)        = 1
                                                                                futex(0xa4d9ac, FUTEX_WAIT, 0, NULLwrite pipe: bad file descriptor
)    = 0
        epoll_wait(4, [], 128, 0)               = 0
                                                   _newselect(0, NULL, NULL, NULL, {0, 100}) = 0 (Timeout)
                                                                                futex(0x10c24d24, FUTEX_WAKE, 1)        = 1
                                                                                futex(0xa4d9ac, FUTEX_WAIT, 0, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
                                                               futex(0xa4d9ac, FUTEX_WAIT, 0, NULL)    = 0
futex(0xa4d9ac, FUTEX_WAIT, 0, NULL)    = 0
epoll_wait(4, [], 128, 0)               = 0
futex(0x10c24aa4, FUTEX_WAKE, 1)        = 1
futex(0xa4d9ac, FUTEX_WAIT, 0, NULL)    = 0
futex(0xa4d9ac, FUTEX_WAIT, 0, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
futex(0xa4d9ac, FUTEX_WAIT, 0, NULL)    = 0
futex(0xa4d9ac, FUTEX_WAIT, 0, NULL)    = 0
epoll_wait(4, [], 128, 0)               = 0
_newselect(0, NULL, NULL, NULL, {0, 100}) = 0 (Timeout)
futex(0x10c24d24, FUTEX_WAKE, 1)        = 1
epoll_wait(4, [], 128, 0)               = 0
epoll_wait(4,  <unfinished ...>
+++ exited with 1 +++

This might point to some issue in re-using descriptors inside the Go runtime (wouldn't be the first time that Go binaries worked differently on different architectures), or even something that needs checking in the Go source.
I might try to rebuild docker on my own and test that binary, but the last time I had to do that it took me hours to get an armhf build done, and last time I checked Xenial wasn't a supported target...

Oh, is the systemd unit file using socket activation? That's no longer
recommended.
If you start the docker daemon manually does it work?
On 16 Oct 2016 1:56 p.m., "Rui Carmo"<EMAIL_ADDRESS>wrote:

A little more info. I've been using strace to figure out what is going
on, and apparently docker is getting confused with a file descriptor (3
in this dump). Watch as the POST call appears to trigger the write pipe:
bad file descriptor message:
getsockname(3, {sa_family=AF_LOCAL, NULL}, [2]) = 0
getpeername(3, {sa_family=AF_LOCAL, sun_path="/var/run/docker.sock"}, [23]) = 0
futex(0x10c24824, FUTEX_WAKE, 1)        = 1
write(3, "POST /v1.24/containers/create HT"..., 1505) = 1505
futex(0x10c24824, FUTEX_WAKE, 1)        = 1
futex(0xa4d9ac, FUTEX_WAIT, 0, NULL)    = 0
epoll_wait(4, [], 128, 0)               = 0
futex(0x10c24aa4, FUTEX_WAKE, 1)        = 1
epoll_wait(4, [], 128, 0)               = 0
epoll_wait(4, [{EPOLLOUT, {u32=1976238816, u64=1976238816}}], 128, -1) = 1
epoll_wait(4, [{EPOLLOUT, {u32=1976238816, u64=1976238816}}], 128, -1) = 1
epoll_wait(4, [{EPOLLIN|EPOLLOUT, {u32=1976238816, u64=1976238816}}], 128, -1) = 1
clock_gettime(CLOCK_MONOTONIC, {850, 276190506}) = 0
futex(0xa4d308, FUTEX_WAKE, 1)          = 1
futex(0xa4d298, FUTEX_WAKE, 1)          = 1
read(5, "HTTP/1.1 101 UPGRADED\r\nContent-T"..., 4096) = 109
futex(0x10c245a4, FUTEX_WAKE, 1)        = 1
futex(0x10c24824, FUTEX_WAKE, 1)        = 1
write(3, "POST /v1.24/containers/044b95d17"..., 207) = 207
futex(0x10c24d24, FUTEX_WAKE, 1)        = 1
futex(0xa4d9ac, FUTEX_WAIT, 0, NULLwrite pipe: bad file descriptor
)    = 0
epoll_wait(4, [], 128, 0)               = 0
_newselect(0, NULL, NULL, NULL, {0, 100}) = 0 (Timeout)
futex(0x10c24d24, FUTEX_WAKE, 1)        = 1
futex(0xa4d9ac, FUTEX_WAIT, 0, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
futex(0xa4d9ac, FUTEX_WAIT, 0, NULL)    = 0
futex(0xa4d9ac, FUTEX_WAIT, 0, NULL)    = 0
epoll_wait(4, [], 128, 0)               = 0
futex(0x10c24aa4, FUTEX_WAKE, 1)        = 1
futex(0xa4d9ac, FUTEX_WAIT, 0, NULL)    = 0
futex(0xa4d9ac, FUTEX_WAIT, 0, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
futex(0xa4d9ac, FUTEX_WAIT, 0, NULL)    = 0
futex(0xa4d9ac, FUTEX_WAIT, 0, NULL)    = 0
epoll_wait(4, [], 128, 0)               = 0
_newselect(0, NULL, NULL, NULL, {0, 100}) = 0 (Timeout)
futex(0x10c24d24, FUTEX_WAKE, 1)        = 1
epoll_wait(4, [], 128, 0)               = 0
epoll_wait(4,  <unfinished ...>
+++ exited with 1 +++
This might point to some issue in re-using descriptors inside the Go
runtime (wouldn't be the first time that Go binaries worked differently on
different architectures), or even something that needs checking in the Go
source.
I might try to rebuild docker on my own and test that binary, but the
last time I had to do that it took me hours to get an armhf build done,
and last time I checked Xenial wasn't a supported target...
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/docker/docker/issues/27410#issuecomment-254045377,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAdcPGtuWF0p3-lofFFK2x5SSXg7b-77ks5q0h8RgaJpZM4KXv9p
.

Well, this is getting interesting. I started the docker daemon manually with sudo strace dockerd.
Then I tried running one of my existing containers (http://github.com/rcarmo/rpi-registry) and on the daemon side, this is what I got:
clock_gettime(CLOCK_MONOTONIC, {3045, 661692768}) = 0
clock_gettime(CLOCK_MONOTONIC, {3045, 680777992}) = 0
clock_gettime(CLOCK_MONOTONIC, {3045, 681927365}) = 0
clock_gettime(CLOCK_MONOTONIC, {3045, 685591368}) = 0
futex(0x1d1271c, FUTEX_WAIT, 0, NULL)   = 0
futex(0x56f9e5a4, FUTEX_WAKE, 1)        = 1
clock_gettime(CLOCK_MONOTONIC, {3045, 708348877}) = 0
clock_gettime(CLOCK_MONOTONIC, {3045, 714711990}) = 0
clock_gettime(CLOCK_MONOTONIC, {3045, 715873758}) = 0
futex(0x1d12084, FUTEX_WAIT, 0, {0, 100000}) = -1 EAGAIN (Resource temporarily unavailable)
clock_gettime(CLOCK_MONOTONIC, {3045, 717828286}) = 0
clock_gettime(CLOCK_MONOTONIC, {3045, 719671043}) = 0
clock_gettime(CLOCK_MONOTONIC, {3045, 721169529}) = 0
clock_gettime(CLOCK_MONOTONIC, {3045, 721704216}) = 0
futex(0x1d12070, FUTEX_WAIT, 0, {0, 100000}) = -1 EAGAIN (Resource temporarily unavailable)
clock_gettime(CLOCK_MONOTONIC, {3045, 722045153}) = 0
clock_gettime(CLOCK_MONOTONIC, {3045, 722196611}) = 0
futex(0x56ce8324, FUTEX_WAKE, 1)        = 1
futex(0x56f9e5a4, FUTEX_WAKE, 1)        = 1
futex(0x56ca80a4, FUTEX_WAKE, 1)        = 1
futex(0x1d12008, FUTEX_WAKE, 1)         = 1
futex(0x1d1227c, FUTEX_WAIT, 0, NULL)   = -1 EAGAIN (Resource temporarily unavailable)
clock_gettime(CLOCK_MONOTONIC, {3045, 727311705}) = 0
clock_gettime(CLOCK_REALTIME, {1476626502, 61768013}) = 0
epoll_wait(4, [], 128, 0)               = 0
clock_gettime(CLOCK_MONOTONIC, {3045, 728661911}) = 0
futex(0x1d12078, FUTEX_WAKE, 1)         = 1
futex(0x1d12008, FUTEX_WAKE, 1)         = 1
futex(0x56ca80a4, FUTEX_WAKE, 1)        = 1
clock_gettime(CLOCK_MONOTONIC, {3045, 730611386}) = 0
futex(0x1d1271c, FUTEX_WAIT, 0, NULL)   = 0
futex(0x1d1271c, FUTEX_WAIT, 0, NULL)   = 0
futex(0x1d1271c, FUTEX_WAIT, 0, NULL)   = 0
futex(0x1d1271c, FUTEX_WAIT, 0, NULL)   = -1 EAGAIN (Resource temporarily unavailable)
futex(0x1d1271c, FUTEX_WAIT, 0, NULL)   = 0
futex(0x1d1271c, FUTEX_WAIT, 0, NULL)   = 0
_newselect(0, NULL, NULL, NULL, {0, 100}) = 0 (Timeout)
futex(0x56ca80a4, FUTEX_WAKE, 1)        = 1
futex(0x1d1271c, FUTEX_WAIT, 0, NULL)   = 0
_newselect(0, NULL, NULL, NULL, {0, 100}) = 0 (Timeout)
futex(0x56ca80a4, FUTEX_WAKE, 1)        = 1
futex(0x56ca80a4, FUTEX_WAKE, 1)        = 1
openat(AT_FDCWD, "/var/run/docker/libcontainerd/94c0a69af7086d208d2d0448bb397f4b2bb69b3e1b5a6f6f2c407db6b37acd42/init-stderr", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 17
read(17, "write pipe: bad file descriptor\n", 32768) = 32
futex(0x1d12078, FUTEX_WAKE, 1)         = 1
epoll_wait(4, [], 128, 0)               = 0
epoll_wait(4, [{EPOLLIN|EPOLLOUT, {u32=1168448208, u64=1168448208}}], 128, -1) = 1
clock_gettime(CLOCK_MONOTONIC, {3047, 631157795}) = 0
futex(0x1d12078, FUTEX_WAKE, 1)         = 1
futex(0x1d12008, FUTEX_WAKE, 1)         = 1
read(6<EMAIL_ADDRESS>32768) = 902
futex(0x56f9e5a4, FUTEX_WAKE, 1)        = 1
read(6, 0x56fb0000, 32768)              = -1 EAGAIN (Resource temporarily unavailable)
futex(0x1d1271c, FUTEX_WAIT, 0, NULL)   = 0

Not quite sure what to make of that, really. Meanwhile, for the sake of argument, I also tried to run dockerd listening to TCP port (launched manually) and set DOCKER_HOST to that. Got exactly the same results.

ok blame me, i have to run : docker run ppc64le/hello-world ,
cannot run containers from other arch to power8 .
for armhf try docker run armhf/hello-world.

@openmax so if you run the right containers, on a daemon you started yourself not via systemd is it working ok or not?

@justincormack docker server  is running via systemd and work.
start the server via "docker daemon" run ok too

I’m trying to run a container I built myself, on ARM. The container builds, but I cannot run anything that outputs a single byte to the console without getting that error.
Also, since I upgraded to Docker 1.12.1, my old containers on my ARM boxes stopped working.

I have the version Docker 1.12.1 running. Am exactly getting the same error as reported on the below link
http://stackoverflow.com/questions/40022817/docker-write-pipe-bad-file-descriptor
The Architecture being used is i686 still not able to figure out a workaround. I understand that ppc64le is resolved, anyone can throw some light on how to make it run on i686 would be really helpful
Thanks

Just did an apt-get dist-upgrade. Problem went away after a reboot, which is… interesting. I did get a new systemd (same reported version, different package revision). Can’t say that’s to blame or not, just stating a fact here.

@rcarmo same reported version could well have patches.

@darthva we do not provide any builds at all for i686, there is no Dockerfile for it, and I am not sure how it is being patched to work at all (if someone wants to contribute a build it would be possible but no one has done so far), so I am going to close the issue as it is completely unsupported. Can continue to try to help you. What image are you trying to run? There are not many i686 images around.

ok agreed,  am trying to run Fuego a testing framework which uses docker has it is main backbone,. Easy way would be to run the docker on 64 bit system?
Thanks again

Yes, 64 bit system should be better.
On 17 Oct 2016 11:00 p.m., "darthva"<EMAIL_ADDRESS>wrote:

ok agreed, am trying to run Fuego a testing framework which uses docker
has it is main backbone,. Easy way would be to run the docker on 64 bit
system?
Thanks again
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/docker/docker/issues/27410#issuecomment-254347428,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAdcPHaeWVZXibvAKTE1ebu8w9N4V5Hqks5q0-_vgaJpZM4KXv9p
.

Just for completeness and to help others using the PINE64, I have the same problem using ubuntu 16.04 on PINE64 arch armhf. I also have the same version of systemd that @rcarmo mentioned above, but for me doing an apt-get dist-upgrade and a reboot did not solve the issue.
I did confirm running docker run armhf/hello-world seems to work.
ubuntu@pine64:~$ docker run armhf/hello-world

Hello from Docker on armhf!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker Hub account:
 https://hub.docker.com

For more examples and ideas, visit:
 https://docs.docker.com/engine/userguide/

@kfowlks @openmax
I am getting this same issue on ubuntu16.04. Kindly refer this link for detailed description.  Likewise, If I run docker run i686/hello-world it didn't work. Any thoughts ?

@prabhukhanna there is no i686 hello world image at present see https://hub.docker.com/u/i686/ for the available images. As said earlier, we do not support i686 and there is no way to even build it in the official repo at present. If someone wants to add support it could be made to work, but we have not had significant demand, and as you can see there are very few available images.

@justincormack Thanks. I am planning to change from Ubuntu 16.04 32bit to 64bit. Hope, this solves.

Just adding to what @kfowlks said... I am also a PINE64 user (64bit ARM/aarch64), and for me either of the two below commands worked - I feel the first is better though as that is the native architecture.
docker run aarch64/hello-world
docker run arm64/hello-world


NASM too old on ubuntu 18.04 (LTS)

The current instructions simply say to install nasm from apt. I plan to update to 20.04 soon, but it would be nice to have better install support and instructions.
I'm just going to resort to compiling and installing nasm until I update.

@KyleSiefring
I would like to help with that, but what is the exact problem?
nasm seems to be available on ubuntu 20.04 (and also on other platforms, e.g. fedora32)

Would it be possible for the nasm module to support yasm?

@Urhengulas
The version of NASM available in the repositories of Ubuntu 18.04 is 2.13.02, while rav1e requires a newer version (2.14 or newer, if I'm reading the relevant commit correctly). 18.04 is an LTS release and will be around for quite a while. This is probably also the case for quite a few other distros as well.
I personally won't be upgrading to 20.04 for a while. A simple guide to building an up-to-date NASM and how to build rav1e with it instead of the system-wide NASM would be much appreciated. I'm currently not using or testing out rav1e because I don't know how to do the second step.
So far I have this for downloading and compiling NASM:

wget https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.bz2 && tar xjvf nasm-2.14.02.tar.bz2 && cd nasm-2.14.02 && sh configure && make -j$(nproc)

I found nasm-mozilla in the ubuntu 18.04 package registry, which seems to provide nasm-2.14.2.
Going to test it and see if one can run rav1e with it.


Hack Day Item #4: Allow the sprite to scale down to fill the space in the dropdown

Unfortunately, I could not figure out how to do the same for the currently selected sprite. If anyone has any pointers, I'm happy to add to this PR!

Codecov Report

Merging #216 into master will increase coverage by 0.41%.
The diff coverage is 89.87%.

@@            Coverage Diff             @@
##           master     #216      +/-   ##
==========================================
+ Coverage   59.29%   59.70%   +0.41%
==========================================
  Files          95       95
  Lines       11549    11580      +31
==========================================
+ Hits         6848     6914      +66
+ Misses       4701     4666      -35

Impacted Files
Coverage Δ

core/ui/fields/field_angle_dropdown.js
17.77% <0.00%> (ø)

core/ui/fields/field_textinput.js
65.88% <ø> (ø)

core/ui/fields/angle_helper.js
78.62% <91.89%> (+35.51%)
:arrow_up:

core/ui/fields/field_image_dropdown.js
80.43% <100.00%> (ø)

core/ui/fields/field_rectangular_dropdown.js
77.09% <100.00%> (+0.20%)
:arrow_up:

Continue to review full report at Codecov.

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

soooooooooo nice!  :)


Invalid fields are not highlighted with red

Invalid fields are not highlighted with red, for New/Idea or Edit/Idea, only common message is shown.
I have a code that fix that, but hold my pull request before https://github.com/Code52/Ideastrike/pull/78 proceed :)

This one is don and could be closed.


Spike - why is the interpreter not showing on status bar in VS Code Insiders with Insiders build of the extension

Environment data

VS Code version: 1.42.0-insider
Extension version (available under the Extensions sidebar): 2020.2.61453-rc
OS and version: Windows 10
Python version (& distribution if applicable, e.g. Anaconda): 3.8.1
Type of virtual environment used (N/A | venv | virtualenv | conda | ...): venv

Expected behaviour

Actual behaviour

The extension is activated (it even activates my virtual environment when I create a new terminal) and working normally, I just can't see the interpreter on the status bar.
Steps to reproduce:
[NOTE: Self-contained, minimal reproducing code samples are extremely helpful and will expedite addressing your issue]

Make sure you're using the latest Insiders build and that you're in VS Code Insiders.
Open a Python file and wait for the extension to activate. Notice the interpreter not showing on the status bar.

Logs
Output for Python in the Output panel (View→Output, change the drop-down the upper-right of the Output panel to Python)
User belongs to experiment group 'ShowPlayIcon - start'
User belongs to experiment group 'ShowExtensionSurveyPrompt - enabled'
User belongs to experiment group 'DebugAdapterFactory - experiment'
User belongs to experiment group 'Reload - experiment'
User belongs to experiment group 'UseTerminalToGetActivatedEnvVars - enabled'
User belongs to experiment group 'WebHostNotebook - experiment'
> conda --version
> pyenv root
> python3.7 -c "import sys;print(sys.executable)"
> python3.6 -c "import sys;print(sys.executable)"
> python3 -c "import sys;print(sys.executable)"
> python2 -c "import sys;print(sys.executable)"
> python -c "import sys;print(sys.executable)"
> py -3.7 -c "import sys;print(sys.executable)"
> py -3.6 -c "import sys;print(sys.executable)"
> py -3 -c "import sys;print(sys.executable)"
> py -2 -c "import sys;print(sys.executable)"
> c:\Users\luabud\Apps\wave\env\Scripts\python.exe -c "import sys;print(sys.executable)"
> ~\AppData\Local\Continuum\anaconda3\Scripts\conda.exe info --json
> ~\AppData\Local\Continuum\anaconda3\Scripts\conda.exe env list
> c:\Users\luabud\Apps\wave\env\Scripts\python.exe -c "import jupyter"
> c:\Users\luabud\Apps\wave\env\Scripts\python.exe -c "import notebook"
> ~\AppData\Local\Continuum\anaconda3\Scripts\conda.exe env list

Output from Console under the Developer Tools panel (toggle Developer Tools on under Help; turn on source maps to make any tracebacks be useful by running Enable source map support for extension debugging)
Feb42020.log

Not able to reproduce it. Can you try disabling all the other extensions and see if you can repro it?

@luabud is the rest of the extension working?
I.e. can you debug, format a python file using black/yapf or similar or can you run some code using Run Python File in Terminal or the like.

The extension is activated (it even activates my virtual environment when I create a new terminal) and working normally, I just can't see the interpreter on the status bar

It sends activation commands to the terminal, so I guess everything else is still working.

Everything works, except the interpreter on the status bar. Disabling all extensions doesn't make it work either.
Hopefully I am the only one experiencing it. If not, we'll find out tomorrow when VS Code releases 😅

Not happening anymore 🎉🎉🎉


[KARAF-4686] Cleaning sun.rmi.transport.tcp.TCPEndpoint.localEndpoint…

…s cache

This PR has been merged. Can you close it please ?


Pano stitch

Sharing the direction I'm trying to take pano stitch automation in case anyone has feedback. This is not fully tested yet.

This PR is not in an ideal state and in particular needs better docs describing how to use the new stitching pipeline. I'm keeping a personal to-do list on the internal wiki at https://babelfish.arc.nasa.gov/confluence/display/astrosoft/ISAAC+Panorama+Interface, for reference. But I think it's better to go ahead and merge it in a mostly-working state with lots of improvements vs. leaving it hanging out while we are working other projects for a while.


Homebridge/homebridge-indigo details don't survive MacOS update

I've got things configured so homebridge is running under launchctl, as is Indigo server. Everything works great with restarting on reboot, keeping homebridge up and running, etc. Through any reboot etc. the HomeKit database is maintained and scenes and room associations are fine BUT if I do a system OS upgrade then all the associated data goes missing, Room assignments, scenes, all the accessories are no longer associated with automations, etc.
I've verified that the UUIDs assigned by Homebridge are properly maintained, they don't change, BUT the uniqueIdentifiers in the HomeKit do change when this happen. Weirdly, not for every accessory but for most.  They don't change during reboots and the like.
I've also confirmed that the persist directory is not removed.  All of the UUID's in the Accessory.XXX.json are maintained including for paired clients and the name of the Accessory.XXX.json file is maintained.  The only difference in the Accessory.XXX.json file before/after the MacOS upgrade was the configVersion.  It went from 26 to 28.  The config hash did not change.
Note I don't lose the devices themselves, they are all there, just any associations I've created in the Home app such as room assignments, scenes, and associations with automations. The automations are still there they just no longer have any device associated with them and are therefore disabled.
I can't find decent documentation as to how these are assigned and maintained by HomeKit so I'm looking for help in that area. I know that the uniqueIdentifier are different from IOS device to IOS device so I'm caching them on each device for comparison, which is how I know they're changing.
Thanks in advance for any help.

Once again, on update 10.12.6 everything was bolloxed as described above.  Any help on at least where to look/debug would be greatly appreciated.

I thought that I may have found an underlying reason for this happening. On upgrading to iOS 11 on my iPad I found that one device was consistently being removed from the home. I would add it back  by restarting homebridge and then a short while later they would be gone. I would be adding it back on iOS 10.
Then I noticed that in iOS 11 that device, before it was removed, appeared as an accessory, a home, and it was marked as not allowed. It seems that the name is a reserved name. I had named my front door as "Entry". Since changing the name to "Front Entry" everything seems to be working.
Everything was humming along fine through a number of reboots until I updated to the latest Sierra Beta and, once again, all the rom and automation connections vanished. Does anyone have a hint as to where in the code I can/should look? Very frustrating.

Just went through an update to the latest 12.6 beta - 10.12.6 Beta (16G23a) and had the problem.  I've compared the UUID's assigned by homebridge-indigo before and after - they are Identical.  I've compared the Accessories and Identities persist files before and after and they are NOT QUITE identical.
In the Accessories there are two differences.
<     [configVersion] => 13
<     [configHash] => 4a142ddf95a2f0b329242e491d24f8a94e1f9089

[configVersion] => 11
[configHash] => 6a2cb3b957ed58976cd3e369eca5e785a4308b09

where left is after and right is before.
In the Identities all of the 'Top Level' Key-Value pair for each accessory has changed the value, not the key.
15,16c15,16
<             [|nextAID] => 31
<             [148089d9-7298-478c-8149-bcf4ff55ef65] => 2

        [|nextAID] => 33
        [148089d9-7298-478c-8149-bcf4ff55ef65] => 30

31c31
<             [e5f476ab-ed57-49e0-9d03-a71a5611d764] => 3

        [e5f476ab-ed57-49e0-9d03-a71a5611d764] => 29

47c47
<             [ca3ba660-f9b5-4f2d-b6e9-5169a039d2b1] => 4

        [ca3ba660-f9b5-4f2d-b6e9-5169a039d2b1] => 2

62c62
<             [6ce53d5e-1388-42d0-a05d-99f1ec3012ab] => 5

        [6ce53d5e-1388-42d0-a05d-99f1ec3012ab] => 3

77c77
<             [c1665f28-b87f-4283-9079-01fefc18b879] => 6

        [c1665f28-b87f-4283-9079-01fefc18b879] => 4

92c92
<             [73662ca6-8974-4763-a93e-b6c727f8d9ba] => 7

        [73662ca6-8974-4763-a93e-b6c727f8d9ba] => 5

107c107
<             [d907785c-3a00-4811-ab9a-093f1073bb33] => 8

        [d907785c-3a00-4811-ab9a-093f1073bb33] => 6

122c122
<             [5ce3b746-a1a8-4893-9b50-c280f776a5bc] => 9

        [5ce3b746-a1a8-4893-9b50-c280f776a5bc] => 31

137c137
<             [b3286ca0-a804-475c-b7d8-c8f7cf170d33] => 10

        [b3286ca0-a804-475c-b7d8-c8f7cf170d33] => 8

152c152
<             [78cdde06-23de-4f1d-bba0-cfcc13acd35b] => 11

        [78cdde06-23de-4f1d-bba0-cfcc13acd35b] => 28

168c168
<             [f0373057-c86b-4406-a85a-f25ce252468d] => 12

        [f0373057-c86b-4406-a85a-f25ce252468d] => 9

183c183
<             [45c45507-e87f-4a9d-8d15-841ba2dc537d] => 13

        [45c45507-e87f-4a9d-8d15-841ba2dc537d] => 10

199c199
<             [06529022-4b63-48af-a3e4-feee4d8a18d4] => 14

        [06529022-4b63-48af-a3e4-feee4d8a18d4] => 11

214c214
<             [13d41697-9e0e-4b8a-9061-9074b69fb8ce] => 15

        [13d41697-9e0e-4b8a-9061-9074b69fb8ce] => 12

230c230
<             [9e968f7b-ef26-491d-a5b9-09368244e8f9] => 16

        [9e968f7b-ef26-491d-a5b9-09368244e8f9] => 13

246c246
<             [f0f66ff0-2a91-4f3f-9391-3fdc1b43e90e] => 17

        [f0f66ff0-2a91-4f3f-9391-3fdc1b43e90e] => 14

262c262
<             [b96118cf-283e-43fd-8b98-48dbb2bddb22] => 18

        [b96118cf-283e-43fd-8b98-48dbb2bddb22] => 15

278c278
<             [8f602650-9fdb-4b98-8eae-01a8f1f64834] => 19

        [8f602650-9fdb-4b98-8eae-01a8f1f64834] => 16

293c293
<             [7a3e4ebd-55c0-4848-a3bd-78652b6c53ce] => 20

        [7a3e4ebd-55c0-4848-a3bd-78652b6c53ce] => 17

308c308
<             [24bed4cb-a7d1-42e7-a179-4d2144c17804] => 21

        [24bed4cb-a7d1-42e7-a179-4d2144c17804] => 18

323c323
<             [84a3cacd-6de6-44bb-9935-ad7483360e5e] => 22

        [84a3cacd-6de6-44bb-9935-ad7483360e5e] => 19

338c338
<             [ca09fb5a-4663-4683-9188-08002fcffc49] => 23

        [ca09fb5a-4663-4683-9188-08002fcffc49] => 20

353c353
<             [ca87e13e-2649-401a-ae0b-beb631c57b8e] => 24

        [ca87e13e-2649-401a-ae0b-beb631c57b8e] => 21

368c368
<             [dd49ad44-76ba-452f-9171-6a4d91913069] => 25

        [dd49ad44-76ba-452f-9171-6a4d91913069] => 22

383c383
<             [a615b603-122b-4c1e-b3c7-087113aa1663] => 26

        [a615b603-122b-4c1e-b3c7-087113aa1663] => 23

398c398
<             [8a877522-f045-46f5-aecd-6800db395f03] => 27

        [8a877522-f045-46f5-aecd-6800db395f03] => 24

413c413
<             [e27fc1cf-7eea-41f8-9cb1-b3f43d22114e] => 28

        [e27fc1cf-7eea-41f8-9cb1-b3f43d22114e] => 25

428c428
<             [c9d17b45-91eb-4998-ac89-19a55009d060] => 29

        [c9d17b45-91eb-4998-ac89-19a55009d060] => 26

443c443
<             [923a3ad3-62aa-4d09-b129-11dd695b9d3c] => 30

        [923a3ad3-62aa-4d09-b129-11dd695b9d3c] => 27

I'm working my way through the code but again, any help would be greatly appreciated.

Any thoughts?

Having similar issues with os updates. No solution so far.

I am hoping this PR on HAP-NodeJS addresses the underlying issue: https://github.com/KhaosT/HAP-NodeJS/pull/491


i am getting this error what is problem, .  core.js:19866 ERROR TypeError: Lt.makeTensor is not a function

Describe the bug
A clear and concise description of what the bug is.
i am getting this error what is problem .
core.js:19866 ERROR TypeError: Lt.makeTensor is not a function

@kansald006
Hi,
I think it is an error that occurs when the version of Angular or TypeScript does not match.
Or version of dependency package such as tenforflow.js is wrong.
This project has only been tested with Angular 7, so try Angular 7 in your project and try.
Thanks.


background colour of journal-container and body are same in write activity

when we click on insert option in write activity then a pop up opens in that when we go to search in abecedarium activity then as the background colour of the journal-container and body are same due to this there is no special highligth for background of scrollbar

I just want to suggest that it will nice if the scroll bar have some background colour which can be implemented by changing the background colour of the journal-container. @llaske please share your view on this
somewhat like this

Hmmm. Why not?
BTW I'm not sure that fixing this without side effect is easy.
This feature rely both on CSS and JS components.

I tried to make the changes by changing the code in activities/Write.activity/css/quill/quill.core.css file. By manual testing (i.e by opening it in browser) I didn't observe any side effects. so @llaske please check the pr and share your view on it. If any side effects occur I will try resolve them.

You must not change styles in external libraries because if the library is upgraded your change will be lost.
Plus the issue is the same in other activities (Write for example) so it's not related to Quill library.

Ok i will not change the external libraries instead i will try to get the excepted changes using activity.css

@llaske I think now it is working fine this time I made changes to the activity.css. And the remaining scrollbars are also working fine without any change. I reopened the pr please share your view on it.

Same issue in Paint, Shared Notes and Fototoon.

All the activities inherit same properties and opacity from the library lib/picoModel.js but still difference occurs. Another way is to solve this issue and make the scrollbar visible is to change the opacity for this activities but confused with were to make the changes as the changes are not applied by making changes to acticity.css. Ans as we cannot make changes to the libraries.

Fixed in https://github.com/llaske/sugarizer/pull/1184


New package: sam-astro.Z-Sharp version 2.1.3

Checklist for Pull Requests

[ ] Have you signed the Contributor License Agreement?
[ ] Is there a linked Issue?
Resolve #156094

Manifests

[ ] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ ] This PR only modifies one (1) manifest
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.6 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

For moderators
This account is automated by Github Actions and the source code was created by CoolPlayLin. If you have any questions about any pull request, don't hesitate to ping Exorcism0666.

[!warning]
With the new version of Komac, numerous Pull Requests may contain bugs or unwanted elements. If such issues arise, please tag russellbanks so that these bugs can be addressed in future updates.

[!important]
Please carefully review these Pull Request before merging. If it is a Pull Request for removing incorrect content and the URLs are issue, free upon manual checking, please close this Pull Request directly. (It is best to inform Exorcism0666 of the closure.)

良い一日をお過ごしください！

Automatic Validation ended with:

Executable C:\Program Files (x86)\ZSharp\ZSharp.exe returned exit code: -1073741515

Automated error analysis suggests -1073741515 may mean STATUS_DLL_NOT_FOUND - possibly due to a dependency on Microsoft.VCRedist.2015+.x64 (or .x86).
(Automated response - build 882.)

@wingetbot run


Reflection MirrorTexture is not affected by PBRMaterial's roughness

Bug repro on playground:
Expected result:
Reflected ball is affected by material's roughness and become blurres as it's value comes to 1
Current result:
Reflected ball is constantly sharp no matter what metallic or roughness values the mirror material has

As we are trying to work towards a real time solution for prefiltering cube texture from probes or mirror, we fixed some default setup of prefiltreing but it unfortunately impacted the mirror.
As a workaround you can set manually the lod generation offsets and scale in your application. I will update the reflection probe to their default previous setup:
mirrorTexture.lodGenerationOffset = 0;
mirrorTexture.lodGenerationScale = 0.8;
In order for it to work you also need to generate mipmap of the mirror
http://www.babylonjs-playground.com/#06UJB4#1
I am closing the issue for now as real time prefiltered texture is in already in our list of future potential candidates.

@sebavan i see that blurred reflection is creating in the grid (due to the mipmaps i guess) Is there a way to achieve blurring without those steps. this looks awkward in motion.

Nope, for PBR to work accurately, the environment needs to be prefiltered in a special way hence the use of Prfiltered Cube Map form external tools.
This step being slow... pretty slow a few techniques with lower quality but still rather expensive (GPU wise) exists. These are the one we are plannning to add to our toolset.
Relying on MipMaps (hardware generated) without the extra setup is totally not accurate and usually blocky for high roughness. This is why we will give a shot to the other techniques.
More info available here: https://learnopengl.com/PBR/IBL/Specular-IBL

@sebavan The issue is back with 4.1.0, i've lost all roughness in mirrors, having mipmaps, lod scale and everythis set. It was working in 4.0.3

Could you provide a playground with the issue ?

@sebavan, yes, sure. https://www.babylonjs-playground.com/#1YAIO7#88

It is because there was a bug with mipmaps generated for bilinear sampling before, the mode now needs to be forced to a filtering mode requiring mipmaps:
https://www.babylonjs-playground.com/#1YAIO7#90

Thanks @sebavan, this seems to work again.


Migrate to TypeScript

Migrate this project to TypeScript and provide type declarations.
Resolving #82

Code Review was not passed


Temporal Degrain (Request)

Hello!
Hope you are doing well. I would like to thank you for all your hard work in bringing optimizations and features to vs. Could you please make Temporal Degrain process content in 16bit as the current port is limited to 8bit processing. There are other useful variants at the bottom of avs's wiki page such as the ChromaMod for grayscale sources http://avisynth.nl/index.php/Temporal_Degrain
You can find the vs port here: https://github.com/Irrational-Encoding-Wizardry/fvsfunc/blob/master/fvsfunc.py#L1166
Kind Regards

Hello, thanks!
Do you work on live action content?
I've always found FFT3D to create ghosting, and it's the main plugin used in this function, but I also mainly work on anime, and haven't extensively used it on IRL stuff. 🤔

No, I do not work on live action content. From my testing, it works really well with SD/DVD content and have not seen any ghosting on the anime sources I've tested it with.

Trumped by better detailed issue https://github.com/Irrational-Encoding-Wizardry/vs-denoise/issues/70


Add ability to specify an arbitrary listen port for webhook admission

Port 443 in most clusters is privileged and by default containers without additional caps are not allowed to listen to such ports.
In addition, helm chart should define a configuration by default that does not require elevation of privileges unnecessarily.

Hey @R-omk, thanks for bringing this up, and sorry for not getting back to you for so long, this capability has been added in PR #673 (I wasn't aware of the existence of this Github issue back then).
With the up-to-date helm chart, port 443 is used as the default webhook server port, and the user can specify an arbiary listen port by setting webhook.serverPort while deploying k-operator, for example:
 helm install kafka-operator --namespace=kafka --create-namespace banzaicloud-stable/kafka-operator --set webhook.serverPort=991

this would set the webhook server port to 991 for the k-operator


Bug: Heading block does not change type to paragraph when video element is above

Problem
When I have a File or Video block and above I have a Heading, is impossible for me to change the block type to the default one when I press "Backspace" with the heading block Empty.
Steps to Reproduce

create a draft
add a file or a video
below add a heading block
whith the cursor at the heading and the heading empty, press "Backspace"

This makes the selection jumps to the file/video above.
https://github.com/MintterHypermedia/mintter/assets/725120/008612be-1c4a-49e9-8116-803a970aa8ce
Expected Behavior
It should reset the heading type to the default one (Paragraph).
https://github.com/MintterHypermedia/mintter/assets/725120/3b6a970d-988c-4b7b-9801-920001a044cb
Debug Info
App Version: 2023.11.5-rc5
Electron Version: 26.0.0
Chrome Version: 116.0.5845.82
Node Version: 18.16.1
Go Build Info: go go1.20.8 path mintter/backend/cmd/mintterd mod mintter (devel) build -buildmode=exe build -compiler=gc build CGO_ENABLED=1 build CGO_CFLAGS= build CGO_CPPFLAGS= build CGO_CXXFLAGS= build CGO_LDFLAGS= build GOARCH=arm64 build GOOS=darwin build vcs=git build vcs.revision=73b78f2e3e507457054ef3e5d73346e6a660a9fc build vcs.time=2023-11-21T13:16:57Z build vcs.modified=false

Fixed in commit f5e1786


Consider making users not explicitly declare dependencies needed by generated code

Feature Request
Crates
This arguably effects both tonic and tonic_build
Motivation
It is quite confusing when you write one line of code and it produces an absolute mountain of error messages. This is what happens when you generate code using tonic_build and you then include that generated code using tonic::include_proto!.
This is because the generated code not only depends on tonic but all: prost, bytes, and prost-types.
Proposal
One possible solution to this is to expose those dependencies through tonic so that as long as the user is depending on tonic, the generated code will work. This can be done by not documenting this explicitly and discouraging the user of these dependencies through proto except for in the generated code.
Alternatives
Alternatively, things can be left how they are and simply documented better.

Thanks for bringing this up. I think your proposal is on point. Tonic can have doc hides re-exports of types it needs. @LucioFranco, what do you think?

So this is actually a prost issue specifically with prost_derive I believe. It refernces prost, bytes and prost-types directly. Tonic's codegen runs through the codegen module to avoid this issue but this something that would need to be upstreamed into prost unfortunetly.

Related upstream issue https://github.com/danburkert/prost/issues/127

@rylev thanks for reporting! I've made sure to update the docs and this should come out with tonic 0.1.


Support for autoscaling_group_tags in self-managed-node-group module

Is your request related to a problem? Please describe.

cluster-autoscaler auto-discovery setup relies on tags placed in the ASG (see: https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/aws/README.md#auto-discovery-setup).
The only option at the moment is to use the variable tags, but that would also apply the tags to security_group, iam_role and instance_profile - which have no use for them.
Using the aws_autoscaling_group_tag resource is also not an option because they should not be combined with managing tags via aws_autoscaling_group directly - which is already used in this module.
Describe the solution you'd like.
A autoscaling_group_tags variable, similarly to iam_role_tags, launch_template_tags, and security_group_tags.

@bryantbiggs if you think this is a good idea, I'm up for implementing it.

@gferon yes, please feel free to open a PR and I can take a look. Thank you!

Hi, this seems to also be affecting managed node groups as the tags, when updated, are not being propagated to the underlying ASG.

This issue has been resolved in version 18.23.0 :tada:


CC73359: Adding new lines

Hello, @dend, @BillWagner, @richlander, @mairaw, @BethMassi, @BethMassi,
This proposed file change comes from https://github.com/dotnet/docs.es-es/pull/58 .
Could you review this contribution and help to merge if agreed?
Many thanks in advance.
Summary
Describe your changes here.
Fixes #Issue_Number (if available)

@v-makoud, this new paragraph substantially duplicates the third paragraph but provides less detail. The original version of the readme is vastly preferable, so I'm closing this PR.


How to activate a virtual environment of a python function app deployed in Azure

For the first time I deployed a Python function app to Azure using a deployment pipeline:
https://docs.microsoft.com/bs-latn-ba/azure/azure-functions/functions-how-to-azure-devops
The package is deployed to Azure using Kudu Zip deploy.
My http triggered function runs wonderfully locally (on Windows), but I have a 500 internal errors on Azure because it does not find the module requests.

Exception: ModuleNotFoundError: No module named 'requests'

imports of __init__.py:

import logging, requests, os
import azure.functions as func

If I remove the 'requests' dependency the function works on Azure (status 200).
The requests library is imported by the requirement.txt and copied to the .venv36/lib/site-packages/requests by the build pipeline.
So I am wondering if the virtual environment .venv36 that is built in the package is used by the function deployed in Azure. There is no indication about how to activate virtual environments in Azure.

I also added the question to stackoverflow.com

Hi @Anthony-Breneliere Referring to SO Post, I am glad that the issue is resolved. So for now will proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.


feat: location for using

Changes proposed in this pull request:

Related Issues
Closing #

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
Attention: Patch coverage is 33.33333% with 6 lines in your changes missing coverage. Please review.

Project coverage is 84.92%. Comparing base (30759d1) to head (40055dc).

Files with missing lines
Patch %
Lines

src/ast/common/location.rs
25.00%
6 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #39      +/-   ##
==========================================
- Coverage   87.95%   84.92%   -3.04%
==========================================
  Files          14       15       +1
  Lines         191      199       +8
==========================================
+ Hits          168      169       +1
- Misses         23       30       +7

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


Fix/update sdk version

solution to yarn install problem:
https://github.com/yarnpkg/berry/issues/5831#issuecomment-2364260390


Invalid Credentials Error during Login in example.js

My email and password are definitely correct, but can't authenticate.
My password does contain a special character (%), if that matters?
node example.js
/Projects/NodeJS/node_modules/node-tile/lib/esm/services/UserService.js:32
            throw Error(`Error code ${result_code}: ${result?.message}`);
                  ^

Error: Error code 1: Invalid credentials for email<EMAIL_ADDRESS>you have 15 login attempts left
    at UserService.handleError (/Projects/NodeJS/node_modules/node-tile/lib/esm/services/UserService.js:32:19)
    at UserService.login (/Projects/NodeJS/node_modules/node-tile/lib/esm/services/UserService.js:26:14)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async /Projects/NodeJS/example.js:6:1

Interesting.. I'll change my password & see if I can reproduce this issue

I'm so sorry, I did have my password wrong.
Working well, apologies again.