Suspected presolver bug in fzn-cp-sat 9.10.4067

I have a model that other solvers solve fine, but CP-SAT says "Unsat after presolving", pointing at an element constraint.
I tried with --nopresolve, but that flag apparently had no effect.
I can't share the model yet, maybe later.
Is there any known issue with the presolver?  Is there a better way to switch it off? Is there a way to get more details, one of the "dump" options maybe?

cat you try with 9.11 ? or send me the mzn/dzn of fzn file ?

I'm working with @matsc-at-sics-se on this issue
I will try and see with 9.11 and maybe some other versions.
Also checking how we can share a mzn/dzn or fzn file.
Meanwhile, I've tried turning off pre-solve.
There's a parameter in the sat proto
https://github.com/google/or-tools/blob/ed94162b910fa58896db99191378d3b71a5313af/ortools/sat/sat_parameters.proto#L440C1-L441C57
but it doesn't seem to turn off presolving, at least not the way I expect.
So running
minizinc -v --solver or-tools --params cp_model_presolve:false,keep_all_feasible_solutions_in_presolve:false bug.fzn

still appears to pre-solve
%% File /tmp/mznfileb1F4l6.fzn parsed in 0 ms
%% Presolve model
%%   - rule 'array_var_int_element: simplify using affine mapping.' was applied 3 times
%%   - rule 'int_lin_eq: store affine mapping' was applied 3 times
%%   - done in 0 ms
%% Model mznfileb1F4l6
%%   - array_int_element: 3
%%   - array_var_int_element: 3
%%   - ortools_table_int: 3
%%   - Satisfaction problem
%% The number of search workers, is not specified. For better performances, please set the number of workers to 8, 16, or more depending on the number of cores of your computer.
%% Starting CP-SAT solver v9.10.4067
%% Parameters: log_search_progress: true search_branching: FIXED_SEARCH cp_model_presolve: false keep_all_feasible_solutions_in_presolve: false log_to_stdout: false max_domain_size_when_encoding_eq_neq_constraints: 32 num_workers: 1
%% Initial satisfaction model 'mznfileb1F4l6': (model_fingerprint: 0x1398b3a42bb8c4d9)
%% #Variables: 24
%%   - 3 in [1,2]
%%   - 3 in [1,3]
%%   - 3 in [344,480]
%%   - 15 constants in {0,7,9,10,79,102,106,167,344,480}
%% #kElement: 6
%% #kTable: 3
%% Starting presolve at 0.00s
%% INFEASIBLE: ''
%% UNSAT after expansion of table { vars: 9 vars: 12 vars: 13 values: 480 values: 9 values: 7 values: 480 values: 9 values: 10 values: 480 values: 106 values: 7 values: 480 values: 106 values: 10 }
%% Presolve summary:
%%   - 0 affine relations were detected.
%%   - rule 'element: expanded value element' was applied 2 times.
%%   - rule 'element: reduced index domain' was applied 1 time.
%%   - rule 'element: reduced target domain' was applied 1 time.
%%   - rule 'table: empty' was applied 1 time.
%%   - rule 'variables: add encoding constraint' was applied 2 times.
%% Problem closed by presolve.
%% CpSolverResponse summary:
%% status: INFEASIBLE
%% objective: NA
%% best_bound: NA
%% integers: 0
%% booleans: 0
%% conflicts: 0
%% branches: 0
%% propagations: 0
%% integer_propagations: 0
%% restarts: 0
%% lp_iterations: 0
%% walltime: 0.000473515
%% usertime: 0.000473561
%% deterministic_time: 0
%% gap_integral: 0
%%
=====UNSATISFIABLE=====

@lperron am I using the parameters correctly?

expansion must always happen, even if the presolve is off.
CP_SAT has no implementation of the table constraint (among others).
Laurent Perron | Operations Research | @.*** | (33) 1 42 68 53
00
Le mer. 2 oct. 2024 à 09:01, Erik Cervin Edin @.***> a
écrit :

I'm working with @matsc-at-sics-se https://github.com/matsc-at-sics-se
on this issue
I will try and see with 9.11 and maybe some other versions.
Also checking how we can share a mzn/dzn or fzn file.
Meanwhile, I've tried turning off pre-solve.
There's a parameter in the sat proto
https://github.com/google/or-tools/blob/ed94162b910fa58896db99191378d3b71a5313af/ortools/sat/sat_parameters.proto#L440C1-L441C57
but it doesn't seem to turn off presolving, at least not the way I expect.
So running
minizinc -v --solver or-tools --params cp_model_presolve:false,keep_all_feasible_solutions_in_presolve:false bug.fzn
still appears to pre-solve
%% File /tmp/mznfileb1F4l6.fzn parsed in 0 ms
%% Presolve model
%%   - rule 'array_var_int_element: simplify using affine mapping.' was applied 3 times
%%   - rule 'int_lin_eq: store affine mapping' was applied 3 times
%%   - done in 0 ms
%% Model mznfileb1F4l6
%%   - array_int_element: 3
%%   - array_var_int_element: 3
%%   - ortools_table_int: 3
%%   - Satisfaction problem
%% The number of search workers, is not specified. For better performances, please set the number of workers to 8, 16, or more depending on the number of cores of your computer.
%% Starting CP-SAT solver v9.10.4067
%% Parameters: log_search_progress: true search_branching: FIXED_SEARCH cp_model_presolve: false keep_all_feasible_solutions_in_presolve: false log_to_stdout: false max_domain_size_when_encoding_eq_neq_constraints: 32 num_workers: 1
%% Initial satisfaction model 'mznfileb1F4l6': (model_fingerprint: 0x1398b3a42bb8c4d9)
%% #Variables: 24
%%   - 3 in [1,2]
%%   - 3 in [1,3]
%%   - 3 in [344,480]
%%   - 15 constants in {0,7,9,10,79,102,106,167,344,480}
%% #kElement: 6
%% #kTable: 3
%% Starting presolve at 0.00s
%% INFEASIBLE: ''
%% UNSAT after expansion of table { vars: 9 vars: 12 vars: 13 values: 480 values: 9 values: 7 values: 480 values: 9 values: 10 values: 480 values: 106 values: 7 values: 480 values: 106 values: 10 }
%% Presolve summary:
%%   - 0 affine relations were detected.
%%   - rule 'element: expanded value element' was applied 2 times.
%%   - rule 'element: reduced index domain' was applied 1 time.
%%   - rule 'element: reduced target domain' was applied 1 time.
%%   - rule 'table: empty' was applied 1 time.
%%   - rule 'variables: add encoding constraint' was applied 2 times.
%% Problem closed by presolve.
%% CpSolverResponse summary:
%% status: INFEASIBLE
%% objective: NA
%% best_bound: NA
%% integers: 0
%% booleans: 0
%% conflicts: 0
%% branches: 0
%% propagations: 0
%% integer_propagations: 0
%% restarts: 0
%% lp_iterations: 0
%% walltime: 0.000473515
%% usertime: 0.000473561
%% deterministic_time: 0
%% gap_integral: 0
%%
=====UNSATISFIABLE=====
@lperron https://github.com/lperron am I using the parameters correctly?
—
Reply to this email directly, view it on GitHub
https://github.com/google/or-tools/issues/4392#issuecomment-2387760808,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACUPL3LOYENCVXY344GIP5TZZOK5XAVCNFSM6AAAAABPF62YICVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGOBXG43DAOBQHA
.
You are receiving this because you were mentioned.Message ID:
@.***>

can you send me bug.fzn ?
Laurent Perron | Operations Research | @.*** | (33) 1 42 68 53
00
Le mer. 2 oct. 2024 à 10:24, Laurent Perron @.***> a écrit :

expansion must always happen, even if the presolve is off.
CP_SAT has no implementation of the table constraint (among others).
Laurent Perron | Operations Research | @.*** | (33) 1 42 68
53 00
Le mer. 2 oct. 2024 à 09:01, Erik Cervin Edin @.***>
a écrit :

I'm working with @matsc-at-sics-se https://github.com/matsc-at-sics-se
on this issue
I will try and see with 9.11 and maybe some other versions.
Also checking how we can share a mzn/dzn or fzn file.
Meanwhile, I've tried turning off pre-solve.
There's a parameter in the sat proto
https://github.com/google/or-tools/blob/ed94162b910fa58896db99191378d3b71a5313af/ortools/sat/sat_parameters.proto#L440C1-L441C57
but it doesn't seem to turn off presolving, at least not the way I expect.
So running
minizinc -v --solver or-tools --params cp_model_presolve:false,keep_all_feasible_solutions_in_presolve:false bug.fzn
still appears to pre-solve
%% File /tmp/mznfileb1F4l6.fzn parsed in 0 ms
%% Presolve model
%%   - rule 'array_var_int_element: simplify using affine mapping.' was applied 3 times
%%   - rule 'int_lin_eq: store affine mapping' was applied 3 times
%%   - done in 0 ms
%% Model mznfileb1F4l6
%%   - array_int_element: 3
%%   - array_var_int_element: 3
%%   - ortools_table_int: 3
%%   - Satisfaction problem
%% The number of search workers, is not specified. For better performances, please set the number of workers to 8, 16, or more depending on the number of cores of your computer.
%% Starting CP-SAT solver v9.10.4067
%% Parameters: log_search_progress: true search_branching: FIXED_SEARCH cp_model_presolve: false keep_all_feasible_solutions_in_presolve: false log_to_stdout: false max_domain_size_when_encoding_eq_neq_constraints: 32 num_workers: 1
%% Initial satisfaction model 'mznfileb1F4l6': (model_fingerprint: 0x1398b3a42bb8c4d9)
%% #Variables: 24
%%   - 3 in [1,2]
%%   - 3 in [1,3]
%%   - 3 in [344,480]
%%   - 15 constants in {0,7,9,10,79,102,106,167,344,480}
%% #kElement: 6
%% #kTable: 3
%% Starting presolve at 0.00s
%% INFEASIBLE: ''
%% UNSAT after expansion of table { vars: 9 vars: 12 vars: 13 values: 480 values: 9 values: 7 values: 480 values: 9 values: 10 values: 480 values: 106 values: 7 values: 480 values: 106 values: 10 }
%% Presolve summary:
%%   - 0 affine relations were detected.
%%   - rule 'element: expanded value element' was applied 2 times.
%%   - rule 'element: reduced index domain' was applied 1 time.
%%   - rule 'element: reduced target domain' was applied 1 time.
%%   - rule 'table: empty' was applied 1 time.
%%   - rule 'variables: add encoding constraint' was applied 2 times.
%% Problem closed by presolve.
%% CpSolverResponse summary:
%% status: INFEASIBLE
%% objective: NA
%% best_bound: NA
%% integers: 0
%% booleans: 0
%% conflicts: 0
%% branches: 0
%% propagations: 0
%% integer_propagations: 0
%% restarts: 0
%% lp_iterations: 0
%% walltime: 0.000473515
%% usertime: 0.000473561
%% deterministic_time: 0
%% gap_integral: 0
%%
=====UNSATISFIABLE=====
@lperron https://github.com/lperron am I using the parameters
correctly?
—
Reply to this email directly, view it on GitHub
https://github.com/google/or-tools/issues/4392#issuecomment-2387760808,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACUPL3LOYENCVXY344GIP5TZZOK5XAVCNFSM6AAAAABPF62YICVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGOBXG43DAOBQHA
.
You are receiving this because you were mentioned.Message ID:
@.***>

I tried with minizinc 2.8.6 and OR-Tools 9.11 and it's the same result.
This is the compiled flatzinc file:
predicate ortools_table_int(array [int] of var int: x,array [int] of int: t);
array [1..2] of int: X_INTRODUCED_31_ = [480,344];
array [1..12] of int: X_INTRODUCED_33_ = [480,9,7,480,9,10,480,106,7,480,106,10];
var 1..2: X_INTRODUCED_16_;
var 1..2: X_INTRODUCED_17_;
var 1..2: X_INTRODUCED_18_;
var 167..167: X_INTRODUCED_20_;
var 102..102: X_INTRODUCED_21_;
var 79..79: X_INTRODUCED_22_;
var 1..3: X_INTRODUCED_23_;
var 1..3: X_INTRODUCED_24_;
var 1..3: X_INTRODUCED_25_;
var 2..3: X_INTRODUCED_28_ ::var_is_introduced :: is_defined_var;
var 344..480: X_INTRODUCED_30_ ::var_is_introduced :: is_defined_var;
var 2..3: X_INTRODUCED_35_ ::var_is_introduced :: is_defined_var;
var 344..480: X_INTRODUCED_36_ ::var_is_introduced :: is_defined_var;
var 2..3: X_INTRODUCED_39_ ::var_is_introduced :: is_defined_var;
var 344..480: X_INTRODUCED_40_ ::var_is_introduced :: is_defined_var;
array [1..3] of var int: X_INTRODUCED_32_ ::var_is_introduced  = [X_INTRODUCED_30_,9,7];
array [1..3] of var int: X_INTRODUCED_37_ ::var_is_introduced  = [X_INTRODUCED_36_,106,10];
array [1..3] of var int: X_INTRODUCED_41_ ::var_is_introduced  = [X_INTRODUCED_40_,106,7];
constraint array_var_int_element(X_INTRODUCED_28_,[167,102,79],102);
constraint array_int_element(X_INTRODUCED_16_,X_INTRODUCED_31_,X_INTRODUCED_30_):: defines_var(X_INTRODUCED_30_);
constraint ortools_table_int(X_INTRODUCED_32_,X_INTRODUCED_33_);
constraint array_var_int_element(X_INTRODUCED_35_,[167,102,79],102);
constraint array_int_element(X_INTRODUCED_17_,X_INTRODUCED_31_,X_INTRODUCED_36_):: defines_var(X_INTRODUCED_36_);
constraint ortools_table_int(X_INTRODUCED_37_,X_INTRODUCED_33_);
constraint array_var_int_element(X_INTRODUCED_39_,[167,102,79],102);
constraint array_int_element(X_INTRODUCED_18_,X_INTRODUCED_31_,X_INTRODUCED_40_):: defines_var(X_INTRODUCED_40_);
constraint ortools_table_int(X_INTRODUCED_41_,X_INTRODUCED_33_);
constraint int_lin_eq([1,-1],[X_INTRODUCED_16_,X_INTRODUCED_28_],-1):: domain:: defines_var(X_INTRODUCED_28_);
constraint int_lin_eq([1,-1],[X_INTRODUCED_17_,X_INTRODUCED_35_],-1):: domain:: defines_var(X_INTRODUCED_35_);
constraint int_lin_eq([1,-1],[X_INTRODUCED_18_,X_INTRODUCED_39_],-1):: domain:: defines_var(X_INTRODUCED_39_);
solve  satisfy;

I did my best at reducing the model and I ended up with this:
include "table.mzn";

enum B = { B1, B2 };
enum F = { F1, F2 };
enum R = { R1, R2 };
enum T = { T1, T2, T3 };

constraint forall (i in 1..3)
( let {
  var index_set(arr_var1): r  =  arr_var2[i],
  par F: foo                  =  [ F1, F2, F2 ][i],
  par B: bar                  =  [ B1, B2, B1 ][i],
  array[int] of int: arr_par  =  [ R1, R2 ],
} in
  arr_var1[r] == T3 /\
  table(
    [ arr_par[r], foo, bar ],
    [| R1, F1, B1
     | R1, F2, B1
     | R1, F2, B2 |]
  )
);

array[int] of var int: arr_var1 = array1d(0..2, [T1] ++ [ rt(r) | r in 1..2 ]);
array[1..3] of var index_set(arr_var1): arr_var2;

function var int: rt(var int: r) = [ T3, T2, T1 ][r];

which flattens down into
predicate ortools_table_int(array [int] of var int: x,array [int] of int: t);
array [1..2] of int: X_INTRODUCED_69_ = [1,2];
array [1..9] of int: X_INTRODUCED_77_ = [1,1,1,1,2,1,1,2,2];
var 1..2: X_INTRODUCED_66_;
var 1..2: X_INTRODUCED_67_;
var 1..2: X_INTRODUCED_68_;
var 1..3: X_INTRODUCED_71_ ::var_is_introduced :: is_defined_var;
var 1..2: X_INTRODUCED_73_ ::var_is_introduced :: is_defined_var;
var 1..3: X_INTRODUCED_79_ ::var_is_introduced :: is_defined_var;
var 1..2: X_INTRODUCED_80_ ::var_is_introduced :: is_defined_var;
var 1..3: X_INTRODUCED_85_ ::var_is_introduced :: is_defined_var;
var 1..2: X_INTRODUCED_86_ ::var_is_introduced :: is_defined_var;
array [1..3] of var int: arr_var2:: output_array([1..3]) = [X_INTRODUCED_66_,X_INTRODUCED_67_,X_INTRODUCED_68_];
array [1..3] of var int: X_INTRODUCED_76_ ::var_is_introduced  = [X_INTRODUCED_73_,1,1];
array [1..3] of var int: X_INTRODUCED_83_ ::var_is_introduced  = [X_INTRODUCED_80_,2,2];
array [1..3] of var int: X_INTRODUCED_89_ ::var_is_introduced  = [X_INTRODUCED_86_,2,1];
constraint array_var_int_element(X_INTRODUCED_71_,[1,3,2],3);
constraint array_int_element(X_INTRODUCED_66_,X_INTRODUCED_69_,X_INTRODUCED_73_):: defines_var(X_INTRODUCED_73_);
constraint ortools_table_int(X_INTRODUCED_76_,X_INTRODUCED_77_);
constraint array_var_int_element(X_INTRODUCED_79_,[1,3,2],3);
constraint array_int_element(X_INTRODUCED_67_,X_INTRODUCED_69_,X_INTRODUCED_80_):: defines_var(X_INTRODUCED_80_);
constraint ortools_table_int(X_INTRODUCED_83_,X_INTRODUCED_77_);
constraint array_var_int_element(X_INTRODUCED_85_,[1,3,2],3);
constraint array_int_element(X_INTRODUCED_68_,X_INTRODUCED_69_,X_INTRODUCED_86_):: defines_var(X_INTRODUCED_86_);
constraint ortools_table_int(X_INTRODUCED_89_,X_INTRODUCED_77_);
constraint int_lin_eq([1,-1],[X_INTRODUCED_66_,X_INTRODUCED_71_],-1):: domain:: defines_var(X_INTRODUCED_71_);
constraint int_lin_eq([1,-1],[X_INTRODUCED_67_,X_INTRODUCED_79_],-1):: domain:: defines_var(X_INTRODUCED_79_);
constraint int_lin_eq([1,-1],[X_INTRODUCED_68_,X_INTRODUCED_85_],-1):: domain:: defines_var(X_INTRODUCED_85_);
solve  satisfy;

Curiously, if I change the index set of arr_var1 to
array[int] of var int: arr_var1 = [T1] ++ [ rt(r) | r in 1..2 ];

The instance is UNSAT also in chuffed.
It's possible this is a bug in the minizinc toolchain but it's surprising that no other solver back-ends I've tried (gecode, chuffed, highs, coinbc) give UNSAT

I should note that the flatzinc for chuffed was identical, except the name of the table predicate

I am debugging. Thanks

I reduced it to:
var 1..3: x ::var_is_introduced :: is_defined_var;
constraint array_var_int_element(x,[1,3,2],3);
constraint int_lin_eq([1,-1],[1 ,x],-1):: domain:: defines_var(x);
solve satisfy;

Seems like removing the domain consistency annotation on int_lin_eq makes it feasible
var 2..2: x ::var_is_introduced :: is_defined_var;
constraint array_var_int_element(x,[1,3,2],3);
constraint int_lin_eq([1,-1],[1 ,x],-1):: defines_var(x);
solve satisfy;

Looks like it's the same for the "original" flatzinc
predicate ortools_table_int(array [int] of var int: x,array [int] of int: t);
array [1..2] of int: X_INTRODUCED_31_ = [480,344];
array [1..12] of int: X_INTRODUCED_33_ = [480,9,7,480,9,10,480,106,7,480,106,10];
var 1..2: X_INTRODUCED_16_;
var 1..2: X_INTRODUCED_17_;
var 1..2: X_INTRODUCED_18_;
var 167..167: X_INTRODUCED_20_;
var 102..102: X_INTRODUCED_21_;
var 79..79: X_INTRODUCED_22_;
var 1..3: X_INTRODUCED_23_;
var 1..3: X_INTRODUCED_24_;
var 1..3: X_INTRODUCED_25_;
var 2..3: X_INTRODUCED_28_ ::var_is_introduced :: is_defined_var;
var 344..480: X_INTRODUCED_30_ ::var_is_introduced :: is_defined_var;
var 2..3: X_INTRODUCED_35_ ::var_is_introduced :: is_defined_var;
var 344..480: X_INTRODUCED_36_ ::var_is_introduced :: is_defined_var;
var 2..3: X_INTRODUCED_39_ ::var_is_introduced :: is_defined_var;
var 344..480: X_INTRODUCED_40_ ::var_is_introduced :: is_defined_var;
array [1..3] of var int: X_INTRODUCED_32_ ::var_is_introduced  = [X_INTRODUCED_30_,9,7];
array [1..3] of var int: X_INTRODUCED_37_ ::var_is_introduced  = [X_INTRODUCED_36_,106,10];
array [1..3] of var int: X_INTRODUCED_41_ ::var_is_introduced  = [X_INTRODUCED_40_,106,7];
constraint array_var_int_element(X_INTRODUCED_28_,[167,102,79],102);
constraint array_int_element(X_INTRODUCED_16_,X_INTRODUCED_31_,X_INTRODUCED_30_):: defines_var(X_INTRODUCED_30_);
constraint ortools_table_int(X_INTRODUCED_32_,X_INTRODUCED_33_);
constraint array_var_int_element(X_INTRODUCED_35_,[167,102,79],102);
constraint array_int_element(X_INTRODUCED_17_,X_INTRODUCED_31_,X_INTRODUCED_36_):: defines_var(X_INTRODUCED_36_);
constraint ortools_table_int(X_INTRODUCED_37_,X_INTRODUCED_33_);
constraint array_var_int_element(X_INTRODUCED_39_,[167,102,79],102);
constraint array_int_element(X_INTRODUCED_18_,X_INTRODUCED_31_,X_INTRODUCED_40_):: defines_var(X_INTRODUCED_40_);
constraint ortools_table_int(X_INTRODUCED_41_,X_INTRODUCED_33_);
constraint int_lin_eq([1,-1],[X_INTRODUCED_16_,X_INTRODUCED_28_],-1):: defines_var(X_INTRODUCED_28_);
constraint int_lin_eq([1,-1],[X_INTRODUCED_17_,X_INTRODUCED_35_],-1):: defines_var(X_INTRODUCED_35_);
constraint int_lin_eq([1,-1],[X_INTRODUCED_18_,X_INTRODUCED_39_],-1):: defines_var(X_INTRODUCED_39_);
solve  satisfy;

nice find. It looks to be in the only remaining flatzinc presolve code

That's great news @lperron, will this fix be available in the next release (9.12?) or will there be a new build of 9.11?
Thank you very much for the quick response and for fixing this

9.12.
We will start the release process next week. Hopefully, it will not take
too long.
Laurent Perron | Operations Research | @.*** | (33) 1 42 68 53
00
Le ven. 4 oct. 2024 à 16:38, Erik Cervin Edin @.***> a
écrit :

That's great news @lperron https://github.com/lperron, will this fix be
available in the next release (9.12?) or will there be a new build of 9.11?
Thank you very much for the quick response and for fixing this
—
Reply to this email directly, view it on GitHub
https://github.com/google/or-tools/issues/4392#issuecomment-2393865947,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACUPL3OIV27WU36IRJQ6GX3ZZ2R6ZAVCNFSM6AAAAABPF62YICVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGOJTHA3DKOJUG4
.
You are receiving this because you were mentioned.Message ID:
<google/or-tools/issues/4392/2393865947 @.***>


Dataclass ClassVars are not correctly handled in apply_to_collection

🐛 Bug
When including a dataclass in part of a batch that contains a ClassVar field, the ClassVar field is passed as a keyword argument to the dataclass instance's __init__ function, resulting in a TypeError.
This appears to be due to the use of __dataclass_fields__ versus dataclasses.fields introduced in a relatively recent PR that added support for dataclasses to apply_to_collection.
The __dataclass_fields__ attribute does not distinguish between pseudo-fields ClassVar/InitVar and actual fields, whereas dataclasses.fields does.
To Reproduce
https://colab.research.google.com/drive/1Ha5BsgV29buPZwn04mohfkOC4bycm7jN?usp=sharing

Expected behavior
The model should load data and train without error.
Environment

CUDA:

GPU:

Tesla T4

available:         True
version:           10.2

Packages:

numpy:             1.19.5
pyTorch_debug:     False
pyTorch_version:   1.9.0+cu102
pytorch-lightning: 1.4.4
tqdm:              4.62.0

System:

OS:                Linux
architecture:

64bit

processor:         x86_64
python:            3.7.11
version:           #1 SMP Sat Jun 5 09:50:34 PDT 2021

Additional context

Since you are already familiar with what's the problem, do you want to open a PR with the fix?
Remember to include a case for it in tests/utilities/test_apply_func.py

Sure, I'll try to get to it in the next week or so.

I could pick this up if @a-gardner1 does not.


v2.36 security breaks plugins ability to automatically add more minions

It seems like the security patch v2.36 breaks the plugin in a few ways.

Minions no longer get removed automatically from the openstack side
New minions don't always spawn in a timely manor / or at all

It appears like the plugin is expecting the anonymous user to have the Overall/Administer permission which I am assuming the security fix secured.
INFO: Started provisioning prd-centos7-builder-2c-2g from odlvex with 1 executors. Remaining excess workload: 0
Jun 26, 2018 6:20:23 AM jenkins.plugins.openstack.compute.JCloudsSlaveTemplate provision
INFO: Provisioning new openstack server prd-centos7-builder-2c-2g-291 with options jenkins.plugins.openstack.compute.SlaveOptions@1b19bdb0[bootSource=Image ZZCI - CentOS 7 - builder - 20180611-1830,hardwareId=def1b86f-b7f8-4943-b430-4a0599170006,networkId=b5fcd86e-efac-4997-b8bc-dbe0d35bc229,userDataId=jenkins-init-script,instanceCap=75,instancesMin=0,floatingIpPool=<null>,securityGroups=default,availabilityZone=ca-ymq-2,startTimeout=600000,keyPairName=jenkins-ssh,numExecutors=1,jvmOptions=<null>,fsRoot=/w,launcherFactory=LauncherFactory.SSH: credId:jenkins-ssh, javaPath:null,retentionTime=0]
Jun 26, 2018 6:20:23 AM hudson.slaves.NodeProvisioner$2 run
WARNING: Unexpected exception encountered while provisioning agent prd-centos7-builder-2c-8g
hudson.security.AccessDeniedException2: anonymous is missing the Overall/Administer permission
        at hudson.security.ACL.checkPermission(ACL.java:68)
        at jenkins.plugins.openstack.compute.auth.OpenstackCredentials.getCredential(OpenstackCredentials.java:19)
        at jenkins.plugins.openstack.compute.JCloudsCloud.getOpenstack(JCloudsCloud.java:431)
        at jenkins.plugins.openstack.compute.JCloudsSlaveTemplate.provision(JCloudsSlaveTemplate.java:282)
        at jenkins.plugins.openstack.compute.JCloudsSlaveTemplate.provision(JCloudsSlaveTemplate.java:262)
        at jenkins.plugins.openstack.compute.JCloudsSlaveTemplate.provisionSlave(JCloudsSlaveTemplate.java:207)
        at jenkins.plugins.openstack.compute.JCloudsCloud$NodeCallable.call(JCloudsCloud.java:310)
        at jenkins.plugins.openstack.compute.JCloudsCloud$NodeCallable.call(JCloudsCloud.java:297)
        at jenkins.util.ContextResettingExecutorService$2.call(ContextResettingExecutorService.java:46)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

This particular failure seems to be coming from the OpenstackCredentials file.
public static @CheckForNull OpenstackCredential getCredential(@CheckForNull String credentialId) {
    Jenkins.getInstance().getACL().checkPermission(Jenkins.ADMINISTER);

So the plugin itself appears to be using the anonymous account to query this information but I think the plugin needs to query the info as an admin user.

Hmm, for some reason this is not covered by unittests.

@zxiiro. thanks for the report. I am releasing the fixed now.


treat image pull 429s the same as unauthorized

Downside - I believe this requires the vendor to have configured a docker hub image pull account

We may actually want to do the opposite and treat 429s the same as 200s

@divolgin bump; old PR still awaiting review

Coming back to this - treating 429s (ratelimited) the same as unauthorized would cause kotsadm to configure those images to use the replicated image pull proxy, instead of failing the install as happens currently. This would work if the vendor had configured a docker hub account for that kots app, but not otherwise.
The alternative, treating 429s the same as a 200, would allow installs but then (presumably) result in those pods ending up in imagePullBackoff until someone fixed it, but that is something that the end user can (theoretically) do themselves.

Closing this in favor of designing a solution to deal with docker hub rate limiting.


tooling: Benchmark visualization script

This PR adds a python script under tools/, which can be used to visualize google benchmark data. An example plot can be found below.
Not very familiar with python, so any improvement suggestions are more than welcome.

There's definitely still some potential for additional checks and capabilities, esp. automatic inference of skiprows, but I think it's fine for now.

Thanks for improving this, it looks much more pythonic now 🐍
Added a very minor change such that we can now glob subdirectories as I just changed to the following build layout
build
 |_ Debug
 |_ Release


Do not use mirror link.

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?

Microsoft Reviewers: Open in CodeFlow

/azp run

/azp run


Bad practices for FireEdge REST API

Description
The action should be indicated by the HTTP request method that we’re making: GET, POST, PUT, and DELETE.
Expected behavior
GET          /fireedge/api/service        retrieves resources
GET           /fireedge/api/service/:id  retrieves resource by :id
POST        /fireedge/api/service        submits new data to the server
PUT          /fireedge/api/service/:id    updates existing resource by :id
DELETE   /fireedge/api/service/:id    removes resource by :id
Details

Affected Component: FireEdge
Hypervisor: [e.g. KVM]
Version: 6.2 and development

Additional context
https://docs.opennebula.io/6.3/integration_and_development/references/react_sunstone_dev.html#methods

Progress Status

[x] Branch created
[x] Code committed to development branch
[ ] Testing - QA
[x] Documentation
[ ] Release notes - resolved issues, compatibility, known issues
[ ] Code committed to upstream release/hotfix branches
[ ] Documentation committed to upstream release/hotfix branches

@tinova PR to approve:

CODE: https://github.com/OpenNebula/one-ee/pull/1708
DOCS: https://github.com/OpenNebula/docs/pull/2117


Spurious NaN when using in-place ops on MultiIndex column with empty label

Code Sample, a copy-pastable example if possible
In [2]: df = pd.DataFrame(0, index=range(2), columns=pd.MultiIndex.from_product([[1], [2]]))

In [3]: df['oth'] = 1

In [4]: df.loc[0, 'oth']
Out[4]:
    1
Name: 0, dtype: int64

In [5]: df.loc[0, 'oth'] += 1

In [6]: df.loc[0, 'oth']
Out[6]:
   NaN
Name: 0, dtype: float64

Expected Output
In [6]: df.loc[0, 'oth']
Out[6]:
   2
Name: 0, dtype: float64

output of pd.show_versions()
In [7]: pd.show_versions()

INSTALLED VERSIONS
------------------
commit: ab286f0ea605bec7dc96631ac8493278846a637d
python: 3.5.1.final.0
python-bits: 64
OS: Linux
OS-release: 4.5.0-2-amd64
machine: x86_64
processor:
byteorder: little
LC_ALL: None
LANG: it_IT.utf8

pandas: 0.18.1+123.gab286f0.dirty
nose: 1.3.7
pip: 1.5.6
setuptools: 18.4
Cython: 0.23.4
numpy: 1.10.4
scipy: 0.16.0
statsmodels: 0.8.0.dev0+111ddc0
xarray: None
IPython: 5.0.0.dev
sphinx: 1.3.1
patsy: 0.3.0-dev
dateutil: 2.2
pytz: 2012c
blosc: None
bottleneck: 1.1.0dev
tables: 3.2.2
numexpr: 2.5
matplotlib: 1.5.1
openpyxl: None
xlrd: 0.9.4
xlwt: 1.1.2
xlsxwriter: 0.7.3
lxml: None
bs4: 4.4.0
html5lib: 0.999
httplib2: 0.9.1
apiclient: 1.5.0
sqlalchemy: 1.0.11
pymysql: None
psycopg2: None
jinja2: 2.8
boto: 2.38.0
pandas_datareader: 0.2.1

I guess.

In fact, this is not strictly related to in-place ops, since
df.loc[0, 'oth'] = df.loc[0, 'oth'] + 1

results in the same behaviour. I bet it has to do instead with the fact that df.loc[0, 'oth'] returns a Series (of 1 element) rather than a number (as df.loc[0, ('oth', '')]), and this is incoherent for instance with df.loc[:,'oth'] and df['oth'], which both return a Series (not a DataFrame): that is they return the same as df.loc[:, ('oth', '')].
Retitling accordingly.


Wiki needs a bit of improvement

The wiki page is a bit badly structured making the Rx example very incomplete.
I would suggest adding a page with a better example of its usage, the needed/possible import versions like compile 'io.fotoapparat.fotoapparat:adapter-rxjava2:1.0.2' and maybe start adding Kotlin examples.

Thanks for the feedback @Reonarudo. What would you add regarding Kotlin?
Ofc PRs are welcome :)

The setup instructions are already under the relevant adapter README e.g. https://github.com/Fotoapparat/Fotoapparat/tree/master/fotoapparat-adapters/rxjava.
Should be easy to follow for a beginner in Rx. If not, please propose us enhancements :)
Honestly, there is much value in adding Kotlin examples since there are no huge differences between Java and Kotlin and one can easily understand both.
Will close for now but feel free to add more comments or open another issue if you need 👍


sack of storage render issue in hotbar

please see video link for the issue
https://www.youtube.com/watch?v=HfoVmVPJATY

Weird, yeah it still renders it in your hand even when its the previous item. Same thing happens for me. ill fix it if i can.

Download 1.7.2 for fix


es.vuejs.org = "Not Found"?

https://es.vuejs.org/ retrieves "Not Found".
Im kinda impressed that nobody noticed it.
Take a look, maybe it's just me.
Translation-related; Docs.

Let's loop in @sxcamacho since this is probably related to the deployment of 1950Labs/vuejs.org. /cc @leonelmore

Hi guys. I sent a message to Netlify about it. @bencodezen could you check if Luke did any change?

On Nov 5, 2020, at 08:56, Sebastián Camacho<EMAIL_ADDRESS>wrote:
Hi Luke,
Thanks for responding. I'm trying to associate it to vuejsorg-es.netlify.app from the team "VueJS Translation team (ES) Open Source".
This is the original site name. I renamed this site from the old account to be able to use the same name in the new one.
It should work just with your change right?
El jue., 5 nov. 2020 a las 5:40, Luke Lawson (Netlify<EMAIL_ADDRESS>escribió:
##- Please type your reply above this line -##
Your case with Netlify Support (42825) has a new response, included below. If you have any follow-up questions or comments, please reply to this email.
Luke Lawson (Netlify)
Nov 5, 2020, 3:40 AM EST
HI Sebastian,
There is a check to confirm that a specific apex domain is added to one account only at Netlify. I can override this check but I need to know which team the domain is being added to do to create the override.
What site/account are you trying to add es.vuejs.org to?
Sebastian Camacho
Nov 4, 2020, 6:34 PM EST
Subject:
Spanish site is down
Site:
vuejs.org
Message:
URGENT - I tried to move the es.vuejs.org site to a new account and now the site is down. The error is "Another site is already using this domain"

@gtsiolis @x-N0 The Netlify team added the missing settings. The Spanish site working again!
Please, feel free to close the issue, and thanks for putting me in the loop. Have a good day!

Great news, thanks @sxcamach! Let's close this. /cc @x-N0 @NataliaTepluhina


bug: Unsubscribe ionic listeners on angular init

Type: bug
Platform: all
Hey Ionic Team,
we ran into a problem while testing.
Requirements:
Ionic Beta 14
Karma 0.12.25
Karma Mocha 0.1.9
The Problem:
We register device ready event in our services:
app.service('ExampleSrvc', function(....) {
  $ionicPlatform.on('deviceready', function() {
    ...
  })
```

In my Test the following happens:

describe('test', function() {
beforeEach(function() {
module('example');
})
it('iteration1', function() {
...
document.dispatchEvent(new Event('deviceready'));
})
it('iteration2', function() {
...
document.dispatchEvent(new Event('deviceready'));
})
it('iteration3', function() {
...
document.dispatchEvent(new Event('deviceready'));
})
})

After each Iteration the angular module is re-bootstrapped, but the ionic listener (deviceready) is registered multiple times in the service.

Why does ionic platform not unsubscribe if the angular module is bootstrapped/initialized?

do i need to unsubscribe the "deviceready" event on my own?
(for example call ionic.off('deviceready', callback) on custom "app-destroy" event)?

should i rather report this issue to angular-mocks?

If i trigger events via $rootScope, angular automatically unsubscribe events. ($on, $broadcast)

Feel free to close the issue if its a duplicate.

Regards,
Kate

Greetings @kirrg001!
My sensors indicate that you need to update your issue through our custom issue form. We are now requiring all issues to be submitted this way, to ensure that we have all of the information necessary to fix them as quickly as possible.
Click Here To Update Your Issue
I will have no choice but to close this issue if it is not resubmitted through the form. Please fill out the rest of the form, so that I may use my friendly robot powers to assist you.
Thank you!

Greetings @kirrg001!
I've closed this issue because my sensors indicated it was old and inactive, and may have already been fixed in recent versions of Ionic. However, if you are still experiencing this issue, please feel free to reopen this issue by creating a new one, and include any examples and other necessary information, so that we can look into it further.
Thank you for allowing me to assist you.


Upgrade from Amazon Linux 2 to 2022 (or 2023?)

Detailed Description
This does not have any current urgency, but wanted to get these notes and context written down.
AWS has announced a new Amazon Linux release structure in Amazon Linux 2022.  They also released an ECS version which is the variant of AL2 DB uses.  The 2022 version are all in preview mode right now.
Context

It's the next version of Amazon Linux (and we use ECS optimized builds), so we are going to eventually want to move to it.
We can drop older cgroup support
General performance improvement including around memory and cgroup improvements
We can try items to help save memory using newer features - like zswap or zram (didn't work on AL2)

Alternatives
If they introduce a newer Fargate that is backed by this more modern OS - there may be a chance we can switch to Fargate instead.  That is blocked on using the kernel option vm_max_map_count.
Possible Implementation
Changing to it is trivial, has been slightly tested: https://github.com/PublicMapping/districtbuilder/commit/c780b2fc7c5905451fbb5400921ffbd59396ac35
We don't necessarily need to wait until it's out of preview, but do want to a lot of performance testing/comparison to confirm it's better.

Make fresh deployment on staging,
Get fresh benchmark numbers / https://github.com/PublicMapping/districtbuilder/tree/develop/load-tests and memory usage
Make terraform change to 2022 image in test branch so it's on staging
Get  2022 image benchmark numbers and memory usage
Decide if worth pursing for production move.  If no, document.  If yes, continue
Make terraform change PR.

Ok, an update on where this stands:

It's now called Amazon Linux 2023
It's still in preview. They released an RC0 some time in mid-late 2022 and they're now on RC3, released in February.
I don't see any indication that there's a concrete, or even not-concrete, timeline for finalizing it. Presumably they'll keep making RCs and fixing bugs until they feel it's ready for production.
The release notes and the FAQ say "Release Candidate is not recommended for production workloads."

I think it's in our interest to wait until they're fully done.  The new OS might provide better performance or it might be about the same, but there's no reason to think it'll make such a significant difference that we want to get on board the moment it's available.  Most of the work of this task will be load testing and evaluation, and doing that early, on a preview, is probably not a substitute for doing it on the actual final AMI.  So it makes sense to do it once, when the thing is ready.

It just got released: https://aws.amazon.com/about-aws/whats-new/2023/03/amazon-linux-2023/

Hey @KlaasH , I saw the above message from Bryan that the newer version is now released. Would you suggest us to make the move or would you like to have a review of the above doc next sprint before a decision?

I don't have a very clear sense of how much performance improvement we expect from upgrading and how important it is that we capture it.  The zswap thing sounds promising, but also sounds like it could be a trade-off since I assume we'd have to reserve a chunk of memory for that, so the amount of normal memory available would be reduced.  I don't know the implications of the cgroup changes.
I think the first big question for me is whether it makes sense to upgrade our EC2 instances or if we're hoping to be able to upgrade to Fargate and think it will be possible soon enough that it doesn't make sense to spend time on an intermediate upgrade.  The issue description above mentions that we need to be able to increase vm.max_map_count.  Here's an issue where a number of people mention needing that parameter, and the latest update, from February, is that they're making progress (at least on the broader issue of sysctl support in general, no specific word on whether that parameter will be available, though I would think it's on their list to at least try to add, since it sounds like there's a common use case that requires it).
So yeah, we definitely could make the move now, but whether we should depends on how much we expect to gain from it, how important those gains are to the functionality or stability of the app, and whether we're likely to keep it for a while or change again soon.

Thanks @KlaasH I was skeptical about the zswap bit as well, and I agree with your reasoning. I think we might have an understanding of the performance implication through some potential load tests when we have capacity to do load testing again? Regarding new version of Fargate with sysctl support (which seems like will unblock us from upgrading due to the need for configuring vm_max_map_count), did you have any luck finding this on their roadmap? Some light search did not help me much...
Hey @BryanQuigley could you expand on why we may drop the code block for reading control group memory max when determining the docker memory limit after this upgrade please? I think I am missing some context here.

I don't understand how they plan to implement the sysctl kernel changes - but it sounds like it's a way off.

for reading control group memory max

The cgroup commit that can be changed is: https://github.com/PublicMapping/districtbuilder/commit/700d413b3d8b59c5a913fd921a545d0d42f7292b
All our Linux/Mac machines are running using cgroupsv2 while our production/staging sites are using v1.   There are numerous memory improvements with cgroupsv2 as well - https://docs.kernel.org/admin-guide/cgroup-v2.html#issues-with-v1-and-rationales-for-v2 that may match some of the issues with the agent being killed.   Or in other words, I don't know if it's worth troubleshooting why it's happening on the old OS, when a new one is available.

Update (sort of) re Fargate:
The issue I was watching on the AWS "containers roadmap" repo about adding sysctl parameter control to fargate (https://github.com/aws/containers-roadmap/issues/460) was resolved, but without adding the one we need (max_map_count).
There's another issue, https://github.com/aws/containers-roadmap/issues/1452, that's specific to that one parameter. There hasn't been much activity on it, but until three days ago the last comment was "#460 should handle this issue."  Now that that hasn't happened, maybe it will get some attention.  Then again maybe not—max_map_count was mentioned in the discussion for #460, so it's possible they concluded it's not feasible to expose that one.  But hopefully they just decided to prioritize other ones but will be continuing to work on it.  We shall see.

Thanks @KlaasH for continuing looking out for it. Please keep us posted!


Experiments with DeepFloyd IF?

I was wondering if you found that this approach also worked with DeepFloyd IF, or is it specific to stable diffusion?

This is completely independent. DeepFloyd is a completely different model, and the fundamental concept is not the same.
I'm asking whether application of masking with blended latent diffusion works for non-latent diffusion models.

I'm asking whether the authors found that masking with blended latent diffusion works for non-latent diffusion models.

Hi,
I did not personally test it with DeepFloyd.
However, I previously performed the masked-based blending in a pixel-based diffusion model.
So, I believe it should also work on DeepFloyd.

This is completely independent. DeepFloyd is a completely different model, and the fundamental concept is not the same.

The fundamental concept, and end goal, is shared by both projects, if you read their descriptions on functionality.


Add metric for message processing latency

Fix #1839
Opted for a histogram instead of gauge, because the library doesn't have a synchronous gauge.

I'd be comfortable with a Middleware.  I'm also wondering whether we should contribute to https://github.com/ThreeDotsLabs/watermill/blob/master/components/metrics/handler.go#L62 rather than adding our own additional Middleware.

Actually, we might want to hook DecoratePublisher and DecorateSubscriber from here: https://github.com/ThreeDotsLabs/watermill/blob/v1.3.5/components/metrics/builder.go to set the Metadata fields we need.

I filed https://github.com/ThreeDotsLabs/watermill/issues/417 to see if this would be accepted upstream.  In the meantime, it feels like it would make sense to implement this as a Middleware / PublisherDecorator in eventer.go.

@JAORMX @evankanderson I moved the code into the eventer.
I see a few options for where the metric can be read, let me know if you think there's a better place for it than the handler function.

oops, the unit test issue seems legit

@JAORMX  On it.


No agent with handle 1 registered

Error: No agent with handle 1 registered
at y.$updateAgent in src/vs/workbench/api/browser/mainThreadChatAgents2.ts:202:10
at y.S in src/vs/workbench/services/extensions/common/rpcProtocol.ts:458:17
at y.Q in src/vs/workbench/services/extensions/common/rpcProtocol.ts:443:32
at y.M in src/vs/workbench/services/extensions/common/rpcProtocol.ts:373:19
at y.L in src/vs/workbench/services/extensions/common/rpcProtocol.ts:299:10
at u.value in src/vs/workbench/services/extensions/common/rpcProtocol.ts:161:42
at h.y in src/vs/base/common/event.ts:1196:13
at h.fire in src/vs/base/common/event.ts:1227:9
at r.fire in src/vs/base/parts/ipc/common/ipc.net.ts:650:19
at U.onmessage in src/vs/workbench/services/extensions/electron-sandbox/localProcessExtensionHost.ts:378:17

Go to Errors Site

https://github.com/microsoft/vscode/issues/214157


service is stopped

syslog-ident = redis
AbortForkOperation: 0x00000005 - EndForkOperation: Killing forked process failed.: permission denied

Hi @jikhww
can you please provide some context?
Thank you.

i writed 100W keys to server
i used RedisDesktopManager connect to server . exec flushall command.  the connection is lost
look at server,the redis service is stopped
found the log in operation system log

@jikhww
what version of Redis are you using?
can you please post the Redis log?
Thank you.

redis version : Redis-x64-3.0.501.msi
logs
[27472] 28 Jan 13:46:29.451 * Redis 3.0.501 (00000000/0) 64 bit, standalone mode, port 6379, pid 27472 ready to start.
[27472] 28 Jan 13:46:29.466 # Server started, Redis version 3.0.501
[27472] 28 Jan 13:46:29.466 * The server is now ready to accept connections on port 6379
[24804] 28 Jan 13:49:29.941 * Redis 3.0.501 (00000000/0) 64 bit, standalone mode, port 6379, pid 24804 ready to start.
[24804] 28 Jan 13:49:29.941 # Server started, Redis version 3.0.501
[24804] 28 Jan 13:49:29.941 * The server is now ready to accept connections on port 6379
[24804] 28 Jan 13:54:39.235 * 10 changes in 300 seconds. Saving...
[24804] 28 Jan 13:54:39.251 * Background saving started by pid 43404
[24804] 28 Jan 13:54:39.704 # fork operation complete
[24804] 28 Jan 13:54:39.704 * Background saving terminated with success
[24804] 28 Jan 13:55:40.087 * 10000 changes in 60 seconds. Saving...
[24804] 28 Jan 13:55:40.087 * Background saving started by pid 3644
[24804] 28 Jan 13:55:41.290 # fork operation complete
[24804] 28 Jan 13:55:41.306 * Background saving terminated with success
[24804] 28 Jan 13:56:42.017 * 10000 changes in 60 seconds. Saving...
[24804] 28 Jan 13:56:42.017 * Background saving started by pid 40648
[24804] 28 Jan 13:56:43.001 # fork operation complete
[24804] 28 Jan 13:56:43.017 * Background saving terminated with success
[24804] 28 Jan 13:57:44.087 * 10000 changes in 60 seconds. Saving...
[24804] 28 Jan 13:57:44.087 * Background saving started by pid 43840
[24804] 28 Jan 13:57:46.822 # fork operation complete
[24804] 28 Jan 13:57:46.837 * Background saving terminated with success
[24804] 28 Jan 13:58:47.011 * 10000 changes in 60 seconds. Saving...
[24804] 28 Jan 13:58:47.011 * Background saving started by pid 6316
[24804] 28 Jan 13:58:48.543 # fork operation complete
[24804] 28 Jan 13:58:48.543 * Background saving terminated with success
[24804] 28 Jan 13:58:58.263 * DB saved on disk
[24804] 28 Jan 13:59:59.004 * 10000 changes in 60 seconds. Saving...
[24804] 28 Jan 13:59:59.035 * Background saving started by pid 61492
[24804] 28 Jan 14:00:00.473 # fork operation complete
[24804] 28 Jan 14:00:00.520 * Background saving terminated with success
[24804] 28 Jan 14:01:01.074 * 10000 changes in 60 seconds. Saving...
[24804] 28 Jan 14:01:01.121 * Background saving started by pid 55744
[24804] 28 Jan 14:01:04.168 # fork operation complete
[24804] 28 Jan 14:01:04.277 * Background saving terminated with success
[24804] 28 Jan 14:02:05.050 * 10000 changes in 60 seconds. Saving...
[24804] 28 Jan 14:02:05.081 * Background saving started by pid 12604
[24804] 28 Jan 14:02:06.613 # fork operation complete
[24804] 28 Jan 14:02:06.706 * Background saving terminated with success
[24804] 28 Jan 14:03:07.058 * 10000 changes in 60 seconds. Saving...
[24804] 28 Jan 14:03:07.089 * Background saving started by pid 50060
[24804] 28 Jan 14:03:09.532 # fork operation complete
[24804] 28 Jan 14:03:09.610 * Background saving terminated with success
[24804] 28 Jan 14:04:10.102 * 10000 changes in 60 seconds. Saving...
[24804] 28 Jan 14:04:10.102 * Background saving started by pid 49228
[24804] 28 Jan 14:04:11.306 # fork operation complete
[24804] 28 Jan 14:04:11.321 * Background saving terminated with success
[24804] 28 Jan 14:05:12.048 * 10000 changes in 60 seconds. Saving...
[24804] 28 Jan 14:05:12.048 * Background saving started by pid 48844
[24804] 28 Jan 14:05:14.079 # AbortForkOperation: 0x00000005 - EndForkOperation: Killing forked process failed.: permission denied
[64320] 28 Jan 14:07:19.953 * Redis 3.0.501 (00000000/0) 64 bit, standalone mode, port 6379, pid 64320 ready to start.
[64320] 28 Jan 14:07:19.969 # Server started, Redis version 3.0.501
[64320] 28 Jan 14:07:22.282 * DB loaded from disk: 2.313 seconds
[64320] 28 Jan 14:07:22.282 * The server is now ready to accept connections on port 6379
[64320] 28 Jan 14:37:57.058 * DB saved on disk
[64320] 28 Jan 14:38:48.940 * DB saved on disk
[64320] 28 Jan 14:39:49.074 * 10000 changes in 60 seconds. Saving...
[64320] 28 Jan 14:39:49.074 * Background saving started by pid 25076
[64320] 28 Jan 14:39:51.918 # fork operation complete
[64320] 28 Jan 14:39:51.933 * Background saving terminated with success
[64320] 28 Jan 14:40:52.004 * 10000 changes in 60 seconds. Saving...
[64320] 28 Jan 14:40:52.019 * Background saving started by pid 21288
[64320] 28 Jan 14:40:58.708 # fork operation complete
[64320] 28 Jan 14:40:58.739 * Background saving terminated with success
[64320] 28 Jan 14:41:59.013 * 10000 changes in 60 seconds. Saving...
[64320] 28 Jan 14:41:59.013 * Background saving started by pid 47756
[64320] 28 Jan 14:42:08.420 # fork operation complete
[64320] 28 Jan 14:42:08.467 * Background saving terminated with success
[64320] 28 Jan 14:43:09.008 * 10000 changes in 60 seconds. Saving...
[64320] 28 Jan 14:43:09.008 * Background saving started by pid 54096
[64320] 28 Jan 14:43:18.634 # fork operation complete
[64320] 28 Jan 14:43:18.649 * Background saving terminated with success
[64320] 28 Jan 15:34:44.183 * DB saved on disk
[64320] 28 Jan 15:35:45.034 * 10000 changes in 60 seconds. Saving...
[64320] 28 Jan 15:35:45.050 * Background saving started by pid 60980
[64320] 28 Jan 15:35:46.472 # fork operation complete
[64320] 28 Jan 15:35:46.519 * Background saving terminated with success
[64320] 28 Jan 15:36:47.089 * 10000 changes in 60 seconds. Saving...
[64320] 28 Jan 15:36:47.089 * Background saving started by pid 14420
[64320] 28 Jan 15:36:49.418 # fork operation complete
[64320] 28 Jan 15:36:49.433 * Background saving terminated with success
[64320] 28 Jan 15:37:50.011 * 10000 changes in 60 seconds. Saving...
[64320] 28 Jan 15:37:50.011 * Background saving started by pid 63020
[64320] 28 Jan 15:37:51.777 # fork operation complete
[64320] 28 Jan 15:37:51.793 * Background saving terminated with success

@jikhww
there is no indication of a crash, it seems like the service has been stopped or killed externally.
The error "AbortForkOperation: 0x00000005 - EndForkOperation: Killing forked process failed.: permission denied" may occur if the service is stopped while a background save is in process and is not the reason why the service has stopped.
Let me know if that happens again.

@enricogior  thanks for your answer
if its happen again i will tell you

that happen in my computer too, it is window 7, sometimes that pop up box : redis is stop, but cmd have not anything, it is strange

@doobang
can you please post the log to see if it's the same issue?
Thank you.

hat same issue with 2.8 see https://github.com/MSOpenTech/redis/issues/447


[BUG] - Different length acquires on multiple physical SHFQA channels

Describe the bug
We want to measure on two different physical lines with different readout durations, this is however blocked by the L1Q controller:
 laboneq.controller.util        CRITICAL Can't determine unique acquire length for the device 'SHFQA1' in acquire_loop_rt(uid='averaging') section. Ensure all 'acquire' statements within this section mapping to this device use the same kernel length

To Reproduce
Experiment is attached.
L1Q-20230726_02994_parametric_measurement_qubit_meas_Qubit30_290_6809_0_18_Coupler-20230726T113544Z-00000.zip
Expected behavior
Code & Screenshots
Versions used:

laboneq: 2.8

Context

[ ] Do you know a workaround for the issue? If yes, please provide a short description.
[ ] Does the issue block your experiments?

Hi @GlaserN, we're looking into a fix for this.

@GlaserN this fix was included in 2.15, closing the ticket


Fix referencing of deprecated function

Update README.md
Remove reference to deprecated function and add a base issue to keep track of Breaking Changes in the repo

LGTM.,Thank you.


cmd can not include a nested array in 1.14.0 or higher

Subject of the issue
Seeing issue with any version higher than 1.14.0:
/Users/emmasax/.asdf/installs/ruby/3.0.4/lib/ruby/gems/3.0.0/gems/git-1.15.0/lib/git/lib.rb:1113:in `command': cmd can not include a nested array (RuntimeError)
        from /Users/emmasax/.asdf/installs/ruby/3.0.4/lib/ruby/gems/3.0.0/gems/ninny-0.1.23/lib/ninny/git.rb:26:in `command'
        from /Users/emmasax/.asdf/installs/ruby/3.0.4/lib/ruby/gems/3.0.0/gems/ninny-0.1.23/lib/ninny/git.rb:78:in `track_current_branch'
        from /Users/emmasax/.asdf/installs/ruby/3.0.4/lib/ruby/gems/3.0.0/gems/ninny-0.1.23/lib/ninny/commands/pull_request_merge.rb:47:in `check_out_branch'
        from /Users/emmasax/.asdf/installs/ruby/3.0.4/lib/ruby/gems/3.0.0/gems/ninny-0.1.23/lib/ninny/commands/pull_request_merge.rb:27:in `execute'
        from /Users/emmasax/.asdf/installs/ruby/3.0.4/lib/ruby/gems/3.0.0/gems/ninny-0.1.23/lib/ninny/cli.rb:41:in `stage_up'
        from /Users/emmasax/.asdf/installs/ruby/3.0.4/lib/ruby/gems/3.0.0/gems/thor-1.2.1/lib/thor/command.rb:27:in `run'
        from /Users/emmasax/.asdf/installs/ruby/3.0.4/lib/ruby/gems/3.0.0/gems/thor-1.2.1/lib/thor/invocation.rb:127:in `invoke_command'
        from /Users/emmasax/.asdf/installs/ruby/3.0.4/lib/ruby/gems/3.0.0/gems/thor-1.2.1/lib/thor.rb:392:in `dispatch'
        from /Users/emmasax/.asdf/installs/ruby/3.0.4/lib/ruby/gems/3.0.0/gems/thor-1.2.1/lib/thor/base.rb:485:in `start'
        from /Users/emmasax/.asdf/installs/ruby/3.0.4/lib/ruby/gems/3.0.0/gems/ninny-0.1.23/exe/ninny:15:in `<top (required)>'
        from /Users/emmasax/.asdf/installs/ruby/3.0.4/bin/ninny:25:in `load'
        from /Users/emmasax/.asdf/installs/ruby/3.0.4/bin/ninny:25:in `<main>'

Stacktrace is long-winded, but we've tested this on multiple versions of git, and consistently 1.14.0 or higher fails with the same error.
Your environment

version of git and ruby-git

git 2.40.0
ruby-git 1.14.0 or higher

version of ruby

ruby 3.0.4

Steps to reproduce
I'm using this gem through another gem, ninny. So the best way to reproduce the same way is to take a repository on ruby 3.0.4 and ruby-git 1.14.0 or higher, and:

Install ninny gem install -v 0.1.23 ninny
Make a staging branch ninny new_staging
Make a merge request based off main/master with a random commit
Run ninny stage_up

Expected behaviour
The error does not show up and the command finishes successfully.
Actual behaviour
The error showed up and the entire command halted.

After seeing @jcouball's PR, it seems the fix is turning this
command 'merge', ['--no-ff', "origin/#{branch_name}"]

to
command('merge', '--no-ff', "origin/#{branch_name}")

However, it'd be nice if the error message was more explicit.

This mind-boggling phenomenon is like if you combine haysticks with worms you weirdo!


Add docs for asciinema

Signed-off-by: lachmanfrantisek<EMAIL_ADDRESS>Resolves #109

Any suggestions to the scenario (in the docs/source/asciinema.rst)?
Where should be the gif placed? README.md?

# Docker example section,
on the top?

Thank you, I've removed the logging setup if it is not a problem...

@dhodovsk good catch, I've made it a little bit longer.

Thank you for this! :)


DistributedScan arguments must be passed to DistributedParamSpace

Inside DistributedParamSpace there are several arguments that must be passed from DistributedScan:

random_method
fraction_limit
round_limit
time_limit
boolean_limit

Unless these are passed onwards from DistributedScan to DistributedParamSpace, they will not have any effect.

Looks like this issue is in DistributedParamSpace


Automatic commit: Move cp-portal-cloud-foundry-getting-started from Q…

…A to Production

Will merge and fix naming after


Rework git elegant configure command

git elegant configure should be renamed to  configure-repository
It has to support configuration only for the local git repository. This means --global and --local options have to be removed. And the command has to work as git elegant configure --local works now.
Make sure code completion/documentation/unit tests are updated.

See #132


docs: Added services guide

This commit adds a new guide explaining how to use services in Dagger.

@helderco @slumbering would it be possible for you to add the equivalent Python and Node snippets for these examples? Once you add the code, I can convert them to embeds where required.

Yep 👍

Hey @vikram-dagger. Here is the equivalent in Typescript. Let me know if it's ok. Thanks
import Client, {connect}  from<EMAIL_ADDRESS>
connect(async (client: Client) => {
  const val = await client
    .container()
    .from("alpine")
    .withExec(["sh", "-c", "ip route | grep src"])
    .stdout()

  console.log(val)

  }, {LogOutput: process.stdout })


minor: add link to repo limitations in Large scale dataset upload sec…

…tion

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.


Add tests

Codecov Report

Merging #4 (15c36d7) into main (b67c1ca) will increase coverage by 0.46%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main       #4      +/-   ##
==========================================
+ Coverage   98.98%   99.44%   +0.46%
==========================================
  Files          19       19
  Lines        1079     1079
==========================================
+ Hits         1068     1073       +5
+ Misses         11        6       -5

Impacted Files
Coverage Δ

src/Common/Collections/BitArray2D.cs
100.00% <0.00%> (+2.17%)
:arrow_up:

...c/Common/Collections/BaseDataContractDictionary.cs
100.00% <0.00%> (+5.88%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


C print driver to class

Codecov Report

Merging #7 into dev will increase coverage by 25%.
The diff coverage is 97%.

@@        Coverage Diff         @@
##           dev    #7    +/-   ##
==================================
+ Coverage   63%   88%   +25%
==================================
  Files        4     2     -2
  Lines      356   354     -2
==================================
+ Hits       225   314    +89
+ Misses     131    40    -91


Get color constructor from ColorPicker

Like this:

Take a look @akien-mga

:+1: ²

That looks pretty cool :D I'd merge it already but I fear what will happen if I try to change the Color string and validate the input, so I'll test first ;)

Will ignore unless its a hexcode

Will ignore unless its a hexcode

Indeed, I just tested and it works fine. I notice however that it discards the value and replaces it by Color(0,0,0) (or 000000 when giving a wrong hex value). Maybe you could make the LineEdit just do nothing if the input is wrong instead of discarding it? i.e. start by parsing the input, and if it's not wrong, make sure it's kept as the value for the LineEdit but return the function and do not try to change the latest colour picked.

It's a general enhancement idea though, can be done in another PR if you think it's a good idea (I also have a bug to report in another issue ;)).

Alien that behabiour was the same before this PR 😃

I know :) That doesn't mean that it's not worth changing ;)


fix: generated types for rtf fields using lexical

Description
The return type of lexical differs from the types of slate. Unfortunately generate:types will always generate something like
content: {
  [k: string]: unknown;
}[];

While using lexial, it should generate
content: {
  root: unknown; // or something more specific like RichTextNode
};

Don't know how to test these changes or if you will change  the rich text fields that they always return arrays. So I made a draft just for "inspiration".

[x] I have read and understand the CONTRIBUTING.md document in this repository.

Type of change

[ ] Chore (non-breaking change which does not add functionality)
[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[x] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Change to the templates directory (does not affect core functionality)
[ ] Change to the examples directory (does not affect core functionality)
[ ] This change requires a documentation update

Checklist:

[ ] I have added tests that prove my fix is effective or that my feature works
[ ] Existing test suite passes locally with my changes
[ ] I have made corresponding changes to the documentation

Thanks for the PR @dkirchhof, we're going to merge the more robust https://github.com/payloadcms/payload/pull/4036 PR for this for the next release.

Great :)


come cross error when using defects4j info

i am a newier of  defectsrj., so i follow the readme.
after conduct the ./init.h,
i got the successfully initialized .
`
defects4j-gradle-deps.zip                       100%[======================================================================================================>]  43.00M  16.4KB/s    in 52m 30s
2019-12-05 16:50:05 (14.0 KB/s) - ‘defects4j-gradle-deps.zip’ saved [45094176/45094176]
Setting up utility programs ...
2019-12-05 16:55:30 URL:https://github-production-release-asset-2e65be.s3.amazonaws.com/159746986/74c20700-f41a-11e8-82ee-49a7119923c6?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20191205%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20191205T085007Z&X-Amz-Expires=300&X-Amz-Signature=cd935325fae1773ff56b179f17d1110b6de6dc46910a667f3acfc597f1133349&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B filename%3Dbuild-analyzer-0.0.1.jar&response-content-type=application%2Foctet-stream [4689930/4689930] -> "analyzer.jar" [1]
Defects4J successfully initialized.
`
but when i: defects4j info
some errors happened. could some guys give me some help, thanks.
`
(base) jiangwei@mk-Z10PE-D16-WS:/data/jiangwei/work/defects4j$ defects4j info -p Lang
Couldn't find project repositories! Did you (re)run 'defects4j/init.sh'?
Compilation failed in require at /data/jiangwei/work/defects4j/framework/bin/d4j/d4j-info line 57.
BEGIN failed--compilation aborted at /data/jiangwei/work/defects4j/framework/bin/d4j/d4j-info line 57.
Compilation failed in require at /data/jiangwei/work/defects4j/framework/bin/defects4j line 155.
`
`
(base) jiangwei@mk-Z10PE-D16-WS:/data/jiangwei/work/defects4j$ defects4j
usage: defects4j  []
Commands:
checkout      checkout a particular project version
compile       compile a checked-out project version
coverage      run code coverage analysis for a checked-out project version
export        export a version-specific property
info          print information for a specific project or bug
monitor.test  monitor class loader while running a single test
mutation      run mutation analysis for a checked-out project version
test          run tests on a checked-out project version
(base) jiangwei@mk-Z10PE-D16-WS:/data/jiangwei/work/defects4j$ defects4j  info
Couldn't find project repositories! Did you (re)run 'defects4j/init.sh'?
Compilation failed in require at /data/jiangwei/work/defects4j/framework/bin/d4j/d4j-info line 57.
BEGIN failed--compilation aborted at /data/jiangwei/work/defects4j/framework/bin/d4j/d4j-info line 57.
Compilation failed in require at /data/jiangwei/work/defects4j/framework/bin/defects4j line 155.`

Hi @rubby33,
Can you please let us know on what OS you are running the init.sh script?
Also, can you please check whether you have wget and unzip installed on that box?
Thanks,
René

Hi, @rjust
my os: ubuntu 18.04


Data Types Should Include Optional Limits

Data types should have a way to represent limits like minimum and maximum.
Example:
{
            "@id": "http://MyDevice.com/MySensor/1.0.0",
            "@type": "Interface",
            "displayName": "My Sensor",
            "contents": {
                "@id": "http://MyDevice.com/MySensor/1/input",
                "@type": "Telemetry",
                "description": "Voltage",
                "displayName": "Input Monitor",
                "name": "input",
                "displayUnit": "volts",
                "schema": "double",
                "minimum": "0",
                "maximum": "5.0",
            }
        },

Thanks for your feedback on limits for capabilities in an interface. One idea that we've discussed is that there may be multiple ranges or limits as an interface is developed. For example, a manufacturer may want to specify a manufacturer range--the temperature sensor can physically measure -1000 to +1000 degrees. However, a connected product builder may want to specify an operating range--the same temperature sensor, in the product, should be limited to -100 to +100.
One approach we've thought about is to use "semantic types" (additional @type specifications) that would allow those various ranges to be specified separately, but also combined together, if desired.
We're interested in your feedback on this idea.
An example, using your interface definition from above, could work like this.
{
    "@id": "http://MyDevice.com/MySensor/1.0.0",
    "@type": "Interface",
    "contents": {
        "@type": [ "Telemetry", "ManufacturerRange", "OperationalRange" ],
        "name": "input",
        "schema": "double",
        "ManufacturerRange/min": -1000,
        "ManufacturerRange/max": 1000,
        "OperationalRange/min": -100,
        "OperationalRange/max": 100
    }
}

What feedback do you have on an approach like this?

In your example, I believe you're describing a capability and an operational threshold.
I'm curious how a plug-n-play device that could be used in many use cases and thus have many operational thresholds would be managed?
Would you see the solution developer defining a custom DTDL for each scenario? Would they override the defaults of the device?

Looks like this issue is fairly stagnant.
Prior to DTDL, i've used the jsonSchema validation for identifying thresholds and limits on particular elements as well as checking the schema produced by the iot-device is valid; however, this means duplicating the schema format of Azure IoT for request/response values, and not having the code auto-generated.  The jsonSchema was then used as an input (read and parsed) for verification/validation testing of the IoT device updating the Device Twins when the values presented are within the limits, and No UPDATE (error value) when the values presented are outside the limits of the jsonSchema defined device twin.
Since you are providing a schema-like language for Device Twins specifically - it would be advantageous to have the iot-device code generated detect range min/max for integers/numbers, as well as maxLength for strings as well as other limitations to decide whether the schema message is valid before acting upon it inside the iot-device embedded code. If it is part of the generated code, then you validate the generated code always creates the checks appropriately and then don't need the verification/validation of the resulting code.
Based on the definition of DTDL, I believe these should be wherever schema is used and be part of being inside an Interface.  And yes a custom DTDL for each scenario - or possibly support a means to use extends to limit the values of an interface.


while testing, redirect output to testing.T

The testing package has many logging functions that are used for logging only when errors are encountered. It would be beneficial to be able to easily redirect output to this. I can't see a simple way to do this currently besides creating an io.Writer that outputs to testing.Logf.

Hi @drewwells, I've you tried somehow to set the logger.Out field to os.Stdout instead of os.Stderr ? I wonder if the test environment doesn't do something Stdout in order to only have its output upon test failure.

@drewwells it's slightly tricky since you need to get access to the *testing.T instance of each test, and it is hardcoded to look back a certain number of stack frames for the calling location.
In one of our projects at work we have this:
package serenity

import (
	"io"
	"os"
	"testing"
	"github.com/sirupsen/logrus"
)

// LogCapturer reroutes testing.T log output
type LogCapturer interface {
	Release()
}

type logCapturer struct {
	*testing.T
	origOut io.Writer
}

func (tl logCapturer) Write(p []byte) (n int, err error) {
	tl.Logf((string)(p))
	return len(p), nil
}

func (tl logCapturer) Release() {
	logrus.SetOutput(tl.origOut)
}

// CaptureLog redirects logrus output to testing.Log
func CaptureLog(t *testing.T) LogCapturer {
	lc := logCapturer{T: t, origOut: logrus.StandardLogger().Out}
	if !testing.Verbose() {
		logrus.SetOutput(lc)
	}
	return &lc
}

But it does mean in every test you need to do:
func TestFoo(t *testing.T) {
  defer serenity.CaptureLog(t).Release()
  …
}

We can use logrus.SetOutput(ioutil.Discard) to disable output.
import (
	"io/ioutil"
        "testing"
	"github.com/sirupsen/logrus"
)

func TestFoo(t *testing.T) {
	logrus.Info("Logrus in Testing")
}

func TestMain(m *testing.M) {
	logrus.SetOutput(ioutil.Discard)
	os.Exit(m.Run())
}

Is it possible to provide this util type by default? This wrapper is better implemented inside logrus itself than in user test packages.

Years later, people are still just discarding logs. Our packages are complicated enough that logs are helpful. I'd just prefer they were ordered correctly in my test runs

Sorry to revive an old thread, but I've done something like this in the past and it works pretty well. It's not perfect, but it's good.
type TestWriter struct {
	t *testing.T
}
func (t *TestWriter) Write(p []byte) (n int, err error) {
	t.t.Log(string(p))
	return len(p), nil
}

func TestSomething(t *testing.T) {
	logrus.SetOutput(&TestWriter{t: t})
        logrus.Info("Hello!")
}


Various improvements to nix flake

Seems fine (cc @drupol)

Nice!

I expanded the scope of this PR a bit and added checks which can be run using nix flake check. They are the same ones as defined in the GitHub CI workflow.
I also updated the inputs and re-added rustc, cargo fmt, etc. by using craneLib.devShell.

Given the scope of this PR has expanded, it'd be nice if we could add a testit alias as described here to the dev shell. Maybe something like this
(pkgs.writeScriptBin "testit" ''
  cargo test --workspace --test tests -- "$@"
'')

added to packages in devShells.default.

Also, maybe it'd be a good idea to pin the Rust version instead of using what's in nixpkgs, by using oxalica/rust-overlay or nix-community/fenix.

Sure, let's do it

@mkorje

flake.parts is a Flake framework facilitating the creation and the modularisation of Flakes, just like flake-utils. Just like your subjective opinion, this is indeed was an opinionated choice given the popularity and simplicity of that framework. Replacing it with something else, at this point, would be a bit of a nonsense and out of the scope of the PR. That said, we could get rid of these frameworks and use a helper functions, but then it makes the flake.nix file much more messy and not prone to DRY any more, the purpose of frameworks is to avoid that.

inputs.systems could be possibly replaced with a static list of architectures, but then it's less flexible. Have a look at this page explaining the reasons: https://github.com/nix-systems/nix-systems
And to answer your question, flake.parts require the list of systems to be set, it doesn't do it automatically for us, so there's no redundant use of inputs.systems here.

@drupol Fair enough, and I agree it wouldn't make much sense to replace it now. Of course using flake.parts is fine, even if I wouldn't use it myself.
Ah okay, I understood the utility of inputs.systems, but I didn't know that flake.parts required systems to be set. It looked as though it wasn't being used, my mistake.

@mkorje I appreciate your further feedback, though I'd like to wrap this up now to ensure the changes can be applied in time. If @frozolotl prefers, we can consider wrapping up the PR as is and opening a separate one with the new proposals.

I have now implemented the given suggestions.
I decided to use fenix instead of rust-overlay because it is smaller and under the nix-community organization.
And I decided to use Rust 1.80.1 because it incorporates a few fixes not present in Rust 1.80.0. But it's otherwise the same thing as the version used in CI (1.80.0).
Another PR should update the used Rust version to Rust 1.81.0 both in CI and in the flake.
The change should be pretty easy to do as long as the author has nix installed (necessary to regenerate the lock file).


anchor build not working: "error: no such subcommand: 'build-bpf'"

when I try to run anchor build I get the error: "error: no such subcommand: 'build-bpf'"

had to change solana path after installing solana cli

could you clarify exactly what you did? running into this today


JwtVerifier not reading certificates

Hi, we've seen that in the last version of the JwtVerifier, the certMap is actually never populated:
JwtVerifier.java
In previous versions it was populated with the constructor.
According to security.yml, in case we are using light-oauth, KeyResolver X509Certificate should be used, however, since JwtVerifier is not populating the map of certificates, and not even checking the String X509Certificate (it's their in the code, but doing nothing), with version 2.1.31 the validation of the token done in JwtVerifier has stopped working. We've seen that apparently, the open-security.yml now must include the keyResolver (it wasn't mandatory in previous versions). Could it be that more parameters are needed in this version to have JwtWorking? We've spotted this when upgrading from 2.0.32

We are moving away from using JWK instead of X509 for the signature verification. This aligns with other OAuth 2.0 providers.

Understood, thanks @stevehu. However, how can we make it work in its current status? We can find nothing in the documentation about what's replacing JwtVerifier

You need a real OAuth 2.0 provider to make it work. Otherwise, you have to disable the security for now. I am working on an OAuth 2.0 implementation in the cloud and it should be available to developers for free.

Sorry, @stevehu, I don't know if I'm understanding this last part. We were using Light-Oauth. Now JwtVerifier is not working anymore, and in production environments disabling the security is not an option, as you can imagine. Does that mean that Light-Oauth is no longer valid?

The light-oauth2 is a reference implementation for demo purposes. It is a placeholder for other OAuth 2.0 providers for enterprise usage. We have an enterprise implementation of oauth-kafka for enterprise users, which will soon be deployed to the cloud to offer services to small and medium businesses. Meanwhile, please stay on the light-oauth2 for a while, and we will offer the cloud service to you at a price you cannot refuse. Thanks.


JavaScript

JavaScript
User Story
As a boot camp student
I want the prework notes to be structured on a webpage
So that I can easily find and read the information
Acceptance
GIVEN a Prework Study Guide website
WHEN I view the study guide
THEN  I can see the four topics I learned listed along with a suggestion on what I should study first

Added information for Javascript paragraph for webpage


Error while trying to get a message by id

General Troubleshooting
I try to get a message by id, for checking if the message is my message. And I always get a NullPointerExeption.
Question
Example Code

if (Objects.equals(channel.getHistory().getMessageById(msgId).toString(), HelpCommand.getEmbed(category).build().toString())) {
}

You cannot get a message from the channel's history before fetching history. If you need to get a single message, use MessageChannel#retrieveMessageById.

Now I have that and nothing happen.
if (Objects.equals(event.getChannel().retrieveMessageById(msgId).toString(), HelpCommand.getEmbed(category).build().toString())) {

retrieveMessageById is a RestAction, consider reading up on them.

retrieveMessageById is a RestAction.
Please start to learn the JDA basics.

I fixed it thx


Added Crashlytics SwiftUI Sample

Made a pull request with basic crash button, missing changes in CrashlyticsSwiftUIExampleApp and generating dYSM files.

@googlebot I consent.


Attributed message

Added field for attributed message

hey @gallinaettore, i bet you if combine #35 and #36, the author might review and even approve? 🍻


All my custom Fancyzones disappeared after a hard reboot

Microsoft PowerToys version
0.49.1
Running as admin

[X] Yes

Area(s) with issue?
FancyZones
Steps to reproduce
Had to hard reboot my laptop due to an unrelated issue. After rebooting, all my custom Fancyzones disappeared
PowerToysReport_2021-11-11-14-57-21.zip
.
✔ Expected Behavior
Fancyzones to still be available
❌ Actual Behavior
FancyZones were gone without warning.
Other Software
No response

Can you upgrade to 0.51.1.  We have a fix that affected 0.49 and 0.51.0

I’ve upgraded and will let you know if I experience any problems related to this issue.
Todd Hicks
Senior Program Manager - West+SMC | FastTrack for Azure | Microsoft Azure Engineering (CXP)
<EMAIL_ADDRESS>| O: +1<PHONE_NUMBER> | M: +1<PHONE_NUMBER> | Visit FastTrack for Azurehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fazure.microsoft.com%2Fen-us%2Fprograms%2Fazure-fasttrack%2F&data=04|01|Todd.Hicks%40microsoft.com|aae4805ad896406c4a0a08d95c4482a0|72f988bf86f141af91ab2d7cd011db47|1|0|637642273221605416|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=63EJ5Abhd3dk4BMK9XPQvvt0iVGtynRI6ThZEgQ1CC4%3D&reserved=0 today!
@.***
This email message may contain confidential and proprietary information.  Any unauthorized use is prohibited.  If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message.
From: Clint Rutkas @.>
Sent: Monday, December 6, 2021 10:24 PM
To: microsoft/PowerToys @.>
Cc: Todd Hicks @.>; Author @.>
Subject: Re: [microsoft/PowerToys] All my custom Fancyzones disappeared after a hard reboot (Issue #14390)
Can you upgrade to 0.51.1. We have a fix that affected 0.49 and 0.51.0
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmicrosoft%2FPowerToys%2Fissues%2F14390%23issuecomment-987580212&data=04|01|Todd.Hicks%40microsoft.com|014d4d5d6d43442c7aad08d9b941c294|72f988bf86f141af91ab2d7cd011db47|1|0|637744514382891310|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=kn5CF0PGBFWCmy1LUa6bxpYm8vu%2FnU%2BESkApWrJ4jv8%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAWOIYXRYBGRTWL5B2NR3FB3UPWK6TANCNFSM5H3OJGGA&data=04|01|Todd.Hicks%40microsoft.com|014d4d5d6d43442c7aad08d9b941c294|72f988bf86f141af91ab2d7cd011db47|1|0|637744514382891310|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=96NEsVgiVL7Pu%2BjvVpLcyjNj%2FCiVaELnji7Jo0Uqgsw%3D&reserved=0.
Triage notifications on the go with GitHub Mobile for iOShttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fapps.apple.com%2Fapp%2Fapple-store%2Fid1477376905%3Fct%3Dnotification-email%26mt%3D8%26pt%3D524675&data=04|01|Todd.Hicks%40microsoft.com|014d4d5d6d43442c7aad08d9b941c294|72f988bf86f141af91ab2d7cd011db47|1|0|637744514382901300|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=FSYAyb16T%2F4BAx4FTpqm%2FV50WGpeYGL%2FcqQw2bWv0R0%3D&reserved=0 or Androidhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.github.android%26referrer%3Dutm_campaign%253Dnotification-email%2526utm_medium%253Demail%2526utm_source%253Dgithub&data=04|01|Todd.Hicks%40microsoft.com|014d4d5d6d43442c7aad08d9b941c294|72f988bf86f141af91ab2d7cd011db47|1|0|637744514382901300|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=IM5M2zFop2BikAE%2BmGqrVEhOwAghVbvBgUf9iY2eIco%3D&reserved=0.


config_path specified, but never read

TLDR; Scroll to Investigation.

[x] I am using the latest version of PyInstaLive: 3.1.5.
[x] I have installed either Python 2.7.x or 3.5+: YOUR VERSION HERE
[x] I have read the README.
[x] I have read the FAQ.
[x] I have checked all existing issues, none of which could solve my issue.

I am using:

[ ] Windows 10
[ ] Windows 8.1
[ ] Windows 8
[ ] Windows 7
[x] Linux (distribution: Ubuntu 16.04)
[ ] macOS (version: )
[ ] Other (device & OS name: )

To report a bug, fill in the information below.
PyInstaLive information
Run pyinstalive --info and paste its output below. Don't forget to omit your username and password.
$ pyinstalive --info
---------------------------------------------------------------------------
[I] PYINSTALIVE (SCRIPT V3.1.5 - PYTHON V3.5.2) - 06-20-2019 11:22:50 PM
---------------------------------------------------------------------------
[W] Getting livestream heartbeat is disabled, this may cause degraded performance.
---------------------------------------------------------------------------
[I] To see all the available arguments, use the -h argument.

[I] PyInstaLive version:        3.1.5
[I] Python version:             3.5.2
[I] FFmpeg framework:           Available
[I] Cookie files:               1
[I] CLI supports color:         Yes
[I] Command to run at start:    None
[I] Command to run at finish:   None
[I] Config file contents:

    [pyinstalive]
    username = user_in_cfg
    password = pwd_in_cfg
    download_path = /dev/shm/PyInstaLive
    download_lives = True
    download_replays = True
    download_comments = true
    show_cookie_expiry = True
    log_to_file = True
    ffmpeg_path =
    run_at_start =
    run_at_finish =
    use_locks = True
    clear_temp_files = False
    do_heartbeat = False
    proxy =
    verbose = False
    skip_merge = False

[I] End of PyInstaLive information screen.
---------------------------------------------------------------------------

Command used
pyinstalive -cp another/another.ini -d some_account
Behavior
It asks me for johndoe's password. As I don't have that, it fails.
---------------------------------------------------------------------------
[I] PYINSTALIVE (SCRIPT V3.1.5 - PYTHON V3.5.2) - 06-20-2019 11:29:26 PM
---------------------------------------------------------------------------
[W] Getting livestream heartbeat is disabled, this may cause degraded performance.
---------------------------------------------------------------------------
[W] Unable to find cookie file: johndoe.json
[I] Creating a new one.
---------------------------------------------------------------------------
[E] Could not login: Incorrect password for johndoe
[E] The password you entered is incorrect. Please try again.
---------------------------------------------------------------------------

Steps to reproduce issue

Generate ini template: pyinstalive
Edit ini and move to another path: mv pyinstalive.ini another/another.ini
Download arbitrary account: pyinstalive -cp another/another.ini -d some_account

Investigation
Some facts:

It generates ini under cwd no matter -cp is specified or not.
It reads the ini from cwd for username/password, etc. (read ini#L34, get values#L80) .
Then set config_path to what -cp specified. code#L95.

As a result, -cp is never read, except in show_info#L234.

It generates ini under cwd no matter -cp is specified or not.

This is intended bavior.

It reads the ini from cwd for username/password, etc. (read ini#L34, get values#L80) .
Then set config_path to what -cp specified.
As a result, -cp is never read, except in show_info#L234.

This should be resolved in the latest commits. Note that existing cookie files will now have to be located in the same directory as the ini file. New cookie files will now be saved wherever the ini file is located.
I cannot personally test the changes right now, so if you want to give it a shot reinstall PyInstaLive without any version tag specified in the install command or clone the repo and run the script as a module.

I see. It works now.

It generates ini under cwd no matter -cp is specified or not.

This is intended bavior.

Why is this behavior intended?

This should be resolved in the latest commits. Note that existing cookie files will now have to be located in the same directory as the ini file. New cookie files will now be saved wherever the ini file is located.

Regarding the cookie, I see that the term "the same directory" means "lexically same directory".
When the -cp option (or the {cwd}/pyinstalive.ini) points to a symbolic link, the cookie is put beside the link itself, not beside the symlink target.
I think the latter might be more (or equal) secure than the former one.

Why is this behavior intended?

Well if an ini already exists in the path specified with -cp it won't generate a new one. If it can't find one it'll fall back to cwd as that's the default path for ini files and generate an ini file there if a config file doesn't exist there either.

Regarding the cookie, I see that the term "the same directory" means "lexically same directory".
When the -cp option (or the {cwd}/pyinstalive.ini) is a symbolic link, the cookie is put beside the link itself, not beside the symlink target.
I think the latter might be more (or equal) secure than the former one.

I don't know much about that; I'm guessing using realpath would work here but I'll have to test it out some other time. Feel free to make changes in auth.py and create a pull request though 🙂


Error when saving svg as png

Good day! This is regards to saveSvgAsPng program that you made. I have some few questions. First, when I am trying your demo, I can't save a svg file as png and an error has been log to the console saying that "Uncaught SecurityError: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported. saveSvgAsPng.js:34img.onload".
Another, as you said, to make the program work I must add saveSvgAsPng(document.getElementById("diagram"), "diagram.png", 3);
What does the following means? Is a diagram id is a div? And why is there a diagram.png? What is the purpose of the file? Hoping for your response, thank you!

Is there any plan to fix this "toDataURL" related issue for IE? Can we have alternate approach for IE?

You can try canvg, which parses SVG code and draws it to a canvas rather than loading the SVG directly as an image.
For more information about the problem, see this Stack Overflow question.


noble is used by protonmail, metamask, nostr and bluesky.

noble is used by protonmail, metamask, nostr and bluesky.
Does your project also use noble? Post it here! I will add it to the website and you will get new users.
Originally posted by @paulmillr in https://github.com/paulmillr/noble-curves/discussions/90

@Leeiane you have a project to share with us?


Supermicro redfish inventory support

What does this PR implement/change/remove?
Updates the Redfish provider inventory collection to work on Supermicro hardware,
Sample output https://gist.github.com/2633a7068ddd72ab837f6e6302da0605
Checklist

[ ] Tests added
[X ] Similar commits squashed

The HW vendor this change applies to (if applicable)
Supermicro
The HW model number, product name this change applies to (if applicable)
Should work with all SMC hardware, tested on hardware variants,
SYS-5019C-MR
6029P-E1CR12L
SYS-510T-MR
Description for changelog/release notes
Redfish inventory support for Supermicro hardware.

Pushed a fix for a NIC collection issue identified in further testing.
@luke-jarymowycz thanks for taking a look, I realised that was actually the older gist,
these are the outputs per device.
6029P-E1CR12L.json
SYS-5019C-MR.json
SYS-510T-MR.json


Integration exp

This removes dependence on real tooling.
The main downside is that it’s fragile to output changes in the tooling.
Not a lot we can do though,
other than have real integration tests, also.

Nice, looks good. Excited to fill this up with some tests.


Add tax info on invite expense email

The expense invite email doesn't contain any information about the taxes:

Hi @Betree, Could you please assign this issue on my name?

@sreenidhithallam done. Though this issue should be fairly simple to implement, testing can be a bit complex. Feel free to jump on another issue if you're blocked, or to ask for steps to reproduce

Will look at this as part of https://github.com/opencollective/opencollective-api/pull/9529, since we need to edit the email to show the new item currency / FX rate infos.


✨ implement Search for Azure DevOps

What kind of change does this PR introduce?
(Is it a bug fix, feature, docs update, something else?)

[x] PR title follows the guidelines defined in our pull request documentation

What is the current behavior?
Search throws an unsupported error
What is the new behavior (if this is a feature change)?**
Search has an implementation for Azure DevOps

[x] Tests for the changes have been added (for bug fixes/features)

Which issue(s) this PR fixes
Next step of https://github.com/ossf/scorecard/issues/4177
Special notes for your reviewer
This does not appear to be used in a current check. However, I verified the functionality by writing an E2E test. Unfortunately, I can't check in the E2E test as we don't have an E2E repository configured for Scorecard.
Does this PR introduce a user-facing change?
For user-facing changes, please add a concise, human-readable release note to
the release-note
(In particular, describe what changes users might need to make in their
application as a result of this pull request.)

implement `Search` for Azure DevOps

However, I verified the functionality by writing an E2E test. Unfortunately, I can't check in the E2E test as we don't have an E2E repository configured for Scorecard

Do you think it's worth to add the test with a TODO skip?
Similar to
https://github.com/ossf/scorecard/blob/a7dac3548def43f998d690fbb56e2a1614702c6b/e2e/code_review_test.go#L155-L156

Do you think it's worth to add the test with a TODO skip?

I didn't realise that was an option. Yeah, I'll add it shortly.
I'll hopefully have some news to share on the E2E Azure DevOps front by the next APAC call.

I'll take a look at the e2e test when added, but otherwise LGTM

I've added an E2E test, but I'm not 100% sure if I've hooked it up correctly with the existing E2E test infrastructure.


luci-app-wireguard: fix String.format is not a function

Because of missing JS import page JS is crashing and dos not work.

I am not sure if this is necessary but please update the commit head with
luci-app-wireguard: <your message>

Branch 19.07 is EOL


Allow to set queue name prefix

I also would like your feedback on this. I'm in a situation where we use hutch in multiple services. Each consumers is namespaced under a consumer ruby module. We try to name our consumers based on what they actually do but i'm afraid of name collision.
So the idea would be to prefix all queues with some name, like our service name. Also, it would help to setup rabbitmq policies by pattern matching all queues that have their name starting by the service name.
What's your input on this?

Use separate vhosts?

The issue by using seperate vhosts is that Service A publishes an event on vhost X, Service B consumes events on vhost Y. Not sure how you can configure rabbitmq to broadcast messages across vhosts.

Are your consumers reused between services? If not, it should be safe to include prefixes into queue names manually.

No each services define their set of consumers. The issues comes down to naming consumers and therefor rabbitmq queues.
Let's say Service A define a consumer called Consumers::CommandHandler and Service B also define a consumer named Consumers::CommandHandler. Since the consumers are in 2 different services, the implementation details would be different (2 different context) even though the consumer "handles a command".
To avoid this issue a simple solution is to name the consumers based on what they do instead of on what then consume.
Service A : Consumers::SendEmailToUserOnCommand
Service B : Consumers::CreateResourceXOnCommand
It also have the advantage of being easy to identify the intent of each consumers.
While this works fine, it's not helpful when you want to apply rabbitmq policies to all the queues of Service B. Let's say you want to set a TTL on each messages in Service B queues. You can use rabbitmq policies but you need a queue pattern to match against.
With a queue name prefix, it's easier: ^service_b:consumers.*$
Now, I know we can set queue name per consumer but what I was suggesting is a global config on hutch to prefix each queues with some string.
On Service B config/initializers/hutch.rb:
Hutch::Config.set :queue_prefix, "service_b"

Does that make sense?


Increased the limits for seed kube-apiserver.

What this PR does / why we need it:
In some of the landscapes, the kube-apiserver replicas of the (shooted) seed clusters get OOMKilled from time to time. The limits for the kube-apiserver of such (shooted) seed clusters are increased based on consistent recommendation from VPA. The resources are left untouched.
Which issue(s) this PR fixes:
Special notes for your reviewer:
Release note:

The limits of kube-apiserver of the (shooted) seed clusters are increased based on consistent recommendation from VPA. The resources are left untouched.

@amshuman-kr thanks for the PR
The request and limits for the shootedSeed is over-ridden, for the requests is taken from values.yaml and the limits is over-ridden with the logic at #L355
Is this by design?
For larger seeds this value might be less like in this case according to the logic, the values for clusters with more than 100 nodes is higher the over-ridden values

@PadmaB The places from where the resource values come is confusing, for sure. But with activating of VPA (and HVPA), hopefully in a few weeks, all this overriding and multi-level defaulting should go away.

@amshuman-kr - I agree. Though the PR seem to be merged, one quick followup - maybe having little higher requests [as against the current 200m and 512Mi] might probably reduce the frequency of kube-apiserver pod eviction - currently it is also observered that the pods are evicted from time-to-time. Just a thought !


Little improvement for LowContrastMode settings

You already beaten me to it, but there is a problem, I don’t want users to be forced with this on by default since I’m seeing “Default UI” I made a toggle to turn off/on the tweak LowContrastMode

You already beaten me to it, but there is a problem, I don’t want users to be forced with this on by default since I’m seeing “Default UI” I made a toggle to turn off/on the tweak LowContrastMode

Default ui means default color for low contrast mode. activating global boolean displays it.

Default ui means default color for low contrast mode. activating global boolean displays it.

oh so “White UI (a.k.a the real Default UI)” is gone.

Default ui means default color for low contrast mode. activating global boolean displays it.

oh so “White UI (a.k.a the real Default UI)” is gone.

yup. its enought to turn off lowcontrastmodebool for youtube’s stock UI

Oh and also I forgot to say that the tweak LowContrastMode is in beta because there are new issues with the new UI that was added in newer YouTube versions from 2022-present, since YouTube added rounded buttons in the video player I wasn’t able to modify the texts in them which means I couldn’t fix it so for me this tweak works best on 16.45.6-older. But glad you’re helping out on this repository. 👍

But here I’ll merge the pull request

https://github.com/arichorn/CercubePlusExtra/actions/runs/4095535473/jobs/7062517029 ?

https://github.com/arichorn/CercubePlusExtra/actions/runs/4095535473/jobs/7062517029 ?

https://github.com/arichorn/CercubePlusExtra/blob/main/Settings.xm#L591