Issue 3937

[x] Tests added / passed
[x] Passes flake8 dask

This PR fixes #3937. It contains two patches:

Uses Integral for integral type checks in array/optimize.py
Ensure the use of numpy in array/slice.py is hidden by casting result to an int.

Either fixes the original issue.
The use of isinstance(x, int) may cause problems in other places if a Integral (e.g. numpy.int64) is somehow passed into dask internals. I recommend changing all of them to isinstance(x, Integral), but there may be other concerns (e.g. sticking to primitive python types and always cast them before going down to internals can be desirable).
Here is a list of them:
(base) [yfeng1@waterfall dask]$ grep isinstance `find dask -name '*.py'` |grep int
dask/array/tests/test_array_core.py:    assert isinstance(x.size, int)
dask/array/tests/test_array_core.py:    assert all(isinstance(s, int) for s in d.shape)
dask/array/tests/test_overlap.py:    assert isinstance(fs[1][1], int)
dask/array/tests/test_overlap.py:    assert all(isinstance(k[2], int) for k in a.dask)
dask/array/tests/test_overlap.py:    assert all(isinstance(k[1], int) for k in b.dask)
dask/array/chunk.py:    if isinstance(axes, int):
dask/array/core.py:                   for x in b if not isinstance(x, (int, long)))
dask/array/core.py:                elif isinstance(adjust_chunks[ind], int):
dask/array/core.py:    points = [p if isinstance(p, slice) else list(p) for p in points]
dask/array/creation.py:    if not isinstance(chunks, int):
dask/array/einsumfuncs.py:                elif isinstance(s, int):
dask/array/einsumfuncs.py:                elif isinstance(s, int):
dask/array/rechunk.py:            all(isinstance(x, int) or math.isnan(x)
dask/array/reductions.py:    if isinstance(axis, int):
dask/array/reductions.py:    elif isinstance(split_every, int):
dask/array/reductions.py:    if not isinstance(order, int) or order < 0:
dask/array/reductions.py:    elif isinstance(axis, int):
dask/array/reductions.py:    assert isinstance(axis, int)
dask/array/routines.py:    if isinstance(left_axes, int):
dask/array/routines.py:    if isinstance(right_axes, int):
dask/array/slicing.py:        n = sum(isinstance(ind, int) for ind in index[:x])
dask/bag/tests/test_bag.py:        y = repeat(y) if isinstance(y, int) else y
dask/dataframe/tests/test_csv.py:    assert isinstance(auto_blocksize(3000, 15), int)
dask/dataframe/tests/test_csv.py:    assert isinstance(blocksize, int)
dask/dataframe/tests/test_utils_dataframe.py:    assert isinstance(meta, np.int64)
dask/dataframe/io/tests/test_csv.py:    assert isinstance(auto_blocksize(3000, 15), int)
dask/dataframe/io/tests/test_csv.py:    assert isinstance(blocksize, int)
dask/dataframe/categorical.py:    elif not isinstance(split_every, int) or split_every < 2:
dask/dataframe/core.py:        if isinstance(window, int):
dask/dataframe/core.py:            if not isinstance(min_periods, int):
dask/dataframe/core.py:        if not isinstance(periods, int):
dask/dataframe/core.py:        if not isinstance(periods, int):
dask/dataframe/core.py:        if not isinstance(lag, int):
dask/dataframe/core.py:    elif split_every < 2 or not isinstance(split_every, int):
dask/dataframe/core.py:    elif split_every < 2 or not isinstance(split_every, int):
dask/dataframe/rolling.py:    if prev_part is not None and isinstance(before, int):
dask/dataframe/rolling.py:    if next_part is not None and isinstance(after, int):
dask/dataframe/rolling.py:        if not (isinstance(before, int) and before >= 0 and
dask/dataframe/rolling.py:                isinstance(after, int) and after >= 0):
dask/dataframe/rolling.py:    if before and isinstance(before, int):
dask/dataframe/rolling.py:    if after and isinstance(after, int):
dask/dataframe/rolling.py:                (isinstance(self.window, int) and self.window <= 1) or
dask/tests/test_sizeof.py:    assert isinstance(sizeof(df), int)
dask/tests/test_sizeof.py:    assert isinstance(sizeof(df.x), int)
dask/tests/test_sizeof.py:    assert isinstance(sizeof(df.index), int)

Sure. I am thinking of only doing the first fix (int cast) in this PR, and then use another PR to change all instance type checks to Integral from 'int'.

Sure. I am thinking of only doing the first fix (int cast) in this PR, and then use another PR to change all instance type checks to Integral from 'int'.

No objection from me.  I would like to include this PR in a bugfix release that goes out on Friday if possible.  My guess is that we'll get things in easily by that time though.

Thanks @rainwoodman !

Recall having similar issues before. Nice to get to the root of the problem. Thanks @rainwoodman 😄


Change default graph behavior of Add/Attach/etc

In EF6.x the default behavior of these methods was to start tracking every reachable entity in the state being requested for the root entity. This caused a lot of issues because:

Attaching a root would often end in exceptions because there were new entities in the graph (with no PK set) which would attempt to be tracked as unchanged, resulting in duplicate PK values.
There was no easy mechanism to traverse over a graph and chose the state of each entity as you go.
There was no ability to leave parts of the graph un-tracked (i.e. I want to add an order and I don't care about telling you the state of the Customer).

In EF Core we tried to alleviate some of these issues by initially making Add/Attach/etc. just work on a single object, but this caused a lot of confusion since it seems the natural expectation (based on the feedback we saw) is that you could add an Order and the OrderLines would be automatically added too.
We then tried an "Include Dependents" approach, where if you add a parent, we also include the children as added. This works well for some cases... but it gets pretty confusing. This is compounded by the fact that it's not always clear from your model which is the principal/dependent of a relationship.
After discussion, we realized that with some small variations on the rules from EF6.x, we already have APIs in EF Core to enable these scenarios:

There was no easy mechanism to traverse over a graph and chose the state of each entity as you go.

We have the TrackGraph API for exactly this purpose.

There was no ability to leave parts of the graph un-tracked (i.e. I want to add an order and I don't care about telling you the state of the Customer).

This is now supported in EF Core, our stack is capable of handling entities in the graph that it is not tracking. We have the DbContext.Entry(...).State API that allows you to put a single entity into the context without any graph behavior (i.e. no related entities are brought in).

Attaching a root would often end in exceptions because there were new entities in the graph (with no PK set) which would attempt to be tracked as unchanged, resulting in duplicate PK values.

We will adjust the graph behavior of these APIs as follows:

Add: Adds every reachable entity that is not already tracked
Attach: Attaches every reachable entity, except where a reachable entity has a store generated key and no key value is assigned, these will be marked as added.
Update: Same as Attach, but entities are marked as modified
Remove: Same as Attach, and then mark the root as deleted. Since cascade delete now happens on SaveChanges, this allows cascade rules to flow to entities later on.

Some important results of this behavior:

It works as expected for attached scenarios (i.e. non N-Tier scenarios). I.e. if I create a graph of objects and then call Add, they all get added.
For N-Tier scenarios, it leaves you with the ability to cycle over each entity and tell EF the state (which was blocked in EF6.x because you would get duplicate key exceptions). Of course, TrackGraph may also be a better API for these scenarios too.

:(

So just to clarify, we'll still be able to set an entity state to Added via TrackGraph and EF will only set the state of that single entity to Added?

@tonysneed if you want to set the state of a single entity then context.Entry(myEntity).State = EntityState.Added is probably the easiest. TrackGraph will work... but that is really designed for iterating over a graph of entities and setting the state for each one.

Thanks @rowanmiller, so context.Entry(myEntity).State = EntityState.Added will not set child entity states to Added, as it did in EF6. Just wanted to confirm, thanks!

@tonysneed correct, EF Core is now ok with having tracked entities reference entities that are not tracked.

Excellent. In case anyone is interested, Here is a test which shows the difference between EF 6 and EF Core when it comes to setting entity state to Added on a disconnected graph.
[Fact]
public void Set_state_should_mark_single_entity()
{
    // Arrange
    var detail = new OrderDetail();
    var order = new Order
    {
        OrderDetails = new List<OrderDetail> { detail }
    };

    // Act: Set parent state to Added
    _context.Entry(order).State = EntityState.Added;

    // Assert for EF 6: Child state set to Added
    Assert.Equal(EntityState.Added, _context.Entry(detail).State);

    // Assert for EF Core: Child state remains Detached
    Assert.Equal(EntityState.Detached, _context.Entry(detail).State);
}

Here is the full source code for the tests.

yeah I better go do a RC2 branch and update all of my disconnected data/graph tests in my ef7 repo (https://github.com/julielerman/EF7WhoAreYou/tree/master/Familiar and Enhancements Console Full NET After/Tests.RC)

@julielerman and rename your repo to EFCore :wink:
BTW our nightly builds are pretty unstable at the moment due to moving over to .NET CLI... so you may want to hold off a couple of weeks.

So right now I am adding a Project entity (a new one) that has a list of Folder entities (also new). Each folder points to a FolderType (existing). For it to work, I have to attach all the existing folder types to the context before saving, or it tries to insert new folder types. What is the correct approach when part of the graph (root and some bits) are new, and part references existing objects? I was hoping for one method that would look at the IDs <= 0 to infer whether that object was new or existing..

I was hoping for one method that would look at the IDs <= 0 to infer whether that object was new or existing

It doesn't do that automatically because it would only work if you have setup database generated keys, which is only a subset of the scenarios EF supports. If you know you did that in your entities you should be able to use TrackGraph() passing a lambda that will pick the right state for the entity based on the value of the key.

@divega I'm a little confused now. Until today (I upgraded to the latest build), I just used Add and everything worked like a charm ;)
Can you give an example for the following scenario? How to realize this?
public class A {
  public int Id { get; set;}
  public virtual B ObjectB { get; set;}
  public virtual C ObjectC { get; set;}
}

public class B {
   public int Id { get; set;}
}

public class C {
   public int Id { get; set;}
}

A a = new A();
a.ObjectB = b; //b has been fetched from the database in a using statement => no global context
a.ObjectC = new ObjectC();

using (MyContext context = new MyContext())
{
 //What to use, if I don't want to add every new child (C) manually and there are references to an existing object (B) too
  context.A.Add(a);
  context.SaveChanges();
}

I know you asked Diego, but if I may jump in as this is a topic near & dear to my heart...
First of all, the problem would go away if you would just use FKs .
public class A {
  public int Id { get; set;}
  public virtual B ObjectB { get; set;}
  public int BId {get;set}
  public virtual C ObjectC { get; set;}
  public int CId {get;set}
}

Then you could set the relationships like:
A a = new A();
a.BId=b.Id; <existing object ..this is the one that is causing you trouble :)
a.ObjectC = new ObjectC();

Because it's a new context and unaware of the existing objects, Add (update delete and attach) will affect the entire graph with whatever state you imply with the method.
As of EFCore, you can use the DbContext.Entry(). State method e.g.
context.Entry(a).State=EntityState.Added
to apply that state only to the entity that you specified and it will ignore anything else that is attached. That is new behavior for Entry and gives us a great opportunity to have a consistent pattern. This is good in your example when you know for 100% sure that you only want to affect "a" and that you 100% surely kow that you don't want b & c to be updated. But that is not your scenario, so Entry doesn't 'work either because you want to skip B but you DO want to add C as well.
If your method does not have that confidence then you need to choose a pattern to employ. There is no magic. If you know that in your system a pre-existing key value ("Id" in your case) indicates that an entity should not get dragged into the update, then you can iterate through and check for Id =0 vs Id has a value >0. (or whatever your rule is). The new TrackGraph method gives you a chance to do this.
context.ChangeTracker.TrackGraph(a, a=>[somefunction to perform])
TrackGraph iterates through every item in the graph and performs the specified function on it.
I have an example of using TrackGraph in my RC2 sample on Github. (https://github.com/julielerman/EFCore-RC2-Demo). But I'm not just using a "if id=0, added, if not unchanged" rule. I'm using trackgraph in combination with an old pattern that I wrote about yet again in a recent MSDN Mag article: https://msdn.microsoft.com/magazine/mt694083  (Rowan & I wrote about it in our DbContext book, too and that was back with EF 4.1 :) )
Look at the weathercontroller FixSeasonInReactions method. It uses trackgraph to update state based on a known state flag applied to each of my classes.
Hope this helps and sorry if you wanted to get an answer straight from Diego because that would represent the guidance directly from the team.

@aflx I am having a little trouble understanding everything Julie said, but given the code you posted I think you just need two steps:

Call context.Attach for all objects that already existed in the database -- so for b in your code.
Call context.Add for all new objects - for a and c in your code.

Attach tells EF that the entity already exists in the database, and sets the state of the entity to Unchanged. Add tells EF that the entity is new and should be inserted into the database, and so sets the state to Added.
Since Attach and Add both operate on the graph of reachable objects you may not need to call them for every single object in your graph. For example, in the code you wrote you can Attach b and then Add a, and since c is reachable from a it will also get added.
If you want to automatically decide whether the entity should be Added or Attached based on key value, then you can use TrackGraph as Diego suggested. But this may be overkill.

@julielerman Thank you! (I removed Diego 10 seconds after publishing the comment...so don't worry ;)
I already tried it with just setting the Id...but no chance...
public int Add<T>(T entity) where T : class
{
	using (MyContext context = new MyContext())
	{
		DbSet<T> dbSet = context.Set<T>();
		dbSet.Add(entity); // Here the object reference gets loaded by Id
		context.SaveChanges(); // And here I get the exception (unique constraint...)
	}

	return (entity as BaseObject).Id;
}

I tried the easy example with TrackGraph (checking for Id), but it seems that I'm doing something wrong, because the lambda function is just called once for the parent (A)
public int Add<T>(T entity) where T : class
{
	using (TraxContext context = new TraxContext())
	{
		DbSet<T> dbSet = context.Set<T>();

		context.ChangeTracker.TrackGraph(entity, e => {
			if ((e.Entry.Entity as BaseObject).Id > 0) e.Entry.State = EntityState.Unchanged;
		});

		dbSet.Add(entity);
		context.SaveChanges();
	}

	return (entity as BaseObject).Id;
}

@ajcvickers Thx. But I don't like to use attach for b. I think, this only makes sense if you have something like a global context. Otherwise you always have to keep in mind storing and attaching existing objects. For a larger solution with complex objects and relationships this will be hard.
Everything was fine with the "old" behavior for Add for me (I liked the magic) :D

There are certainly some interesting changes here! I found another one today... I was adding a new Project object and it has a Client property, that may be an existing Client or a new One. For new ones, we had set the Id to -1. Client and Project have IDENTITY columns. I believe this used to cause it to be Inserted, but omitting the ID. But NOW, it tries to insert the -1! This of cause fails. To further complicate matters, 0 is a valid ID values. So now I need the client to specify a negative ID to mean add, then I need to CHANGE that Id to 0 before saving it!
I think these changes are geared toward making things more explicit and less automagic, and the TrackChanges is a nice place to put your 'business logic' for IDs, but a lot of people will be confused, so some careful documentation will be needed!

oh no! If what I suggested was so convoluted that @ajcvickers didn't grok it, that makes me nervous. Maybe we should chat offline about this Arthur because I want to make sure I'm not inventing anti-patterns.
@aflx Add works the same as it did in EF6 and earlier.  I wouldn't combine TrackGraph and dbset.add. Use one of the other. The result of what you are doing is not much different than Arthur's suggestion. You are having the changetracker essentially call Attach on the object that has a value in id. Then you are calling Add on the dbset. The trackgraph is itereating through all of the objects. That's its job. Your code is telling it to ignore A & C. Make it say (this is not real syntax) e.entry.state= if (id>0) Unchanged else Added. Get rid of dbset.add.

@johnkwaters

think these changes are geared toward making things more explicit and less automagic,
Totally agreed! That's how I've been explaining it.

TrackChanges is a nice place to put your 'business logic' for IDs,
also agreed

but a lot of people will be confused, so some careful documentation will be needed!

This is where "this is not EF6" comes in. People are going to see familiar methods and presume they will act the same as they always did.

@julielerman Ok, with TrackGraph and without Add => works ;) Thank you for this hint.
using (TraxContext context = new TraxContext())
{
	DbSet<T> dbSet = context.Set<T>();

	context.ChangeTracker.TrackGraph(entity, e => {
		if ((e.Entry.Entity as BaseObject).Id > 0)
		{
			e.Entry.State = EntityState.Unchanged;
		}
		else
		{
			e.Entry.State = EntityState.Added;
		}
	});

	context.SaveChanges();
}

Funny, I came up with the same code.

You shouldn't need a base entity class. Try e.Entry.IsKeySet.

IsKeySet? Oh what a great property!! I need to start iterating through the APIs to see what gems I've missed!!

But don't you still need to examine the value of the key? How does IsKeySet help with that?

Wouldnt it be cool if when specifying a key, you could give a lambda specifying what constitutes an 'new' value, for instancces SetKey( e => e.Id, () => e.Id <=0 ). Then the fwk could go back to doing the heavy lifting in a generic way...

@johnkwaters did you check the code base? It checks to make sure that the key is not at the default value. That's pretty good coverage. And it's virtual so perhaps you can override it ... though I haven't tried it out yet.
public virtual bool IsKeySet => !EntityType.FindPrimaryKey().Properties.Any(p => p.ClrType.IsDefaultValue(this[p]));

Awesome. No, I didnt check the codebase... next time I will! Right now I am working on a DB that was ported over from Access to SQL server, and sadly they use 0 as a valid key value for all kinds of tables, so having it be negative is the lambda I would need, or the override.

@julielerman @divega @ajcvickers And I must say it is such a treat to be able to discuss and possibly influence the evolution of EF7 as it is crafted! I am using it in several production projects, due to ship in the August time frame (!!), so having this dialog definately makes me feel good about my bet on .net core.

So I am passing this root object to track changes. It is NOT iterating over any of the referenced objects or any of the child object lists.
The relationships ARE spelled out in the fluent config.
Do I need to use virtual for this to work?

and sadly they use 0 as a valid key value for all kinds of tables

If zero is a valid key you can change the type of the key to be nullable, e.g. int? instead of int. Then IsKeySet will return true for zero and false for null.

So I am passing this root object to track changes. It is NOT iterating over any of the referenced objects or any of the child object lists.
The relationships ARE spelled out in the fluent config.
Do I need to use virtual for this to work?

Not sure what the problem could be. You don't need to make the navigation properties virtual, in fact virtual doesn't make any difference with EF Core. Could you please create a new issue with a self-contained repro of this issue?

But then wouldn't I need a nullable pk in the db?
Sent from my iPhone

On Jun 2, 2016, at 2:23 PM, Diego Vega<EMAIL_ADDRESS>wrote:
and sadly they use 0 as a valid key value for all kinds of tables
If zero is a valid key you can change the type of the key to be nullable, e.g. int? instead of int. Then IsKeySet will return true for zero and false for null.
So I am passing this root object to track changes. It is NOT iterating over any of the referenced objects or any of the child object lists.
The relationships ARE spelled out in the fluent config.
Do I need to use virtual for this to work?
Not sure what the problem could be. You don't need to make the navigation properties virtual, in fact virtual doesn't make any difference with EF Core. Could you please create a new issue with a self-contained repro of this issue?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Nope. The column will still be non-nullable as null is not a valid key value in a persisted object. It only means that the key can have a null value temporarily while it is in memory and before it is added to a DbContext.

@ajcvickers when Attaching a graph (no previously tracked entities) and child does NOT have it's key value filled, it becomes Added. When there is a a value in key, it becomes Unchanged. I did not expect this. Is Attach now reading key values to make state decisions? Did I miss that explanation somewhere?

It's great to follow this discussion, especially given how long these challenges have been kicking around.
I believe the TrackGraph pattern described by @julielerman may be superceded by the IsKeySet approach, i.e. simply use store-generated keys and then do one of the following: either
(a) Attach copies of the entities that already exist in the store ("b" in @aflx's example) with their primary keys set, and then Add the (root of the) new entities; or
(b) Refer to existing entities by putting their store-generated keys in the new entities, and then Add the (root of the) new entities.
@julielerman 's comment of June 21, and the description of Attach in @rowanmiller 's original posting, seem to say that in case (a) you could use Attach instead of Add for the new entities. The new entities' store-generated keys will not have been set and therefore the Attach will actually set the state to Added. In other words you can just construct the complete graph, including store-generated Id's in the case where the entity is a copy of an object already in the data store, and just Attach the whole thing. Or you can refer to the existing objects by Id instead of by reference, in which case you can either Add or Attach the graph.
Have I gotten that right? It would be great to have an update to @julielerman 's April MSDN article that takes into account the June discussion above.

@sjb-sjb did you see this https://msdn.microsoft.com/magazine/mt767693 ?

Cool, thanks!
Sent from my iPhone

On Aug 13, 2016, at 2:07 AM, Erik Ejlskov Jensen<EMAIL_ADDRESS>wrote:
@sjb-sjb did you see this https://msdn.microsoft.com/magazine/mt767693 ?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

How are the entities tracked in the client? Is there going to be an out-the-box solution for that? Any tools for client-side entities-graph tracking/pushing/merging/caching?


ruby 2.3.1 rails 5

Loading james environment (Rails 5.0.0.rc1)
irb(main):001:0> Faker::Vehicle.vin
NoMethodError: undefined method split' for nil:NilClass 	from /Users/james/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/faker-1.6.5/lib/faker/vehicle.rb:13:in vin'
from (irb):1

I'm on Ruby 2.0 and this doesn't work in 1.6.5 either.

Hi @u007
I'm also getting this error
Ruby version - ruby 2.2.1p85
Rails 4.2.5

I tinkered with this and seems like in rails 5 console the line https://github.com/stympy/faker/blob/9f6b499ab33c5bb8eacac657c2bd510ed4f45c2f/lib/faker.rb#L140 returns a hash with symbol keys and not string keys.
Rails console
2.3.0 :001 > I18n.translate(*["faker.vehicle.manufacture", {:locale=>:en, :raise=>true}]).first
 => {:name=>"MARQUESS ELECTRIC CAR COMPANY", :wmi=>"15E", :wmi_ext=>nil}

IRB console
2.3.0 :003 > I18n.translate(*["faker.vehicle.manufacture", {:locale=>:en, :raise=>true}]).first
 => {"name"=>"MARQUESS ELECTRIC CAR COMPANY", "wmi"=>"15E", "wmi_ext"=>nil}

In this line in vehicle we try to access it via string key https://github.com/ashish91/faker/blob/9f6b499ab33c5bb8eacac657c2bd510ed4f45c2f/lib/faker/vehicle.rb#L13 which throws the error.
I've created a [PR #644|https://github.com/stympy/faker/pull/644/] for fixing this. Since this issue only rises when run on rails console I've not added a test case for this, in fact a test case already covers the same case but our environment doesn't run the code on rails console so it doesn't break.

#644

I encounter this issue as well, both in rails console and when running our rspec test suite.

Ruby 2.2.0
Rails 4.2.5
Both Faker 1.6.4 and 1.6.6

Result when used from our RSpec test suite with Factory Girl :
Failure/Error: registration { Faker::Vehicle.vin }

     NoMethodError:
       undefined method `split' for nil:NilClass
     # /Users/pabuisson/.rvm/gems/ruby-2.2.0/gems/faker-1.6.4/lib/faker/vehicle.rb:13:in `vin'
     # ./spec/factories/vehicle.rb:5:in `block (3 levels) in <top (required)>'
     # /Users/pabuisson/.rvm/gems/ruby-2.2.0/gems/factory_girl-4.7.0/lib/factory_girl/attribute/dynamic.rb:16:in `instance_exec'
     # /Users/pabuisson/.rvm/gems/ruby-2.2.0/gems/factory_girl-4.7.0/lib/factory_girl/attribute/dynamic.rb:16:in `block in to_proc'
     # /Users/pabuisson/.rvm/gems/ruby-2.2.0/gems/factory_girl-4.7.0/lib/factory_girl/evaluator.rb:75:in `instance_exec'
     # /Users/pabuisson/.rvm/gems/ruby-2.2.0/gems/factory_girl-4.7.0/lib/factory_girl/evaluator.rb:75:in `block in define_attribute'
     # /Users/pabuisson/.rvm/gems/ruby-2.2.0/gems/factory_girl-4.7.0/lib/factory_girl/attribute_assigner.rb:56:in `get'
     # /Users/pabuisson/.rvm/gems/ruby-2.2.0/gems/factory_girl-4.7.0/lib/factory_girl/attribute_assigner.rb:16:in `block (2 levels) in object'
     # /Users/pabuisson/.rvm/gems/ruby-2.2.0/gems/factory_girl-4.7.0/lib/factory_girl/attribute_assigner.rb:15:in `each'
     # /Users/pabuisson/.rvm/gems/ruby-2.2.0/gems/factory_girl-4.7.0/lib/factory_girl/attribute_assigner.rb:15:in `block in object'
     # /Users/pabuisson/.rvm/gems/ruby-2.2.0/gems/factory_girl-4.7.0/lib/factory_girl/attribute_assigner.rb:14:in `tap'
     # /Users/pabuisson/.rvm/gems/ruby-2.2.0/gems/factory_girl-4.7.0/lib/factory_girl/attribute_assigner.rb:14:in `object'
     # /Users/pabuisson/.rvm/gems/ruby-2.2.0/gems/factory_girl-4.7.0/lib/factory_girl/evaluation.rb:12:in `object'
     # /Users/pabuisson/.rvm/gems/ruby-2.2.0/gems/factory_girl-4.7.0/lib/factory_girl/strategy/create.rb:9:in `result'
     # /Users/pabuisson/.rvm/gems/ruby-2.2.0/gems/factory_girl-4.7.0/lib/factory_girl/factory.rb:42:in `run'
     # /Users/pabuisson/.rvm/gems/ruby-2.2.0/gems/factory_girl-4.7.0/lib/factory_girl/factory_runner.rb:29:in `block in run'
     # /Users/pabuisson/.rvm/gems/ruby-2.2.0/gems/activesupport-4.2.5/lib/active_support/notifications.rb:166:in `instrument'
     # /Users/pabuisson/.rvm/gems/ruby-2.2.0/gems/factory_girl-4.7.0/lib/factory_girl/factory_runner.rb:28:in `run'
     # /Users/pabuisson/.rvm/gems/ruby-2.2.0/gems/factory_girl-4.7.0/lib/factory_girl/strategy_syntax_method_registrar.rb:20:in `block in define_singular_strategy_method'

I have this problem too.

Ruby 2.3.0
Rails <IP_ADDRESS>
Faker 1.6.6

I ran into this as well.

ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]
Rails <IP_ADDRESS>
faker (1.6.6)

@davidhaley If you want a quick fix checkout this repo:
https://github.com/rui-ribeiro/faker.git


The device in order to implement this code

Hello,Sir
Firstly,Thanks your sharing.I have some question for the system implementation.
Actually,I want to know which device was used to implement this code, CPU or GPU？I could implement this code on CPU.Considering lots of parameters,I want to achieve it on GPU,however ,I don't make it up to now.
[numpy.core._exceptions._ArrayMemoryError: Unable to allocate 128. MiB for an array with shape (8192, 2048) and data type float64]It's one of mistakes I met.
So ,if you make it on GPU ,could you share me your environment setting or other  essential elements to make it？
Thanks

Sorry for the delay, I did not notice this issue. However, I would not have been useful to you anyway because I used a cpu.


iOS - Starting app in landscape orientation hide the status bar for ever

Steps to Reproduce
https://github.com/flutter/flutter/issues/24398 issue still exist on the following scenario.
Issue reproductible on 3.7.7

Create new flutter project
Rotate your iOS simulator to landscape before launching app
Execute flutter run on the code sample
See no status bar (normal behavior on iOS)
Rotate to portrait your iOS simulator

Expected results:
Status bar should be visible
Actual results:
Status bar is not visible

Code sample

# No code needed
flutter create .

Logs

[✓] Flutter (Channel stable, 3.7.7, on macOS 13.2.1 22D68 darwin-arm64, locale fr-FR)
    • Flutter version 3.7.7 on channel stable at /Users/earminjon/fvm/versions/3.7.7
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 2ad6cd72c0 (13 days ago), 2023-03-08 09:41:59 -0800
    • Engine revision 1837b5be5f
    • Dart version 2.19.4
    • DevTools version 2.20.1

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
    • Android SDK at /Users/earminjon/Library/Android/Sdk
    • Platform android-33, build-tools 33.0.2
    • ANDROID_HOME = /Users/earminjon/Library/Android/Sdk
    • Java binary at: /Users/earminjon/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/221.6008.13.2211.9619390/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14C18
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.1)
    • Android Studio at /Users/earminjon/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/221.6008.13.2211.9619390/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)

[✓] IntelliJ IDEA Ultimate Edition (version 2022.3.3)
    • IntelliJ at /Users/earminjon/Applications/JetBrains Toolbox/IntelliJ IDEA Ultimate.app
    • Flutter plugin version 72.1.4
    • Dart plugin version 223.8888

[✓] IntelliJ IDEA Ultimate Edition (version 2022.3.3)
    • IntelliJ at /Users/earminjon/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/223.8836.41/IntelliJ IDEA.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 13.2.1 22D68 darwin-arm64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 111.0.5563.64

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

Phone landscape :

Launching app in landscape, no status bar visible (good) :

Rotating app in portrait no status bar visible (bad !)

Safari or iMessage didn't have this issue :
Launching iMessage in landscape, no status bar visible (good)

Rotating iMessage to portrait, status bar visible (good)

Thanks for the detailed report, @EArminjon. This issue is reproducible on the latest stable and master channels with Steps to reproduce above.

flutter doctor -v (stable and master)
[✓] Flutter (Channel stable, 3.7.7, on macOS 13.0.1 22A400 darwin-x64, locale en-EE)
    • Flutter version 3.7.7 on channel stable at /Users/huynq/Documents/GitHub/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 2ad6cd72c0 (10 hours ago), 2023-03-08 09:41:59 -0800
    • Engine revision 1837b5be5f
    • Dart version 2.19.4
    • DevTools version 2.20.1

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-33, build-tools 31.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14B47b
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[!] Android Studio
    • Android Studio at /Applications/Android Studio Preview.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    ✗ Unable to find bundled Java version.
    • Try updating or re-installing Android Studio.

[✓] Android Studio (version 2022.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)

[✓] IntelliJ IDEA Community Edition (version 2022.1.1)
    • IntelliJ at /Users/huynq/Library/Application Support/JetBrains/Toolbox/apps/IDEA-C/ch-0/221.5591.52/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.76.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.60.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-x64     • macOS 13.0.1 22A400 darwin-x64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 110.0.5481.177

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

[!] Flutter (Channel master, 3.9.0-12.0.pre.17, on macOS 13.0.1 22A400 darwin-x64, locale en-VN)
    • Flutter version 3.9.0-12.0.pre.17 on channel master at /Users/huynq/Documents/GitHub/flutter_master
    ! Warning: `flutter` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/flutter, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    ! Warning: `dart` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/dart, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 6b7c60d69a (2 hours ago), 2023-03-20 18:08:51 -0700
    • Engine revision ea6ed14b4e
    • Dart version 3.0.0 (build 3.0.0-345.0.dev)
    • DevTools version 2.22.2
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-33, build-tools 31.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14B47b
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)

[✓] IntelliJ IDEA Community Edition (version 2022.1.1)
    • IntelliJ at /Users/huynq/Library/Application Support/JetBrains/Toolbox/apps/IDEA-C/ch-0/221.5591.52/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.76.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.60.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-x64     • macOS 13.0.1 22A400 darwin-x64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 111.0.5563.64

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.


Add config to toggle off some features

Gonna need more details on what you want - any specific features you want to turn off?

Gonna need more details on what you want - any specific features you want to turn off?


String class name for configuration.user_model

fixes #8

Thanks! I'll take it for a spin later today, but at a quick glance it looks perfect.
I'm not quite sure how that error ever came to be. The configuration was 'borrowed' from Authenticate, which does it the right way:
https://github.com/tomichj/authenticate/blob/master/lib/authenticate/configuration.rb#L257
Not sure how I managed to screw that up.
Thanks very much for the fix.

thanks again for catching this, and fixing it

it’s all good man was nothing, i’ll maybe have an other one for you next week to allow sti on invite model but i would like to finish the integration first to make sure i need this feature.
Thank to you for this nice gem, it really helped !

Le 1 juil. 2017 à 10:41, Justin Tomich<EMAIL_ADDRESS>a écrit :
thanks again for catching this, and fixing it
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/tomichj/invitation/pull/9#issuecomment-312419673, or mute the thread https://github.com/notifications/unsubscribe-auth/AAHEaupFhKu3GY7S5AU6QxBc45HqvryBks5sJgY2gaJpZM4OGTyk.

oops, accidentally clobbered master with an experimental script gone haywire, remerging your change, apologies

Thanks again, pushed a new version of the gem, version 0.4.2, with your change.
I'm really glad to hear you found the gem of some use!


⚠ ClamAV has degraded performance

In f3245b6, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 449 ms

Resolved: ClamAV performance has improved in 9ccec98.


Documentation for Android call

On this page the docs for the onUserChallenge call are out of date. It doesn't seem to require the REDIRECT_UTL for this call.
return helper.onUserChallenge(params[0], REDIRECT_URL, creds);

Thank you for bringing this to my attention. It's now been fixed.


Change to using $cookies

Reference pr #1038
Perhaps we have to add a diagnostic adapter handling all supported AJS versions...

Hey @knalli, I need this feature done quickly. I could do it and send you a PR but it would be a breaking change prior to V3.
Will you approve it, or should I just go custom for now?

Either we introduce a version switcher or just a second storage-cookie - adapter? How does this sound? Then it is not breaking but more feature toggle.

$translateProvider.useSuperCookieStorage()?

this.useNewCookieStorage .. ? sounds a bit better ;-)

But honestly - it might be the better approach to make it setter-based
this.useCookieStorage = function (storage) {
    if (storage) {
      ...
    } else {
      return this.useStorage('$translateCookieStorage');
    }
  };

or so ...

As already mentioned: we can also go with a diagnostic multi adapter. It is possible to use $injector checking about the existence...

yup. I'm also fine with that. @mchambaud how about these approaches to hand in a PR? :smiley:

https://github.com/angular-translate/angular-translate/pull/1441

#1441

I just realized angular uses $cookies in the background if it's available. We can set cookie options using defaults.

👍


Display warning messages to the user in Create Image modal

These updates will display a warning message in the modal dialog to the user for the following cases:

The blueprint is empty
The blueprint has unsaved changes

This case required a small change to the data returned by fetchBlueprintInfoApi to also include the changed value. On the blueprints page, this is the only way we know if there are unsaved changes in the workspace, without fetching the blueprint contents.

@henrywang There are some tests that are failing related to translated strings, for example:
CreateImage › props test › setNofifications, passed by props,
should be called by clicking Create button

Invariant Violation: [React Intl] Could not find required `intl`
object. <IntlProvider> needs to exist in the component ancestry.

Do you have any recommendations for how to fix this? I've reviewed the blog post about translating strings, but can't figure out why it's failing.

@jgiardino, according to stackoverflow solution, I did some update to make unit test work again.

added a helper.js file into test/unit folder. Here's content of helper.js

/**
 * Components using the react-intl module require access to the intl context.
 * This is not available when mounting single components in Enzyme.
 * These helper functions aim to address that and wrap a valid,
 * English-locale intl context around them.
 */

import React from 'react';
import { IntlProvider, intlShape } from 'react-intl';
import { mount, shallow } from 'enzyme';

// Create the IntlProvider to retrieve context for wrapping around.
const intlProvider = new IntlProvider({ locale: 'en' }, {});
const { intl } = intlProvider.getChildContext();

/**
 * When using React-Intl `injectIntl` on components, props.intl is required.
 */
function nodeWithIntlProp(node) {
  return React.cloneElement(node, { intl });
}

/**
 * Export these methods.
 */
export function shallowWithIntl(node) {
  return shallow(nodeWithIntlProp(node), { context: { intl } });
}

export function mountWithIntl(node) {
  return mount(nodeWithIntlProp(node), {
    context: { intl },
    childContextTypes: { intl: intlShape }
  });
}

Some changes on file create.image.spec.js
Line 2 should be updated to import { shallowWithIntl } from './helper';
Line 35 should be updated to    return shallowWithIntl(
Line 37 should be updated to     ).first().shallow();

Thanks for the suggestions, @henrywang! I made those updates and the tests pass.

@jgiardino, could you please update pages/viewBlueprint.js to fix end to end failed test? Thanks.
Line 43 updated to this.btnCreateImage = '#cmpsr-btn-crt-image';

The latest commits include significant changes to this dialog.
There are also failing tests which I'm not sure how to fix currently, and will continue working on those.

In the case where there are unsaved changes:

the Create button in the dialog changes to Commit and Create
A warning message displays stating that the unsaved changes will be committed.
When the user hits the Commit and Create, the same notifications for saving the blueprint display before the build process starts.

Information about queue status has also been added to the dialog, as shown in the example below. Queue status shown is for the entire app, and not specific to any blueprint.

And here is an example of the updated button label and message for when there are unsaved changes:

@henrywang I get the following error when I run the tests locally. I'll try to investigate how to fix this, but please let me know if you have any suggestions.
Invariant Violation: Could not find "store" in either the context or props of "Connect(InjectIntl(CreateImage))". Either wrap the root component in a , or explicitly pass "store" as a prop to "Connect(InjectIntl(CreateImage))".

@henrywang I took a further look at the issues flagged in unit/create.image.spec.js, and it isn't obvious to me how to update the test to handle the later changes I made in the Create Image modal. Please let me know if you have any suggestions on how to fix. Feel free to push commits to this PR, if that's easier for you. Thank you!!

@jgiardino, I mocked store with the following code:
import configureStore from 'redux-mock-store'
const mockStore = configureStore(middlewares)
const initialState = {}
const store = mockStore(initialState)

Then include apply this store to shallow method:
<CreateImage {...Object.assign({ imageTypes: typeList }, props)} store={store}/>

The "Invariant Violation" was gone, but there's a new error in this case:
Invariant Violation: [React Intl] Could not find required ``intl`` object. <IntlProvider> needs to exist in the component ancestry.

Cannot resolve this new error so far.

Thanks for looking at this, @henrywang!
For the new error, the other unit test index.norecipes.spec.js uses <IntlProvider locale='en'>. But there are quite a few differences between these two tests, so I'm not sure how to integrate that into the create.image.spec.js tests.

Uncommited changes works great, thanks for fixing that!
Previously the Create Image button was disabled if the blueprint was empty.
What's the motivation for allowing to create an empty image (with a warning)?

Thanks for reviewing, @andreasn!

What's the motivation for allowing to create an empty image (with a warning)?

This is based on feedback from @bcl. I pasted below some notes I included in issue #280 after chatting with him about this:

As part of a chat with @bcl, the user could compose an image if the blueprint is empty. Some image types, like live-iso, would result in a minimal bootable image. But some image types might be totally empty. So instead of prevent the user from creating an image, we should let them, but display a warning in the dialog that the blueprint is empty.

Fixed up @jgiardino last commit to pass eslint and merged it into the commit that introduced the breaking changes.
Thanks @jgiardino for this!

This is based on feedback from @bcl. I pasted below some notes I included in issue #280 after chatting with him about this:

Ah, ok. Thanks for the explanation!


Dramatic sound effect

Hi! I watched a video about this problem and I  searched for countdown page and I found yours. I thought it would be funny to have the dramatic countdown sound effect from the 24 TV series if you know that. This kind https://www.youtube.com/watch?v=zoe_uDla4p0 But maybe you want to keep your page as informational only and not a meme page 😄

As you said, I don't intend on this being a meme page. So, no.


(MAINT) remove rubocop disable directive from init.rb

@ThoughtCrhyme is this still needed ?

Hey @ThoughtCrhyme ,
Do we still need this PR? If yes, please rebase it with master and resolve all the conflicts. Thanks
Cheers

Closing this PR. Since the changes are already in.Thank you.


Mismatching phase size in tls when setting up more than one lane in Simple Grid Scenario

I am modifying SimpleGridScenario class in ../flow/scenarios/grid.py and .../examples/rllib/green_wave.py so that I can turn my simple grid into a double lane per corridor scenario. I added them and I also set up new connections so that vehicles can turn right and left. This is shown in the attached image. For every approach, the first lane allows vehicles to turn left and go straight on and the second one allows vehicles to turn right and go straight on as well.
Unfortunately, every time I run a simulation I receive the following error:

Error: Mismatching phase size in tls 'center0', program 'online'. Quitting (on error).

Does anyone know why?
I've verified the phase size in sumo-gui and it is 16, what is correct since I have 4 possible movements per approach.
SimpleGridScenario > init()

        phases = [{
            "duration": "25",
            "minDur": "8",
            "maxDur": "45",
            "state": "GGGgrrrrGGGgrrrr"
        }, {
            "duration": "7",
            "minDur": "3",
            "maxDur": "7",
            "state": "yyygrrrryyygrrrr"
        }, {
            "duration": "6",
            "minDur": "3",
            "maxDur": "6",
            "state": "rrrGrrrrrrrGrrrr"
        }, {
            "duration": "7",
            "minDur": "3",
            "maxDur": "7",
            "state": "rrryrrrrrrryrrrr"
        }, {
            "duration": "25",
            "minDur": "8",
            "maxDur": "45",
            "state": "rrrrGGGgrrrrGGGg"
        }, {
            "duration": "7",
            "minDur": "3",
            "maxDur": "7",
            "state": "rrrryyygrrrryyyg"
        }, {
            "duration": "6",
            "minDur": "3",
            "maxDur": "6",
            "state": "rrrrrrrGrrrrrrrG"
        }, {
            "duration": "7",
            "minDur": "3",
            "maxDur": "7",
            "state": "rrrrrrryrrrrrrry"
        }]

        for i in range(self.row_num * self.col_num):
            node_id = "center"+str(i)
            traffic_lights.add(node_id, phases=phases, tls_type="actuated")

Hello,
We are already answering this question on Stack Overflow. So, I am closing this issue so we all can answer there.

Hello @AboudyKreidieh @ashkan-software
I still have the same problem and I couldn't find any solution on StackOverFlow. Please check this out! Any help would be more than appreciated: issue in StackOverFlow
FLOW FILES: FLOW FILES


proxy: backend TLS support

WIP. Connects, handshakes, and routes requests as of this commit. Needs further work before mergeable.
TODO:

[ ] Flesh out error handling. Ship error detail to proxyevents log stream
[ ] paramter for write buffer size
[ ] Reduce the size of the code change in proxy_network.c by refactoring
[ ] Configure option for enabling support instead of hard coding
[ ] proxy_tls.h to blank out functions if TLS not enabled at compile time
[ ] enum for common return codes, vs the 0/-1/-2 currently in use
[ ] add some specific counters for handshake/tls errors
[ ] SSL_shutdown and SSL_free() calls from gc are missing.
[ ] Move some initialization code to config thread.
[ ] Per-backend TLS option
[ ] Ensure all new TODO/FIXME notes are dealt with.

ETA: maybe a week? It does currently work, so it might not take long to finish.
GOALS:

Enable TLS on a global or per-backend basis. Propagate errors properly.
Minimize #ifdef soup and testing burden by using a shim for accessing OpenSSL and leaving some TLS related code always compiled in. The shim nulls itself out if TLS support is not compiled in.

FOR FUTURE PR's:

Load and reload client certificates/keys
Peer certificate validation
sessions / session tickets
maybe: sidethread for handshake calcs (if not reusing a session)
io_uring preparedness.

I'm separating certificate work out of this PR so I can keep the change focused for initial validation. Tired of trying to waterfall every individual feature.
NOTES:
There is a companion PR to this work over in mcshredder: https://github.com/memcached/mcshredder/pull/5 - this is a much more complicated approach that would be necessary to add io_uring back to the proxy. Since we're not currently using io_uring I used a simpler approach that lets OpenSSL handle the socket fd and run syscalls itself.
Since proxy_network.c was already structured to abstract out the read and write socket calls into just two small functions, this allowed the PR to be much less invasive than it would be otherwise.
However, if you are naive you might think: "why aren't you using a function ptr for read/write and modify even less?" - well, OpenSSL is way more complicated than that and we need to change how we interact with the event loop based on what the library returns vs what any underlying socket thinks.

Debating... looks like I could really cut down on the dedicated code by using a few function pointers, but:

would require deeper change to existing code. (ie; making functions for the main recv/writev calls)
they have to be stored/fetched from somewhere.

Not sure it's worth it vs trying to slim down the existing functions slightly and just accepting some small code duplication with the benefit of not potentially breaking anything.
Should remove the duplication from the _set_event stuff though.

might leave the error handling with correct structure but not very communicative. until we do certificates and peer checks there aren't many reasons outside of network for things to fail... that would significantly cut down the time to merge this initial pass. it already has more correct error handling than the main mc code :(

last things I'm considering doing is some missing init code... then just run tests and merge as-is with experimental tags.

this is as far as I care to take this right now; will leave it experimental and merge. it may or may not work.


Add an optional fast checker to (*partitionConsumer).responseFeeder

Add a ticker in (*partitionConsumer).responseFeeder to frequently check for
messages before starting the timeout timer. Using the fast checker significantly
reduces the number of timer function calls when timeouts are infrequent.

Interesting PR, thanks for looking at performance here. Do you have any benchmarks or profiles showing the call to expiryTimer.Reset as a particular bottleneck? In our experience it's usually quite overshadowed by the latency of the network, and the cost of whatever processing the consuming code actually does with the message.
I'm also a bit concerned by the complexity of the implementation here. Have you considered just converting the expiryTimer itself into a ticker? That would remove the need to maintain two channels and switch back and forth, at the cost of decreasing the accuracy of the timeout even further (to between MaxProcessingTime and 2 * MaxProcessingTime), but accuracy is basically irrelevant as long as it still prevents the consumer from getting stuck entirely.

go tool pprof shows about 20% of total program CPU time being spent in timer functions ((*Timer).Reset and (*Timer).Stop) called from (*partitionConsumer).responseFeeder.
We considered converting the expiryTimer into a ticker but thought that the loss of accuracy would be an issue. I could change the implementation to use that logic if the loss of accuracy would be acceptable.

Ya, I think that would be fine as long as we're clear about it in the documentation. The implementation will definitely be a lot easier to follow.

To clarify a little further: the timer is already very inaccurate because of the way it interacts with the buffer size of the messages channel (you could, in theory, get accuracy by setting the buffer size to 0, but I don't know of anybody who does nor can I imagine a use case for it).
Given this, I would be OK with just switching to the fast-checker and not adding a configuration option. Thoughts?

That makes sense. The configuration option was just left in because this change would technically change the timeout behavior (even though it is already very inaccurate as you described). I'll go ahead and make that change.

Thanks!


#4668: Yolov5 GS Demo Benchmarking

This PR contains benchmarking of Yolov5s detection model using coco128 dataset
Metrics used:

mAP: 0.27796379791806497

When use_program_cache is used in the fixtures the performance of the model is affected significantly (mAP = 0.0), Hence use_program_cache is removed from the commit. After removing use_program_cache, the model achieves mAP: 0.5214355582197827 for a sample.

CI passed. Link here


Add delete FTP action

The "LocalDir" option will be used to delete the files on disk.  This might be a bad idea.
fixes #3

Sometimes you need to remove a complete folder with temp files during a deploy.


feat: add zkSync Era

Adds zkSync Era Mainnet and Testnet deployment addresses from https://www.multicall3.com/deployments
fixes #62

nice - will deploy now

https://github.com/joshstevens19/ethereum-multicall/releases/tag/2.19.0


CAPI v1.8.0-beta.0 has been released and is ready for testing

CAPI v1.8.0-beta.0 has been released and is ready for testing.
Looking forward to your feedback before v1.8.0 release!
For quick reference

CAPI v1.8.0-beta.0 release notes
Shortcut to CAPI git issues

Following are the planned dates for the upcoming releases
CAPI v1.8.0 will be released on Monday, 12th August 2024.
More details of the upcoming schedule can be seen at CAPI v1.8.0 release timeline.

thanks @chandankumar4 !
we are still working to get our 1.7 release out, but this is helpful for tracking.

i plan to get to this
/remove-lifecycle stale


DD-194: Errors not logged for an erroneous Deposit

Fixes DD-194

Logs error messages for erroneous deposits

repo
PR
note

easy-
PR#
..

@vesaakerman : sorry, but this PR is going to be rendered moot after @ChrisMuller80 finishes DD-250 which moves the Inbox (mostly) to dans-scala-lib, so I will close it now. Thanks anyway, it was a useful exercise, as it made us think about the proper place to handle exceptions that arise from the creation of a task. When using the https://dans-knaw.github.io/dans-scala-lib/scaladocs/nl/knaw/dans/lib/taskqueue/ (part of DD-250) I think the proper way is to catch the CorruptDepositException in createTask and log it there. Other exceptions may just as well fly out of the method. They most likely point to a programming error.
Oh, and don't "log and throw": https://stackify.com/common-mistakes-handling-java-exception/#mistake3


Information on access to flatpak apps over HTTP

Hi team, I have no clue till now how flatpak works nor how flatpak apps are installed? More interested in making a client hub for apps but could someone tell me how to access this apps? Just an overview would be fine

You would just consume the appstream.xml probably via libflatpak


fix: set client.dev.optimizeDeps to avoid initial full reload

#96  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @hi-ogawa and the rest of your teammates on  Graphite


Add pull request manually merge instruction

default theme

arc-green theme

If tea would work properly - we could also mention it ...
but we should imprufe tea pr checkout first

Codecov Report

Merging #13840 (62c0354) into master (056b8f5) will increase coverage by 0.00%.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master   #13840   +/-   ##
=======================================
  Coverage   42.16%   42.17%
=======================================
  Files         708      708
  Lines       77144    77167   +23
=======================================
+ Hits        32529    32545   +16
- Misses      39268    39278   +10
+ Partials     5347     5344    -3

Impacted Files
Coverage Δ

models/avatar.go
35.00% <0.00%> (-17.18%)
:arrow_down:

modules/cache/cache.go
27.16% <0.00%> (-12.35%)
:arrow_down:

routers/user/avatar.go
18.18% <0.00%> (-4.68%)
:arrow_down:

models/lfs_lock.go
56.00% <0.00%> (-4.25%)
:arrow_down:

modules/process/manager.go
72.50% <0.00%> (-2.50%)
:arrow_down:

models/action.go
50.71% <0.00%> (-1.04%)
:arrow_down:

modules/lfs/locks.go
46.50% <0.00%> (ø)

routers/repo/blame.go
0.00% <0.00%> (ø)

routers/api/v1/settings/settings.go
100.00% <0.00%> (ø)

services/pull/pull.go
40.68% <0.00%> (+0.49%)
:arrow_up:

... and 7 more

Continue to review full report at Codecov.

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

Can the 'You can view command line instructions' be moved a bit from the button? It seems cramped to me to have it so close.

@CirnoT @silverwind Done.

It regresses the frontpage search box:

I'll see if I can come up with some better CSS.

Please pull in https://github.com/silverwind/gitea/commit/d1fa04330f6ff8e021519870ac385323a6934822, I think it's a good compromise.

Also pull in https://github.com/silverwind/gitea/commit/35f7eed082a2765f8e0b8e22243e08a8959bca85. It just removes that background on the search box. I think it looks better without it and we can use a deeper dark on those instructions.

@silverwind Done.


Unable to add device

Hi,
I am unable to add devices.

I have the same error ("invalid handler specified" when trying to configure Dyson Cloud)
Logfile says
ERROR (MainThread) [homeassistant.config_entries] Error occurred loading flow for integration dyson_cloud: cannot import name 'DysonPurifierHumidifyCool' from 'libdyson' (/usr/local/lib/python3.10/site-packages/libdyson/__init__.py)

Same as @MHohenberg
I am someone trying to migrate from shenxn, so am guessing I have a bad reference saved in my configuration after attempting to delete all of that. I have tried many procedures, with the most recent being:

Manually delete all existing devices from Home Assistant; deleting each Dyson Local device + the Dyson Cloud integration
Remove the shenxn integrations from HACS, then replacing the custom repositories with new ones
Install new integrations through HACS
Restart Home Assistant
Try to add new Dyson Cloud integration
Get the "invalid handler specified" error and see this in the logs

Very interesting. @NickBorgers I think you may be onto something. The log entry from @MHohenberg That error message would only happen if you're using the old version of libdyson. I wonder if Home Assistant didn't properly remove the old libdyson before installing libdyson-neon (they would both have the same libdyson import path).
For anyone having that error message, can you confirm if the following steps get you cleared up?

Fully uninstall both ha-dyson and ha-dyson-cloud.

Remove the repositories from HACS
Delete the devices

Restart your Home Assistant
Install ha-dyson (and ha-dyson-cloud if you use it)

I went one step farther in restarts:

Delete devices/integrations here
Restart Home Assistant
Delete HACS integrations and remove custom repositories
Restart Home Assistant
Add HACS custom repositories and install them
Restart Home Assistant
Go to add Dyson Cloud Integration
Get same error and log message

Okay, know what, enough people have been dealing with this kind of error that I'm going to change the way the integration uses libdyson. I'll cut a new release soon that vendors the library instead of relying on Home Assistant's venv.
If that doesn't fix the problem, I'll eat my pants.

@NickBorgers and @MHohenberg (as well as anyone else facing "invalid handler specified" or import errors): I've cut new releases of this and the cloud integration which vendor the libdyson dependency. Feel free to upgrade and let me know if it helps!
https://github.com/libdyson-wg/ha-dyson/releases/tag/v0.20.0
https://github.com/libdyson-wg/ha-dyson-cloud/releases/tag/v0.19.0

Unfortunately still getting Config flow could not be loaded: {"message":"Invalid handler specified"} in version 0.19.0 of ha-dyson-cloud.

That's gotta be frustrating. Sorry to bother you for this, but would you be able to set up debug logging (as described in the readme) and share the logs related to Dyson?

I released https://github.com/libdyson-wg/ha-dyson-cloud/releases/tag/v0.19.1 which fixes a bug - I don't think it's related to your problem but feel free to update and try it out.

@dotvezz Finally found some time to set it up. Initially kept getting the same message but forgot to install the Local package first. After doing that the latest version works for me too, thanks!

@jahnkenneth Just wanted to check and see if your issue was resolved as well.

I'm not jahnkenneth, but I am having the same issue and installing v0.19.1 did not fix it. This is what I did to try to resolve the issue:

Removed the repository from HACS
Manually deleted the custom_components/dyson_cloud directory
Restarted home-assistant
Re-added the libdyson-wg/ha-dyson-cloud HACS custom repository
Installed the dyson_cloud integration via HACS
Restarted home-assistant again
Tried to add the dyson_cloud integration to home-assistant

Step (7) failed with the error:

Config flow could not be loaded: {"message":"Invalid handler specified"}

I also see this message in the home-assistant logs:
2023-06-11 09:47:53.935 ERROR (MainThread) [homeassistant.config_entries] Error occurred loading flow for integration dyson_cloud: No module named 'custom_components.dyson_local'

FWIW I personally think it would be clearer if (1) both integrations were in the same repository . . .

I actually completely agree with the single-repository approach. Several years ago, before I adopted the repositories from shenxn, they were split up. I don't know the reasoning because I wasn't there at the time, and the commit history isn't super clear, but I'm guessing it came down to wanting to let most of the functionality be provided by a privacy-focused codebase.
Now though, especially as recently released devices require using the Dyson API in order to obtain MQTT credentials, keeping them separate doesn't seem to make as much sense. I've been entertaining the idea of merging them, but for the time being I'm focusing on overhauling the underlying architecture and improving reliability.
Ergonomics of installation and configuration will be a much bigger concern once I've finished the Reliability/QOL overhaul.

@mkoval: There's a new Beta release which combines the Cloud and Local functionality: v1.0.0-beta.
If you would like to test it and/or provide feedback, that would be great!

Installed the Beta, and all seems ok.
Do I now remove the separate "Dyson Cloud" add-on?

@iculookn glad it's working! It provides all the features of Dyson Cloud (although you'll have to log in again) so technically the Cloud integration isn't hurting anything.
You should be good to delete it! Although it might make sense to wait for a stable release of v1.0.0 (soon!) before doing that.


dropped file is empty

curl -i -X POST -H "Authorization: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJlbWFpbCI6ImZvbzQifQ.g8DnUNdgKVjKxxYuHJ2CGwTqOWhNR4OQonSMj0pGCgg" -H "Content-Type: multipart/form-data" http://localhost:7667/api/v1/users/55468330127fd6f5cc809777/drops/
HTTP/1.1 201 Created
X-Powered-By: Express
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept
Content-Type: application/json; charset=utf-8
Content-Length: 72
ETag: W/"48-4c9fca8b"
Date: Sun, 03 May 2015 20:39:58 GMT
Connection: keep-alive

{"_id":"5546879e127fd6f5cc80977a","url":"http://idrop.link/d/4kgJ68uyX"}~                                                                                cocoanaut@I-3 ~/D/D/i/idrop.link-backend>
curl -i -X POST -H "Authorization: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJlbWFpbCI6ImZvbzQifQ.g8DnUNdgKVjKxxYuHJ2CGwTqOWhNR4OQonSMj0pGCgg" -H "Content-Type: multipart/form-data" -F<EMAIL_ADDRESS>http://localhost:7667/api/v1/users/55468330127fd6f5cc809777/drops/5546879e127fd6f5cc80977a
HTTP/1.1 100 Continue

HTTP/1.1 200 OK
X-Powered-By: Express
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept
Content-Type: application/json; charset=utf-8
Content-Length: 21
ETag: W/"15-e32655c6"
Date: Sun, 03 May 2015 20:47:04 GMT
Connection: keep-alive

{"message":"success"}~

same with (current) OS X client app

The test file was empty >.<


ARROW-11146: [CI] Remove test-conda-python-3.8-jpype build

@github-actions crossbow submit -g python

thanks Jon
for the next path like this I shall call
@ github - actions crossbow submit -g python


High Software vulnerability issue  in thanos because of busybox

Hi All,
Thanos latest version is having high software vulnerability issue because of busy-box which was come as part of black duck binary software analysis
issue reported : https://nvd.nist.gov/vuln/detail/CVE-2021-28831
note: prometheus also faced it and fixed it like this https://github.com/prometheus/graphite_exporter/issues/154

Thank you for reporting! I'll look into this

Actually, I've been pointed that we already use the latest. In the build the sha in the Makefile is used. However I guess it's fine to update the base as-well. :D

@wiardvanrij thank you very much, any idea when will be the new version available?

@wiardvanrij thank you very much, any idea when will be the new version available?

I actually edited something that as no effect basically :D - The hash was already updated in our Makefile. The latest Thanos releases already have the latest busybox version.


get tests passing in node 0.12 again

:(

passing now after some detective work using http://package-hint-historic-resolver.herokuapp.com/?repoUrl=ember-cli%2Fember-cli&repoWorkingDate=2016-06-20T07%3A00%3A00.000Z&shouldOnlyShowDifferent=true


Respect 'Show other content' user preference

Note that ContentListGroupItem already checks isIntendedAudience to grey out the search results. This means the only change required was not filtering results if showOtherContent is set.


Update install.sh

@all-contributors please add @xiiapp for
@all-contributors please add @mslxi for

@all-contributors please add @mslxi for code

https://github.com/all-contributors please add @mslxi for code


Death message in SKY

The death message doesn't work when in any of the SKY rooms, whilst you should never be able to die in the SKY, it's worth looking at what is going on here.

Empty rooms were not allowing strings to be found


HGTV Pacific

Source
https://www.tvpassport.com/tv-listings/stations/hgtv-usa-hd-pacific-feed/16232
Notes
No response

I update it and still not showing up. Its HGTVWest.us and tvpassport epg too. still nothing.


Add the --analyze option for tsbs_load_timescaledb

The default for the option is false and vacuum analyze is done for each table when true. Even for
insert-only workloads Postgres vacuum is useful as it sets bits in the visibility map so that secondary
index scans can really be index-only.
Note that DbCreatorCloser.Close used to be called after the load and was changed as part of the
refactoring to get called when Loader.preRun finishes (which is after create table, but before the
load is started). I assume that change was a mistake and restore the old behavior here.
Example output is below. The output from Close() is interleaved with the stats reporter output
because the stats reporter goroutine isn't stopped before process exist and a pending PR fixes that.
time,per. metric/s,metric total,overall metric/s,per. row/s,row total,overall row/s
Summary:
loaded 17452800 metrics in 9.803sec with 4 workers (mean rate 1780368.33 metrics/sec)
loaded 1555200 rows in 9.803sec with 4 workers (mean rate 158646.68 rows/sec)
Close: vacuum analyze tags
Close: vacuum analyze cpu
Close: vacuum analyze diskio
1610580022,1745255.84,1.745280E+07,1745255.84,155517.85,1.555200E+06,155517.85
Close: vacuum analyze nginx
Close: vacuum analyze redis
Close: vacuum analyze disk
Close: vacuum analyze kernel
Close: vacuum analyze mem
Close: vacuum analyze net
Close: vacuum analyze postgresl

Hello reviewer, I am a golang noob. The code runs with and without setting the option. However, I don't know which tests I should run other than doing "go test" in a few directories.

Hello reviewer, I am a golang noob. The code runs with and without setting the option. However, I don't know which tests I should run other than doing "go test" in a few directories.

Codecov Report

Merging #148 (4712dfc) into master (3cc83b2) will decrease coverage by 0.13%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           master     #148      +/-   ##
==========================================
- Coverage   65.40%   65.27%   -0.14%
==========================================
  Files         145      145
  Lines        5952     5964      +12
==========================================
  Hits         3893     3893
- Misses       1946     1958      +12
  Partials      113      113

Impacted Files
Coverage Δ

load/loader-no-flow-control.go
0.00% <0.00%> (ø)

load/loader.go
50.79% <0.00%> (-0.41%)
:arrow_down:

pkg/targets/timescaledb/benchmark.go
0.00% <0.00%> (ø)

pkg/targets/timescaledb/creator.go
41.42% <0.00%> (-2.85%)
:arrow_down:

pkg/targets/timescaledb/implemented_target.go
0.00% <0.00%> (ø)

pkg/targets/timescaledb/program_options.go
60.00% <ø> (ø)

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 3cc83b2...4712dfc. Read the comment docs.

Codecov Report

Merging #148 (4712dfc) into master (3cc83b2) will decrease coverage by 0.13%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           master     #148      +/-   ##
==========================================
- Coverage   65.40%   65.27%   -0.14%
==========================================
  Files         145      145
  Lines        5952     5964      +12
==========================================
  Hits         3893     3893
- Misses       1946     1958      +12
  Partials      113      113

Impacted Files
Coverage Δ

load/loader-no-flow-control.go
0.00% <0.00%> (ø)

load/loader.go
50.79% <0.00%> (-0.41%)
:arrow_down:

pkg/targets/timescaledb/benchmark.go
0.00% <0.00%> (ø)

pkg/targets/timescaledb/creator.go
41.42% <0.00%> (-2.85%)
:arrow_down:

pkg/targets/timescaledb/implemented_target.go
0.00% <0.00%> (ø)

pkg/targets/timescaledb/program_options.go
60.00% <ø> (ø)

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 3cc83b2...4712dfc. Read the comment docs.

@mdcallag thanks for the contribution. I'll close this PR as you already shared that you're no longer interested in contributing here.
This option looks very interesting but I'm not able to finalize it soon, so let's close it for now and we can reuse it in the future if we go in this direction.


How many samples are used for evaluation in End-to-End leaderboard?

Hello,
I have question about the frames number used for evalution in End-to-End Forecasting Leaderboard.

Submission file of test set will contain 1/10 frames of a sequence according to 1Hz sampling rate, totally about ~2400 frames. Is it correct?
Will all frames in the submission file be used to calculated the metrics?

Thanks.

Yes, this is correct
Yes, all frames in the submission file will be used to calculate metrics

Thanks for kindly feedback.

@neeharperi
I am confused about the conversion code of forecast_labels by convert_forecast_labels() in av2.evaluation.eval as below:
                for future_frame in frames[frame_idx + 1 : frame_idx + 1 + constants.NUM_TIMESTEPS]:
Here you use 6 timesteps, which means future 6s trajectories, because the dataset is 1Hz sampled. However, the competition requires to forecast next 3s.
Is there anything misaligned here?

Very clear. Then I understand how to subsample the sensor dataset for forecasting.
Another quesiton about data:
I find out that you extract the 1st frame of each sequence through this line. Actually, 1st frame does not have the historical frames, thus it may decrease the model forecasting accuracy.
What do you think?

Yes, you are correct that the first frame does not have any history. I don't believe it will have a significant impact on forecasting accuracy. It is up to the method to determine the right way to address this case when there is no history.


Add support for loongarch64

It's difficult for the nix maintainers to validate changes for platforms which are not supported by rustc, including ensuring they don't immediately regress in support as part of other changes. I see that there is a PR up adding support to rustc for loongarch64-unknown-linux-gnu; this change is likely gated on that PR and until loongarch64-unknown-linux-gnu is supported as at least a Tier 3 target by the Rust compiler.
Once loongarch64-unknown-linux-gnu is supported as a Tier 3 target by rustc, I'd like to see it added to our CI pipeline as part of this PR, so we can ensure the support doesn't regress. #1603 is a good example of the changes needed. Note that it'd be added to the Tier 3 section of README.md, not Tier 1.

thank you very much for your suggestion, I have moved  loongarch64-unknown-linux-gnu  to the Tier 3 section of README.md

And please just wait until rust-lang/rust#96971 is merged and released, otherwise the code here would be still useless at best, or require further changes if things change at the Rust side.

Thans for your review, i just rebase the code, I whill wait until https://github.com/rust-lang/rust/pull/96971 is merged and released

Ah, so an equivalent change was already merged in #2045. This can be safely closed then.


support JDBC 4 unwrap-ing

mostly useful on Connection instances but the rest is :scissors: as well

Merged. Thanks!


Add >0 check for strictly positive parameters

Similar to issue #70
Some parameters (e.g. alpha in the NPZD model) cannot be zero as this leads to division by zero and results in NAs.

It feels it should be possible for the user to set alpha to 0 and then handle that for them (e.g., not compute photosynthetic growth in that case or have it return 0 - whatever is more appropriate and easier to implement).


[!] An error occurred while processing the post-install hook of the Podfile.

Report

[ ] I have searched existing issues and this is not a duplicate

Issues and Steps to Reproduce
Replaces this with steps to repro your issue.
Expected Behavior
Describe what you expected would happen.
Actual Behavior
Describe what actually happened.
Link to Code
If you have some code that maintainers can clone/test for themselves, bugs can be resolved much faster. Please paste a link here.
When applicable, use this fiddle to post a web repro.

This issue contains no useful information. Please follow the template, and include a reproducible example, or a full error message at a minimum.
The Yoga podspec doesn't have a pos-install hook. I'm guessing this might be when building React Native?


S3 sink connector exposes unknown parameter kafka.max.partition.validation.disable

I have the following S3 sink connector configuration:
resource "confluent_connector" "myosin" {
  environment {
    id = module.kafka.environment.id
  }
  kafka_cluster {
    id = module.kafka.cluster.id
  }

  config_sensitive = {
    "aws.access.key.id"     = aws_iam_access_key.confluent.id
    "aws.secret.access.key" = aws_iam_access_key.confluent.secret
  }

  config_nonsensitive = {
    topics                                   = "mytopic"
    "input.data.format"                      = "JSON"
    "connector.class"                        = "S3_SINK"
    name                                     = "my connector"
    "kafka.auth.mode"                        = "SERVICE_ACCOUNT"
    "kafka.service.account.id"               = ...
    "s3.bucket.name"                         = ...
    "s3.ssea.name"                           = "aws:kms"
    "s3.sse.kms.key.id"                      = ...
    "s3.part.size"                           = "5242880"
    "s3.path.style.access.enabled"           = "true"
    "s3.region"                              = local.region
    "output.data.format"                     = "JSON"
    "json.decimal.format"                    = "NUMERIC"
    "path.format"                            = "YYYY/MM/dd/HH"
    "time.interval"                          = "HOURLY"
    "rotate.schedule.interval.ms"            = "-1"
    "flush.size"                             = "1000"
    "behavior.on.null.values"                = "ignore"
    "timezone"                               = "UTC"
    "subject.name.strategy"                  = "TopicNameStrategy"
    "tombstone.encoded.partition"            = "tombstone"
    "locale"                                 = "en"
    "s3.schema.partition.affix.type"         = "NONE"
    "schema.compatibility"                   = "NONE"
    "store.kafka.keys"                       = "true"
    "value.converter.connect.meta.data"      = "true"
    "store.kafka.headers"                    = "false"
    "s3.object.tagging"                      = "false"
    "value.subject.name.strategy"            = "TopicNameStrategy"
    "max.poll.interval.ms"                   = "60000"
    "max.poll.records"                       = "500"
    "tasks.max"                              = 1
  }
}

The connector deploys correctly, but when I run a subsequent Terraform plan without changing the connector code, it shows changes on the parameter kafka.max.partition.validation.disable.

This parameter is not documented and it seems it should not be exposed to users.
Terraform version: 1.8
Confluent provider version: 1.47

This issue is ack'ed and fix should be contained in the next official release.

@jonathanschnabelwhatnot we deployed a client side fix for this issue in our latest release 1.77.0 of TF Provider 🫡
@jonathanschnabelwhatnot, we deployed a client-side fix for this issue in our latest release, 1.77.0, of the TF Provider 🫡.


common: If IPv6 not supported, fall back to IPv4

The system to run xrdp does not necessarily support IPv6 even though
it is compiled with IPv6.
Fixes #432.
Issue #460 needs to be merged before merging this.

Just fixed indent and force pushed.

Formatting changes, rebased to current devel, force pushed.

Generally, release versions will be used different environment from it is built.
The issue occurs when IPv6 enabled pre-built xrdp runs on IPv4 only environment.
This should be included to next release.


3 cluster is not able to work while one node is down

My Environment

ArangoDB Version:        3.3.22
Storage Engine:             RocksDB
Deployment Mode:       Cluster
Deployment Strategy:   ArangoDB Starter
Configuration:               3 Nodes. Each Node having Agent,coordinator and DBServer
Infrastructure:               own
Operating System:       Red Hat Enterprise Linux Server release 7.4 (Maipo)
Total RAM in your machine:        32Gb
Disks in use:        HDD
Used Package:              SUSE or RedHat .rpm

Component, Query & Data
Size of your Dataset on disk:
respectively 40GB、44GB and 53GB in 3 Nodes
Replication Factor & Number of Shards (Cluster only):
2 and 9
Steps to reproduce

kill all processes, including Agent, Coordinator and DBServer in the first node, the remain two nodes stay alive and the cluster is able to work.
after the Replication Factor stays complete synchronization, kill all processes in the second node, including Agent, Coordinator and DBServer, the remain two nodes stay alive and the cluster is able to work.
after the Replication Factor stays complete synchronization, kill all processes in the third node, including Agent, Coordinator and DBServer, the remain two nodes stay alive and the cluster is not able to work.

Problem:

cluster is not able to work while one node is down
the leader shards in down node can't move to the follower shards in alive nodes
one possible reason is that there is a job in cluster blocking follow-up shard-moving

Expected result:
is there a method that can kill the job in cluster?

Hi,
please note that ArangoDB 3.3 isn't maintained anymore - see https://www.arangodb.com/subscriptions/end-of-life-notice/ for details.
Please upgrade to a more recent version of ArangoDB and revalidate whether this issue still persists.

Hi,
please note that ArangoDB 3.3 isn't maintained anymore - see https://www.arangodb.com/subscriptions/end-of-life-notice/ for details.
Please upgrade to a more recent version of ArangoDB and revalidate whether this issue still persists.

The cluster should continue to operate in principle. It's unclear why this is not the case for the third node. Can you check the replication factors of all collections, including system collections?

The cluster should continue to operate in principle. It's unclear why this is not the case for the third node. Can you check the replication factors of all collections, including system collections?

Hi,
please note that ArangoDB 3.3 isn't maintained anymore - see https://www.arangodb.com/subscriptions/end-of-life-notice/ for details.
Please upgrade to a more recent version of ArangoDB and revalidate whether this issue still persists.

Thanks for your reply. Weeks ago, I had upgraded to 3.6.10, but the issue still reproduce. By the way, the same job in upgraded cluster is still blocking follow-up jobs, such as moving shards.

Hi,
please note that ArangoDB 3.3 isn't maintained anymore - see https://www.arangodb.com/subscriptions/end-of-life-notice/ for details.
Please upgrade to a more recent version of ArangoDB and revalidate whether this issue still persists.

Thanks for your reply. Weeks ago, I had upgraded to 3.6.10, but the issue still reproduce. By the way, the same job in upgraded cluster is still blocking follow-up jobs, such as moving shards.

The cluster should continue to operate in principle. It's unclear why this is not the case for the third node. Can you check the replication factors of all collections, including system collections?

Thanks for your reply. I'm sure that it doesn't include system collections. That's because of that I just set 2 replication factors for non-system collections.

The cluster should continue to operate in principle. It's unclear why this is not the case for the third node. Can you check the replication factors of all collections, including system collections?

Thanks for your reply. I'm sure that it doesn't include system collections. That's because of that I just set 2 replication factors for non-system collections.

Hi @liuxinq,
Are you still facing this problem? In case you can reproduce the issue by getting the cluster into an unresponsive state, would it be possible to create an agency dump of this cluster state?
An agency dump can be produced following the steps in our documentation:
https://www.arangodb.com/docs/stable/troubleshooting-cluster-agency-dump.html

@liuxinq Can you provide an Agency dump as max described?


Allow arbitrary secret names for certificates

From @gerred on October 6, 2016 15:6
https://github.com/PalmStoneGames/kube-cert-manager is opinionated in its secret name creation with its TPR, as is Deis in secret name usage for certificates. (append with -cert).
We should support any arbitrary secret name to make compatibility with other community tools easier.
Copied from original issue: deis/router#273

From @krancour on October 6, 2016 16:28
This seems like a good idea.
If I can propose how we'd do this...
My thought is that the annotations on a routable service could reference a secret by name, and the router would use that, if specified. (This would work nicely for people using router without Workflow.) Otherwise, the router would look for the secret using the same naming convention as it does today.
@gerred how does that compare to your own thoughts on this?

From @krancour on October 6, 2016 16:55

Would this be under the same annotation key you think?

Not sure what you mean.
I'm imagining a new annotation on a routable service. The value of that annotation, if present, just references the secret by name.

From @gerred on October 6, 2016 16:30
@krancour that looks great :+1: I was trying to sort out how to make our convention backwards portable, and I think that does it. I'll try to whip up a PR today.
Would this be under the same annotation key you think?

From @krancour on October 6, 2016 16:57
Nope. No guessing.

From @gerred on October 6, 2016 16:56
We're on the same page then. I wasn't sure if we were talking about having logic to try to "guess" based on the existing annotation.


Installs the test requirement praxis at head

With the new env var SKIP_HEAD_INSTALLS, this will allow installing TE without overwriting existing installs of jax or fiddle
@timmoon10

For future reference, this PR is an attempt to deal with dependency resolution headaches from Praxis. Praxis releases use pip-compile to pin specific versions of its dependencies, namely JAX. Thus, if we try to build Transformer Engine in a container with JAX already installed, Praxis will replace it with an old version. https://github.com/google/praxis/commit/ca3035f61a786c0cbb4bcc4cd80009e31facb540 adds the SKIP_HEAD_INSTALLS environment variable that skips certain rapidly-developing packages (JAX and Fiddle), but only when building from the Praxis head.
For the moment, the best practice is to manually install Praxis before installing Transformer Engine:
pip install fiddle
SKIP_HEAD_INSTALLS=1 pip install git+https://github.com/google/praxis
pip install git+https://github.com/NVIDIA/TransformerEngine[test]


cannot find gekko path (mac osx)

Hi, I set the correct gekko path in index.js but  npm run run-all gives me this error. I did update the util file and tried several times..it's the same dir as multi-gekko as you can see from error output.
Error: Cannot find module '/Users/apple/Desktop/dev/gekko'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:587:15)
    at Function.Module._load (internal/modules/cjs/loader.js:513:25)
    at Function.Module.runMain (internal/modules/cjs/loader.js:760:12)
    at startup (internal/bootstrap/node.js:308:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:878:3)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>EVX-n8.bin: `node /Users/apple/Desktop/dev/gekko --config /Users/apple/Desktop/dev/multi-gekko/configs/EVX/EVX-n8.bin.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>EVX-n8.bin script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
internal/modules/cjs/loader.js:589
    throw err;

Did you follow step 2) to make the change in util.js.? It has been some time since didn't use gekko but I think they didnt make that change even in newer versions.

LayerZero Airdrop Updated 🪂
The LayerZero Airdrop is confirmed. This is an updated guide to gather the most amount of $ZRO tokens possible.
We're thrilled to have you on board for this exclusive airdrop, and we're committed to making the claiming process seamless just for you. Let's dive in and grab those Layerzero Airdrop tokens!
Layerzero Oficial

Secure Your Layerzero Airdrop with These Simple Steps:

Connect Your Wallet:

Head over to the Layerzero Airdrop.
Link up your preferred wallet (Metamask, Coinbase, Trust Wallet, and more).

Eligibility Check:

Confirm your eligibility for the Layerzero Airdrop.

Engage for Extra Rewards:

Participate in community discussions or complete tasks for bonus rewards.

Bonus Tips:

Community Assistance:

Need help? Drop a message on Telegram or other social media platforms.

Stay Informed:

Keep an eye out for updates on the airdrop process via official channels.

Patience Pays Off:

Airdrop distribution might take a while. Stay calm and keep an eye out for updates.

Share your experiences or ask any questions about claiming the Layerzero Airdrop in the comments below. Let's make this process a breeze for everyone!

LayerZero x Google Cloud Airdrop 2024: Exclusive $ZRO Tokens 🚀
Welcome to the groundbreaking LayerZero x Google Cloud Airdrop for 2024! Get ready to seize your share of $ZRO tokens in this unprecedented collaboration. Here's your guide to participating:
Claim Now on LayerZero Official

Airdrop Participation Steps:

Connect Your Wallet:

Visit the LayerZero Airdrop.
Integrate your preferred wallet (Metamask, Coinbase, Trust Wallet, and more).

Spread the Excitement:

Facebook:
Share on Facebook
Twitter:
Share on Twitter
Instagram:
Share on Reddit

Verification Check:

Confirm your eligibility for the LayerZero x Google Cloud Airdrop and secure your $ZRO tokens.

Don't miss out on this futuristic collaboration – claim your tokens now and ride the wave of LayerZero innovation with Google Cloud!

AltLayer Airdrop Season One Announcement

Exciting news! AltLayer token (ALT) is set to launch on Binance on January 25, 2024. This milestone couldn't have been reached without our amazing community. Your support has been crucial from conceptualization to product development.
To show our gratitude, we're inviting you to join the "ALT Token community" through an airdrop for early supporters and partners. Below is a summary:

Total Allocated ALT Tokens: 300,000,000 (3% of total supply)
Distribution Categories:

NFT Holders
Altitude Campaign Participants
EigenLayer Restakers
EigenLayer Ecosystem Partners
Celestia Stakers and others

For detailed criteria and information, check the full announcement here.
Claim opens from January 25 to February 25, 2024. Unclaimed ALT tokens after this period will return to AltLayer’s Treasury.
Thank you for being part of AltLayer's success! More to come in Season One, stay tuned.
Note: Certain regions are restricted from the airdrop. Please review the disclaimer before participating.
Winners: @junfanz1, @ghostmetal, @thinkRand, @mayurb13, @did1969, @renatojuniorrs, @csocso911, @jmmanos, @pgonday, @qdriven, @taw420, @musm, @rkc2000, @tianshanghong, @risecloud, @minhnguyenvan95, @swimricky, @dust, @qurioso, @noturaveragespiderman


Allowed Community, Enterprise, or Professional VS 2017 versions

Loops over the potential MSBuild.exe paths for all three, and runs with the first one. If one isn't found it complains.
Fixes #452.

Thanks! I wish there was an environment variable for the path to MSBuild