Proxy instance never recovered from "Error from xDS server"

Hi 👋
I've just encountered a case where a proxy instance didn't recover from a xDS server restart, and therefore that proxy never got any cluster updates after that.
The last log entries are:
{"timestamp":"2023-03-29T08:29:14.191824Z","level":"INFO","fields":{"message":"received response","version":"19","r#type":"type.googleapis.com/envoy.config.listener.v3.Listener","nonce":"246528b2-ed22-4eaf-a738-ebda64d8c6fe"},"target":"quilkin::xds::client","filename":"src/xds/client.rs"}
{"timestamp":"2023-03-29T08:29:14.191855Z","level":"INFO","fields":{"message":"applying resource"},"target":"quilkin::xds::client","filename":"src/xds/client.rs"}
{"timestamp":"2023-03-29T08:29:14.192037Z","level":"INFO","fields":{"message":"received response","version":"0","r#type":"type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment","nonce":"4e6953ac-cedb-474a-8380-a57b95e04e61"},"target":"quilkin::xds::client","filename":"src/xds/client.rs"}
{"timestamp":"2023-03-29T08:29:14.192057Z","level":"INFO","fields":{"message":"applying resource"},"target":"quilkin::xds::client","filename":"src/xds/client.rs"}
{"timestamp":"2023-03-29T08:29:14.693557Z","level":"INFO","fields":{"message":"received response","version":"19","r#type":"type.googleapis.com/envoy.config.listener.v3.Listener","nonce":"c59edd5d-4ec4-4681-9b39-17b3475d9c2d"},"target":"quilkin::xds::client","filename":"src/xds/client.rs"}
{"timestamp":"2023-03-29T08:29:14.693587Z","level":"INFO","fields":{"message":"applying resource"},"target":"quilkin::xds::client","filename":"src/xds/client.rs"}
{"timestamp":"2023-03-29T08:29:14.693744Z","level":"INFO","fields":{"message":"received response","version":"0","r#type":"type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment","nonce":"a5199b7b-74c3-4a53-afb3-ea56b127b7e2"},"target":"quilkin::xds::client","filename":"src/xds/client.rs"}
{"timestamp":"2023-03-29T08:29:14.693763Z","level":"INFO","fields":{"message":"applying resource"},"target":"quilkin::xds::client","filename":"src/xds/client.rs"}
{"timestamp":"2023-03-29T08:29:14.767234Z","level":"WARN","fields":{"message":"Error from xDS server","error":"status: Unknown, message: \"error reading a body from connection: stream closed because of a broken pipe\", details: [], metadata: MetadataMap { headers: {} }"},"target":"quilkin::xds::client","filename":"src/xds/client.rs"}

I do not have a way to reproduce unfortunately. I had similar issues before (eg #682), but haven't seen it lately.
Quilkin version: https://github.com/goalsgame/quilkin/tree/dns-lookup-patch

Thank you for your issue! I think I've found the fix in #727, would you mind trying with that?

I tried a few times with this version, and it reconnected properly every time.

Alright, I'll close it for now as resolved, and we can re-open this issue if you run into it again.


Another possible persistent desktop approach

I'm still hoping that Slack will just add a setting for this, but if not, one could probably adopt this approach:

https://medium.com/@dany74q/injecting-js-into-electron-apps-and-adding-rtl-support-for-microsoft-teams-d315dfb212a6
https://github.com/dany74q/microsoft-teams-rtl-runner

I'm still hoping that Slack will just add a setting for this

FYI:

We've started working on a preference that will let you return to the previous message composer. We don't have a specific release date to share right now — it's this team's top and only priority, however, and we expect to have it available on the desktop within a couple of weeks, with Android following shortly thereafter.

-- Slack support response

Yep, I got that response to my support request too. 😄
No reason to spend time on this, then.


Initialization failure with dynamic lines

Initialization for a system with all dynamic lines (ie no static lines) fails to converge to a stable equilibrium. The same system with all static lines converges, and  the dynamic/static nature of the lines should not change the steady state solution.

@m-bossart thanks, do you have a case we can use to reproduce?

This is the 02_line_dynamics.jl example script with all of the lines made dynamic instead of just one, which reproduces what I see.
# Line Modeling simulation with [PowerSimulationsDynamics.jl](https://github.com/NREL-SIIP/PowerSimulationsDynamics.jl)

# **Originally Contributed by**: Rodrigo Henriquez and José Daniel Lara

# ## Introduction

# This tutorial will introduce an example of considering dynamic lines in `PowerSimulationsDynamics`.
# Note that this tutorial is for `PowerSimulationsDynamics`.

# This tutorial presents a simulation of a three-bus system, with an infinite bus (represented as a
# voltage source behind an impedance) at bus 1, a one d- one q- machine on bus 2 and an inverter
# of 19 states, as a virtual synchronous machine at bus 3. The perturbation will be the trip of
# two of the three circuits (triplicating its resistance and impedance) of the line that connects
# bus 1 and bus 3. This case also consider a dynamic line model for connection between buses
# 2 and 3. We will compare it against a system without dynamic lines.

# In addition, note that `PowerSimulationsDynamics` will convert ConstantPower loads to RLC
# loads for transient simulations.

# It is recommended to check `Tutorial 1: OMIB` first, since that includes more details and
# explanations on all definitions and functions.

# # Step 1: Package Initialization
using SIIPExamples
using PowerSimulationsDynamics
PSID = PowerSimulationsDynamics
using PowerSystems
using Sundials
using Plots

# # Step 2: Data creation
file_dir = joinpath(
    dirname(dirname(pathof(SIIPExamples))),
    "script",
    "4_PowerSimulationsDynamics_examples",
    "Data",
)
threebus_sys = System(joinpath(file_dir, "threebus_sys.json"));

# In addition, we will create a new copy of the system on which we will simulate the same
# case, but will consider dynamic lines:

threebus_sys_dyn = deepcopy(threebus_sys);

# # Step 3: Create the fault and simulation on the Static Lines system

# First, we construct the perturbation, by properly computing the new Ybus on the system:

#Make a copy of the original system
sys2 = deepcopy(threebus_sys)
#Triplicates the impedance of the line named "BUS 1-BUS 3-i_1"
fault_branches = get_components(ACBranch, sys2)
for br in fault_branches
    if get_name(br) == "BUS 1-BUS 3-i_1"
        br.r = 3 * br.r
        br.x = 3 * br.x
        b_new = (from = br.b.from / 3, to = br.b.to / 3)
        br.b = b_new
    end
end
#Obtain the new Ybus
Ybus_fault = Ybus(sys2).data
#Define Fault: Change of YBus
Ybus_change = NetworkSwitch(
    1.0, #change at t = 1.0
    Ybus_fault, #New YBus
);

# Now, we construct the simulation:

#Time span of our simulation
tspan = (0.0, 30.0)

#Define Simulation
sim = PSID.Simulation(
    pwd(), #folder to output results
    threebus_sys, #system
    tspan, #time span
    Ybus_change, #Type of perturbation
)

# We can obtain the initial conditions as:

#Will print the initial states. It also give the symbols used to describe those states.
print_device_states(sim)
#Will export a dictionary with the initial condition values to explore
x0_init = PSID.get_initial_conditions(sim)

# # Step 4: Run the simulation of the Static Lines System

#Run the simulation
PSID.execute!(
    sim, #simulation structure
    IDA(), #Sundials DAE Solver
    dtmax = 0.02, #Maximum step size
)

# # Step 5: Store the solution

series2 = get_voltagemag_series(sim, 102)
zoom = [
    (series2[1][ix], series2[2][ix]) for
    (ix, s) in enumerate(series2[1]) if (s > 0.90 && s < 1.6)
];

# # Step 3.1: Create the fault and simulation on the Dynamic Lines system

# An important aspect to consider is that DynamicLines must not be considered in the computation of the Ybus. First we construct the Dynamic Line, by finding the Line named "BUS 2-BUS 3-i_3", and then adding it to the system.

# get component return the Branch on threebus_sys_dyn named "BUS 2-BUS 3-i_3"
#dyn_branch = DynamicBranch(get_component(Branch, threebus_sys_dyn, "BUS 2-BUS 3-i_3"))
# Adding a dynamic line will inmediately remove the static line from the system.
#add_component!(threebus_sys_dyn, dyn_branch)

#Add dynamic lines
for branch in get_components(Branch, threebus_sys_dyn)
        dyn_branch = DynamicBranch(branch)
        add_component!(threebus_sys_dyn, dyn_branch)
end
# Similarly, we construct the Ybus fault by creating a copy of the original system, but
# removing the Line "BUS 2-BUS 3-i_3" to avoid considering it in the Ybus:

#Make a copy of the original system
sys3 = deepcopy(threebus_sys);
#Remove Line "BUS 2-BUS 3-i_3"
remove_component!(Line, sys3, "BUS 2-BUS 3-i_3")
#remove_component!(Line, sys3, "BUS 1-BUS 2-i_2")
#remove_component!(Line, sys3, "BUS 1-BUS 3-i_1")
#Triplicates the impedance of the line named "BUS 1-BUS 2-i_1"
fault_branches2 = get_components(Line, sys3)
for br in fault_branches2
    if get_name(br) == "BUS 1-BUS 3-i_1"
        br.r = 3 * br.r
        br.x = 3 * br.x
        b_new = (from = br.b.from / 3, to = br.b.to / 3)
        br.b = b_new
    end
end
#Obtain the new Ybus
Ybus_fault_dyn = Ybus(sys3).data
#Define Fault: Change of YBus
Ybus_change_dyn = PowerSimulationsDynamics.NetworkSwitch(
    1.0, #change at t = 1.0
    Ybus_fault_dyn, #New YBus
)

# # Step 4.1: Run the simulation of the Dynamic Lines System

# Now, we construct the simulation:

# Time span of our simulation
tspan = (0.0, 30.0)

# Define Simulation
sim_dyn = PSID.Simulation(
    pwd(), #folder to output results
    threebus_sys_dyn, #system
    tspan, #time span
    Ybus_change_dyn, #Type of perturbation
)

# Run the simulation
PSID.execute!(
    sim_dyn, #simulation structure
    IDA(), #Sundials DAE Solver
    dtmax = 0.02, #Maximum step size
)

# We can obtain the initial conditions as:

#Will print the initial states. It also give the symbols used to describe those states.
print_device_states(sim_dyn)
#Will export a dictionary with the initial condition values to explore
x0_init_dyn = PSID.get_initial_conditions(sim_dyn)

# # Step 5.1: Store the solution

series2_dyn = get_voltagemag_series(sim_dyn, 102)
zoom_dyn = [
    (series2_dyn[1][ix], series2_dyn[2][ix]) for
    (ix, s) in enumerate(series2_dyn[1]) if (s > 0.90 && s < 1.6)
];

# # Step 6.1: Compare the solutions:

# We can observe the effect of Dynamic Lines

Plots.plot(series2_dyn, label = "V_gen_dyn")
Plots.plot!(series2, label = "V_gen_st", xlabel = "Time [s]", ylabel = "Voltage [pu]")

# that looks quite similar. The differences can be observed in the zoom plot:

Plots.plot(zoom_dyn, label = "V_gen_dyn")
Plots.plot!(zoom, label = "V_gen_st", xlabel = "Time [s]", ylabel = "Voltage [pu]")


ImportError: cannot import name 'cuda_utils' from partially initialized module 'vllm'

Here's my test code
'
from vllm import LLM, SamplingParams
prompts = [
"Tell me about AI",
"Write a story about llamas",
"What is 291 - 150?",
"How much wood would a woodchuck chuck if a woodchuck could chuck wood?",
]
prompt_template=f'''System: A chat between a curious human and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the human's questions.
Human: {prompt}
Assistant:
'''
prompts = [prompt_template.format(prompt=prompt) for prompt in prompts]
sampling_params = SamplingParams(temperature=0.8, top_p=0.95)
llm = LLM(model="TheBloke/AquilaChat2-34B-16K-AWQ", quantization="awq", dtype="auto")
outputs = llm.generate(prompts, sampling_params)
Print the outputs.
for output in outputs:
prompt = output.prompt
generated_text = output.outputs[0].text
print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}")
'
I tried to run and it returned this error for me
ImportError: cannot import name 'cuda_utils' from partially initialized module 'vllm' (most likely due to a circular import) (/home/ps/app/edison/vllm/vllm/init.py)
environment
I followed the docs exactly

can you paste the full stacktrace? Additionally, does your current working directory contains files or folders named vllm or cuda_utils? This error is most likely that there are files with name conflict.

can you paste the full stacktrace? Additionally, does your current working directory contains files or folders named vllm or cuda_utils? This error is most likely that there are files with name conflict.

Thank you very much for your answer. I can successfully run the code by placing it outside the file.

can any please help @Edisonwei54 or @simon-mo i tired placing it outside the vllm folder and running but still no luck. need help.


etcdserver/stats: give correct name for leader id

The actual value is leader's ID, not its Name.
We should have correct member name in leader info.

This is a legacy stats from 0.4 and we are not going to change this. etcd2 expose this information via /metrics and /debug/vars.

Got it. thanks!


RSC15a

Work from #466

Honestly, I'd like the test to take the approach I mentioned here: https://github.com/ably/ably-ios/pull/466#r75277065

@tcard Changed. PTAL at f88d683.


Added HA add-on support the proper way

Breaking change

Proposed change

Type of change

[ ] Dependency upgrade
[ ] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (which adds functionality to an existing integration)
[ ] Breaking change (fix/feature causing existing functionality to break)
[x] Code quality improvements to existing code or addition of tests

Additional information

This PR fixes or closes issue: fixes #
This PR is related to issue:
Link to documentation pull request:

Checklist

[ ] The code change is tested and works locally.
[ ] Local tests pass. Your PR cannot be merged unless tests pass
[ ] There is no commented out code in this PR.
[ ] I have followed the [development checklist][dev-checklist]
[ ] The code compiles without warnings (code quality chek)
[ ] Tests have been added to verify that the new code works.

If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated for www.home-assistant.io

Codecov Report

Merging #621 (597dfb0) into dev (0e4e6fd) will increase coverage by 0.06%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##              dev     #621      +/-   ##
==========================================
+ Coverage   80.20%   80.26%   +0.06%
==========================================
  Files         112      112
  Lines        2899     2899
  Branches      309      309
==========================================
+ Hits         2325     2327       +2
+ Misses        448      447       -1
+ Partials      126      125       -1

Flag
Coverage Δ

unittests
80.26% <ø> (+0.06%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...mon.HassClient/Internal/HomeAssistantConnection.cs
87.61% <0.00%> (+1.90%)
:arrow_up:

Continue to review full report at Codecov.

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


Fixed typo

Changed the type of quotation marks used to fit the rest of guide.

Thanks @7aqdxe6f!


[test] test zizmor

hm, that doesn't do anything

I've enabled it but it doesn't do anything at all:

I guess I'll remove sarif again

I've changed things to just fail on exit code in c5b593a34c9d51fac31f3c3e158db7b15a004804 since this is not working.


Render worker stop on error despite not passed flag

Describe the bug
This only happens on very specific but not rare situation. I'm using nexrender-worker without the stop on error flag which means I expect the worker to keep running even when it come across an error. The problem is if the server the worker is polling is down while the worker finish rendering it will throw and stops.
It stems from this line in the catch block that is supposed to tell the server that the job has failed but since the scenario is that the server is down, it cannot do that which caused a uncaught rejected promise in the catch block and will halt the worker regardless.
Information about environment

Which version of nexrender are you using? 1.23.0
What kind of the setup do you have? server+worker
Are you using pre-built binaries or globally installed npm packages? Locally installed npm packages, used programmatically
Which kind (and version) of operating system you are running it in? macOS Big Sur
Any additional information that might be helpful

Expected behavior
The worker should keep running despite the error unless passed the stop on error flag. The job won't be updated to have errored which may be a problem but in my case I have other logic to handle this to it's not a problem for me.
I can submit a PR that catches if the offending line failed if this fix is desired.

Great find @limzykenneth !
Seems like you are right, it attempts to send a request to the remote and fails.
How do you think, will removing await help? Or should we also add a .catch(() => {}) with empty handler to make sure it wont trigger an exception?
A PR with a fix from your side would be greatly appreciated!

Since it's only that one line that is expected to fail, for my fix I've added .catch(() => {}) but for the handler I repeated the if (settings.stopOnError) { block to still stop on error if desired and provide error message otherwise. It's a bit redundant but I can't think of an elegant solution just yet.
If that's fine with you I'll put together a PR.

Oh, yeah, that additional condition inside that you've mentioned indeed makes sense. Did not think about such a case 👍

If that's fine with you I'll put together a PR.

Sure, that sounds amazing! Thank you!


Add TNT driver

Is it possible to add a teamtnt/laravel-scout-tntsearch-driver?

We can certainly look into adding support for this down the track - we are already importing the TNTSearch library for some fuzzy searching functionality.


Image of BoxDecoration isn't clipped to circle when shape is BoxShape.circle

When shape of BoxDecoration is BoxShape.circular the image is clipped with an oval instead of circle. Dimensions of this oval are tightly constrained by the size of the decorated widget.

Screenshot

The problem is more obvious when decoration has png picture and background color.

Example with Flutter logo png

Expected behavior is that the image would be clipped to circle just like background color.

Expected this

Source code

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatelessWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(title),
      ),
      body: Container(
        height: double.infinity,
        width: double.infinity,
        decoration: BoxDecoration(
          shape: BoxShape.circle,
          color: Colors.red,
          image: DecorationImage(
            fit: BoxFit.cover,
            image: AssetImage('assets/logo_flutter.png'),
          ),
        ),
      ),
    );
  }
}

flutter doctor -v
[✓] Flutter (Channel master, 1.21.0-8.0.pre.122, on Mac OS X 10.15.5 19F101,
    locale en-UA)
    • Flutter version 1.21.0-8.0.pre.122 at /Users/timekone/development/flutter
    • Framework revision 7c6f9dd239 (5 hours ago), 2020-08-09 10:31:03 -0400
    • Engine revision 6d86e67f04
    • Dart version 2.10.0 (build 2.10.0-4.0.dev<PHONE_NUMBER>)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at /Users/timekone/Library/Android/sdk
    • Platform android-29, build-tools 29.0.3
    • Java binary at: /Users/timekone/Library/Application
      Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/193.6514223/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.4.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.4.1, Build version 11E503a
    • CocoaPods version 1.8.4

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

[✓] Android Studio (version 4.0)
    • Android Studio at /Users/timekone/Library/Application
      Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/193.6514223/Android
      Studio.app/Contents
    • Flutter plugin version 47.1.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)

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

[✓] Connected device (3 available)
    • Android SDK built for x86 (mobile) • emulator-5554 • android-x86    •
      Android 10 (API 29) (emulator)
    • Web Server (web)                   • web-server    • web-javascript •
      Flutter Tools
    • Chrome (web)                       • chrome        • web-javascript •
      Google Chrome 84.0.4147.105

• No issues found!

I created a PR, but it highlighted another problem.
The image is painted behind the whole BoxDecoration, not just the visible area(the circle).
Here are 2 examples with a vertical image and DecorationImage's fit set to BoxFit.contain.

Variant 1(with my PR)

Variant 2

I think variant 2 would preferable.

Source code

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatelessWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(title),
      ),
      body: Container(
        height: double.infinity,
        width: double.infinity,
        decoration: BoxDecoration(
          shape: BoxShape.circle,
          color: Colors.red,
          image: DecorationImage(
            fit: BoxFit.contain,
            image: AssetImage('assets/logo_lockup_flutter_vertical_wht.png'),
          ),
        ),
      ),
    );
  }
}

flutter doctor -v
[✓] Flutter (Channel master, 1.21.0-8.0.pre.122, on Mac OS X 10.15.5 19F101,
    locale en-UA)
    • Flutter version 1.21.0-8.0.pre.122 at /Users/timekone/development/flutter
    • Framework revision 7c6f9dd239 (5 hours ago), 2020-08-09 10:31:03 -0400
    • Engine revision 6d86e67f04
    • Dart version 2.10.0 (build 2.10.0-4.0.dev<PHONE_NUMBER>)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at /Users/timekone/Library/Android/sdk
    • Platform android-29, build-tools 29.0.3
    • Java binary at: /Users/timekone/Library/Application
      Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/193.6514223/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.4.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.4.1, Build version 11E503a
    • CocoaPods version 1.8.4

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

[✓] Android Studio (version 4.0)
    • Android Studio at /Users/timekone/Library/Application
      Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/193.6514223/Android
      Studio.app/Contents
    • Flutter plugin version 47.1.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)

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

[✓] Connected device (3 available)
    • Android SDK built for x86 (mobile) • emulator-5554 • android-x86    •
      Android 10 (API 29) (emulator)
    • Web Server (web)                   • web-server    • web-javascript •
      Flutter Tools
    • Chrome (web)                       • chrome        • web-javascript •
      Google Chrome 84.0.4147.105

• No issues found!

What do you think?
Should I edit my pull request to include changes for behavior like in variant 2?

Code Sample
import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatelessWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(title),
      ),
      body: Container(
        height: double.infinity,
        width: double.infinity,
        decoration: BoxDecoration(
          shape: BoxShape.circle,
          color: Colors.red,
          image: DecorationImage(
            fit: BoxFit.cover,
            image: NetworkImage('https://i.imgur.com/QCNbOAo.png'),
          ),
        ),
      ),
    );
  }
}

flutter doctor -v
[✓] Flutter (Channel master, 1.21.0-8.0.pre.122, on Mac OS X 10.15.6 19G73,
    locale en-GB)
    • Flutter version 1.21.0-8.0.pre.122 at /Users/taha/Code/flutter_master
    • Framework revision 7c6f9dd239 (25 hours ago), 2020-08-09 10:31:03 -0400
    • Engine revision 6d86e67f04
    • Dart version 2.10.0 (build 2.10.0-4.0.dev<PHONE_NUMBER>)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.1)
    • Android SDK at /Users/taha/Code/sdk
    • Platform android-30, build-tools 30.0.1
    • ANDROID_HOME = /Users/taha/Code/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.0)
    • Xcode at /Applications/Xcode-beta.app/Contents/Developer
    • Xcode 12.0, Build version 12A8179i
    • CocoaPods version 1.9.3

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

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 48.0.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

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

[✓] Connected device (4 available)
    • SM M305F (mobile) • 32003c30dc19668f • android-arm64  • Android 10 (API 29)
    • macOS (desktop)   • macos            • darwin-x64     • Mac OS X 10.15.6 19G73
    • Web Server (web)  • web-server       • web-javascript • Flutter Tools
    • Chrome (web)      • chrome           • web-javascript • Google Chrome 84.0.4147.105

• No issues found!


Create KodaBot account for Github

https://github.com/organizations/kodadot/settings/apps/new ?

I can handover personal token for now and YØLØ

https://github.com/organizations/kodadot/settings/apps/new ? https://github.com/settings/apps/new ?
Which one @petersopko ?

sorry didn't see this, it's Personal access token

I will take this

I will take this

test

ill take this

Woow awesome 👍
May set @kodabot to paste payout messages instead of @yangwao ?

Woow awesome 👍
May set @kodabot to paste payout messages instead of @yangwao ?

Sure thing, I'm ready to handover either token or account whenever @yangwao feels like setting it up

ASSIGNMENT EXPIRED - @petersopko has been unassigned.

But hey, it works (so far)

@yangwao I think this one can be closed as well?

Sure noted in

#2116


stellar-core restarts automatically

Hello, stellar-core automatically restarts more frequently after updating to the latest version. I'm not quite sure if this is normal. It will cause the node to be in a state of catching up all the time.
Version Information：
"horizon_version": "2.15.1-e29c7803d487c3f5b44a74773e6277fee16482cf",
"core_version": "stellar-core 18.3.0 (2f9ce11b2e7eba7d7d38b123ee6da9e0144249f8)",
error log:
ime="2022-03-10T15:21:19.695+08:00" level=error msg="failed to load the stellar-core info" err="http request errored: Get "http://localhost:11626/info\": read tcp <IP_ADDRESS>:36120-><IP_ADDRESS>:11626: read: connection reset by peer" pid=24897 stack="[main.go:43 client.go:67 app.go:223 app.go:435 asm_amd64.s:1581]"
time="2022-03-10T15:21:19.696+08:00" level=warning msg="could not load stellar-core info: http request errored: Get "http://localhost:11626/info\": read tcp <IP_ADDRESS>:36118-><IP_ADDRESS>:11626: read: connection reset by peer" pid=24897
time="2022-03-10T15:21:19.759+08:00" level=error msg="failed to load the stellar-core info" err="http request errored: Get "http://localhost:11626/info\": dial tcp [::1]:11626: connect: connection refused" pid=24897 stack="[main.go:43 client.go:67 app.go:223 app.go:435 asm_amd64.s:1581]"
time="2022-03-10T15:21:19.764+08:00" level=warning msg="could not load stellar-core info: http request errored: Get "http://localhost:11626/info\": dial tcp [::1]:11626: connect: connection refused" pid=24897
time="2022-03-10T15:21:19.857+08:00" level=error msg="Error in ingestion state machine" current_state="resume(latestSuccessfullyProcessedLedger=39963971)" error="error getting ledger blocking: error reading frame length: unmarshalling XDR frame header: xdr:DecodeUint: EOF while decoding 4 bytes - read: '[]'" next_state=start pid=24897 service=ingest
time="2022-03-10T15:21:20.378+08:00" level=error msg="failed to load the stellar-core info" err="http request errored: Get "http://localhost:11626/info\": dial tcp [::1]:11626: connect: connection refused" pid=24897 stack="[main.go:43 client.go:67 app.go:223 app.go:435 asm_amd64.s:1581]"
time="2022-03-10T15:21:20.378+08:00" level=warning msg="could not load stellar-core info: http request errored: Get "http://localhost:11626/info\": dial tcp [::1]:11626: connect: connection refused" pid=24897
time="2022-03-10T15:21:21.378+08:00" level=error msg="failed to load the stellar-core info" err="http request errored: Get "http://localhost:11626/info\": dial tcp [::1]:11626: connect: connection refused" pid=24897 stack="[main.go:43 client.go:67 app.go:223 app.go:435 asm_amd64.s:1581]"
time="2022-03-10T15:21:21.378+08:00" level=warning msg="could not load stellar-core info: http request errored: Get "http://localhost:11626/info\": dial tcp [::1]:11626: connect: connection refused" pid=24897
time="2022-03-10T15:21:22.378+08:00" level=error msg="failed to load the stellar-core info" err="http request errored: Get "http://localhost:11626/info\": dial tcp [::1]:11626: connect: connection refused" pid=24897 stack="[main.go:43 client.go:67 app.go:223 app.go:435 asm_amd64.s:1581]"
time="2022-03-10T15:21:22.378+08:00" level=warning msg="could not load stellar-core info: http request errored: Get "http://localhost:11626/info\": dial tcp [::1]:11626: connect: connection refused" pid=24897
time="2022-03-10T15:21:23.239+08:00" level=info msg="Submitter result" duration=0.000621642 err="tx failed: AAAAAAAAASz////0AAAAAA==" pid=24897 req=stellar/XBU6gesj6f-6517991 service=txsub.submitter
time="2022-03-10T15:21:26.003+08:00" level=error msg="History: Could not download file: archive Blockdaemon_Validator_3 maybe missing file history/02/61/cd/history-0261cd7f.json" pid=24897 service=ingest subservice=stellar-core
time="2022-03-10T15:21:26.003+08:00" level=error msg="History: Missing HAS for ledger 39964031: maybe stale archive Blockdaemon_Validator_3" pid=24897 service=ingest subservice=stellar-core
time="2022-03-10T15:21:28.106+08:00" level=error msg="History: Could not download file: archive keybase_io maybe missing file history/02/61/cd/history-0261cd7f.json" pid=24897 service=ingest subservice=stellar-core
time="2022-03-10T15:21:28.106+08:00" level=error msg="History: Missing HAS for ledger 39964031: maybe stale archive keybase_io" pid=24897 service=ingest subservice=stellar-core
time="2022-03-10T15:21:52.749+08:00" level=error msg="History: Could not download file: archive satoshipay_singapore maybe missing file .well-known/stellar-history.json" pid=24897 service=ingest subservice=stellar-core
time="2022-03-10T15:21:52.749+08:00" level=error msg="History: Could not download .well-known/stellar-history.json file: corrupt archive satoshipay_singapore" pid=24897 service=ingest subservice=stellar-core
time="2022-03-10T15:21:52.749+08:00" level=error msg="History: Failed to obtain archive information: satoshipay_singapore" pid=24897 service=ingest subservice=stellar-core
time="2022-03-10T15:23:39.941+08:00" level=error msg="History: Could not download file: archive sdf_1 maybe missing file history/02/61/cd/history-0261cd7f.json" pid=24897 service=ingest subservice=stellar-core
time="2022-03-10T15:23:39.941+08:00" level=error msg="History: Missing HAS for ledger 39964031: maybe stale archive sdf_1" pid=24897 service=ingest subservice=stellar-core
time="2022-03-10T15:23:44.678+08:00" level=error msg="History: Could not download file: archive satoshipay_frankfurt maybe missing file history/02/61/cd/history-0261cd7f.json" pid=24897 service=ingest subservice=stellar-core
time="2022-03-10T15:23:44.678+08:00" level=error msg="History: Missing HAS for ledger 39964031: maybe stale archive satoshipay_frankfurt" pid=24897 service=ingest subservice=stellar-core
time="2022-03-10T15:23:53.392+08:00" level=error msg="History: Could not download file: archive Blockdaemon_Validator_1 maybe missing file history/02/61/cd/history-0261cd7f.json" pid=24897 service=ingest subservice=stellar-core
time="2022-03-10T15:23:53.392+08:00" level=error msg="History: Missing HAS for ledger 39964031: maybe stale archive Blockdaemon_Validator_1" pid=24897 service=ingest subservice=stellar-core
time="2022-03-10T15:24:06.284+08:00" level=error msg="History: Could not download file: archive wirexUS maybe missing file history/02/61/cd/history-0261cd7f.json" pid=24897 service=ingest subservice=stellar-core
time="2022-03-10T15:24:06.284+08:00" level=error msg="History: Missing HAS for ledger 39964031: maybe stale archive wirexUS" pid=24897 service=ingest subservice=stellar-core
time="2022-03-10T15:26:42.213+08:00" level=error msg="History: Could not download file: archive sdf_3 maybe missing file history/02/61/cd/history-0261cd7f.json" pid=24897 service=ingest subservice=stellar-core
time="2022-03-10T15:26:42.213+08:00" level=error msg="History: Missing HAS for ledger 39964031: maybe stale archive sdf_3" pid=24897 service=ingest subservice=stellar-core
time="2022-03-10T15:29:50.629+08:00" level=error msg="History: Could not download file: archive sdf_3 maybe missing file history/02/61/cd/history-0261cd7f.json" pid=24897 service=ingest subservice=stellar-core
time="2022-03-10T15:29:50.629+08:00" level=error msg="History: Missing HAS for ledger 39964031: maybe stale archive sdf_3" pid=24897 service=ingest subservice=stellar-core
time="2022-03-10T15:33:25.669+08:00" level=error msg="History: Could not download file: archive sdf_3 maybe missing file history/02/61/cd/history-0261cd3f.json" pid=24897 service=ingest subservice=stellar-core
time="2022-03-10T15:33:25.669+08:00" level=error msg="History: Missing HAS for ledger 39963967: maybe stale archive sdf_3" pid=24897 service=ingest subservice=stella

Thanks for the report
Can you provide:

information as per the bug template on things like environment information (containerized, OS, CPU, memory and disk information, etc) https://github.com/stellar/stellar-core/blob/master/.github/ISSUE_TEMPLATE/bug-report.md#issue-description
logs right before and after the restart (1 minute before and after would be perfect)
any system logs that could be relevant here (syslog/postgresql)

Hello,
My machine version: Ubuntu 18.04 server 64bit
Machine configuration: 8vCPUs | 16 GiB
Here is the horizon configuration information:
export STELLAR_CORE_BINARY_PATH="/usr/bin/stellar-core"
export CAPTIVE_CORE_STORAGE_PATH="./"
export CAPTIVE_CORE_CONFIG_APPEND_PATH="/usr/local/product/horizon/horizon-v2.15.1/captive-core-pubnet.cfg"
export CAPTIVE_CORE_PEER_PORT=11625
export ENABLE_CAPTIVE_CORE_INGESTION=true
export DATABASE_URL="postgresql://root:***@***horizon"
export PORT=8000
export STELLAR_CORE_URL="http://localhost:11626"
export LOG_LEVEL="info"
export INGEST=true
export PER_HOUR_RATE_LIMIT="180000"
export HORIZON_DB_MAX_OPEN_CONNECTIONS="200"
export HORIZON_DB_MAX_IDLE_CONNECTIONS="50"
export MAX_DB_CONNECTIONS="300"
export NETWORK_PASSPHRASE="Public Global Stellar Network ; September 2015"
export HISTORY_ARCHIVE_URLS="https://stellar-full-history3.bdnodes.net/"
export ADMIN_PORT=6060
Here is the one minute log error log where the error occurred:
time="2022-03-13T14:43:03.016+08:00" level=info msg="Overlay: Dropping peer <IP_ADDRESS>:11625, reason error reading message header: End of file" pid=30906 service=ingest subservice=stellar-core
time="2022-03-13T14:43:50.407+08:00" level=warning msg="could not load stellar-core info: http request errored: Get "http://localhost:11626/info\": read tcp <IP_ADDRESS>:36550-><IP_ADDRESS>:11626: read: connection reset by peer" pid=30906
time="2022-03-13T14:43:50.408+08:00" level=error msg="failed to load the stellar-core info" err="http request errored: Get "http://localhost:11626/info\": read tcp <IP_ADDRESS>:36548-><IP_ADDRESS>:11626: read: connection reset by peer" pid=30906 stack="[main.go:43 client.go:67 app.go:223 app.go:435 asm_amd64.s:1581]"
time="2022-03-13T14:43:50.411+08:00" level=warning msg="could not load stellar-core info: http request errored: Get "http://localhost:11626/info\": dial tcp [::1]:11626: connect: connection refused" pid=30906
time="2022-03-13T14:43:50.411+08:00" level=error msg="failed to load the stellar-core info" err="http request errored: Get "http://localhost:11626/info\": dial tcp [::1]:11626: connect: connection refused" pid=30906 stack="[main.go:43 client.go:67 app.go:223 app.go:435 asm_amd64.s:1581]"
time="2022-03-13T14:43:50.458+08:00" level=error msg="Error in ingestion state machine" current_state="resume(latestSuccessfullyProcessedLedger=40006675)" error="error getting ledger blocking: error reading frame length: unmarshalling XDR frame header: xdr:DecodeUint: EOF while decoding 4 bytes - read: '[]'" next_state=start pid=30906 service=ingest
time="2022-03-13T14:43:51.291+08:00" level=error msg="failed to load the stellar-core info" err="http request errored: Get "http://localhost:11626/info\": dial tcp [::1]:11626: connect: connection refused" pid=30906 stack="[main.go:43 client.go:67 app.go:223 app.go:435 asm_amd64.s:1581]"
time="2022-03-13T14:43:51.291+08:00" level=warning msg="could not load stellar-core info: http request errored: Get "http://localhost:11626/info\": dial tcp [::1]:11626: connect: connection refused" pid=30906
time="2022-03-13T14:43:52.292+08:00" level=error msg="failed to load the stellar-core info" err="http request errored: Get "http://localhost:11626/info\": dial tcp [::1]:11626: connect: connection refused" pid=30906 stack="[main.go:43 client.go:67 app.go:223 app.go:435 asm_amd64.s:1581]"
time="2022-03-13T14:43:52.292+08:00" level=warning msg="could not load stellar-core info: http request errored: Get "http://localhost:11626/info\": dial tcp [::1]:11626: connect: connection refused" pid=30906
time="2022-03-13T14:43:54.676+08:00" level=error msg="History: Could not download file: archive Blockdaemon_Validator_3 maybe missing file history/02/62/74/history-0262743f.json" pid=30906 service=ingest subservice=stellar-core
time="2022-03-13T14:43:54.676+08:00" level=error msg="History: Missing HAS for ledger 40006719: maybe stale archive Blockdaemon_Validator_3" pid=30906 service=ingest subservice=stellar-core
time="2022-03-13T14:43:56.473+08:00" level=error msg="History: Could not download file: archive keybase_io maybe missing file history/02/62/74/history-0262743f.json" pid=30906 service=ingest subservice=stellar-core
time="2022-03-13T14:43:56.473+08:00" level=error msg="History: Missing HAS for ledger 40006719: maybe stale archive keybase_io" pid=30906 service=ingest subservice=stellar-core
thanks for your help


LDAP Group Sync with Domain Restriction Turned ON

I'm not sure if this is a bug or i'm doing something wrong...
I'm trying to setup AD group sync but it appears that my AD group (role) is not being assigned to new accounts when Domain Restriction setting is turned on.
When a new user signs in with their domain credentials, they always get assigned the Role that is defined in the dropdown for "Default user roler after registration" and the role that is in AD does not get assigned.
If I remove the domain restriction, when a new user signs in, they get assigned the Group they are part of in AD and ALSO the role that is defined in "default user role after registration".
How do I make it so that only the role that the user is a part of in AD gets assigned when they first login?
I'm running v0.29.1
My .ENV file for LDAP has the following settings:
LDAP_USER_FILTER=(&(sAMAccountName=${user}))
LDAP_VERSION=3
LDAP_USER_TO_GROUPS=true
LDAP_GROUP_ATTRIBUTE="memberOf"
LDAP_REMOVE_FROM_GROUPS=true
LDAP_DISPLAY_NAME_ATTRIBUTE=cn

Thanks for reporting @mikeyz24.
Can confirm this appears to be a bug in the current logic. The requirement for email confirmation kicks-in and redirects the user just before groups are synced. Applies to both LDAP and SAML2 authentication & group sync. The email confirmation flow then does not re-enforce group sync itself.
Need to change the logic to either sync groups on initial user creation or as part of confirmation flow.
From my testing, the correct groups should still be assigned upon future logins. Alternatively, You may be able to achieve your setup via limiting emails based on domain using the LDAP_USER_FILTER instead of needing to use the BookStack domain restriction option. Something like this:
LDAP_USER_FILTER=(&(sAMAccountName=${user})(mail=*@example.com))

Would need to test that though, My LDAP knowledge is limited.
I'll assign this for the next feature release since it involves authentication therefore needs extra consideration and testing. Might be a small while before a feature release is ready though.

For my future reference, It's likely specifically this exception that causes the change in path before group sync:
https://github.com/BookStackApp/BookStack/blob/master/app/Auth/Access/RegistrationService.php#L82

Thanks for the response.  I just have a followup question then.  If i turn off Domain restriction, for me the new user gets the default role + their AD group role.  Is this by design or can I make it so that the default role is the AD group the user is a member of?
I have LDAP_REMOVE_FROM_GROUPS=true while testing

@mikeyz24 By design. Could always set that to a group without any permissions assigned.

I have updated the flow so email confirmation does not stop remaining registration actions, including group sync, to take place. Will be part of v0.30.
Thanks again for reporting @mikeyz24.


Suggestion: Add speakers dinner menu

Suggestion to add the speakers dinner menu on the website.
Let me know what do you think: @laisbsc @clytaemnestra

Looks delicious 😋 Thanks everyone who helped prepare this!


[web] Cannot use renderer run-time configuration in new load API.

Steps to reproduce

Create a demo Flutter app using the latest bootstrap, using the following flutter_bootstrap.js{{flutter_js}}
{{flutter_build_config}}

_flutter.loader.load({
  config: {
    renderer: 'canvaskit',
  },
});

Attempt to flutter run
Observe the following error in the browser:Uncaught (in promise) FlutterLoader could not find a build compatible with configuration and environment.

Expected results
I'd expect the app to run.
Actual results
It seems that when not specifying a --web-renderer in the command-line, the flutter_build_config variable does not populate information for the html or canvaskit renderers, only auto; making the renderer run-time JS Parameter useless.
Code sample
(Included above)
Screenshots or Video
N/A
Logs
N/A
Flutter Doctor output
This reproduces in the latest master, and probably has always reproduced since we introduced the new load API.

After talking to @eyebrowsoffire, two things:

If we're going to always "force" the canvaskit renderer, it's better to just build with --web-renderer canvaskit rather than relying on the run-time option.
This code may need to be smarter if we want to support auto properly in the flutter_build_config variable.

Fixed in https://github.com/flutter/engine/pull/53231/files


Option to not preserve comments

Context
By default, tygo preserves comments. So for example:
user.go
// package user does xyz
package user

type User struct {
  name: string
}

will generate output like:
//////////
// source: users.go
// package user does xyz

export interface User {
  name: string;
}

This is cool behavior, but sometimes it's not desired. Therefore, I think there should be an option
for suppressing comments that do not exist on types. The default would still be to preserve.
Expected
A config like this:
packages:
  - path: "<path>"
    output_path: "<output_path>"
    preserveComments: false # true or false, defaults to true

So that Go code like this:
user.go
// package user does xyz
package user

// secret is a secret
const secret = "secret"

type User struct {
  // name is a name
  name: string
}

produces TS like this:
//////////
// source: users.go

export interface User {
  /**
   * name is a name
   */
  name: string;
}

Actual
All comments are preserved and there's no option to suppress this behavior

I've started working on this contrib in a fork, if that's OK


adapter-api does not support headers inputType

Description
The @laconia/adapter-api package does not support the headers inputType from the ApiGatewayEvent.
Is your feature request related to a problem? Please describe.
No, there is a work around with the @laconia/event package.
Describe the solution you'd like [optional]
It would also be nice to provide the whole ApiGatewayEvent instead of just a specific inputType or at least a way to receive headers.
Additional context
Scanning through #124 they seem partially related.

@all-contributors please add @kirbyjs for ideas

Thanks for raising this issue @kirbyjs!
The adapter-api does support headers input, which currently is undocumented (feel free to raise a pull request :) ):

See the parameter includeInputHeader setting here: https://github.com/laconiajs/laconia/blob/4bcb1161e4fde1b44e7a5258883c3d734a169a4f/packages/laconia-adapter-api/src/createApiGatewayAdapter.js
Your app function will be called with headers, like this: https://github.com/laconiajs/laconia/blob/master/packages/laconia-adapter-api/test/ApiGatewayEventAdapter.spec.js#L60

Your app function will be called with headers, like this: master/packages/laconia-adapter-api/test/ApiGatewayEventAdapter.spec.js#L60

I noticed this option the other day which was pretty slick! Also didn't know about the includeInputHeader! 👍🏼  That's good to know and might look into adding that into the docs! I have an incoming PR that I've been working on to improve upon the current types.
I still think it might be a good idea to just allow providing the full APIGatewayEvent to future proof the adapter. But it seems that from you comment that everything is currently supported, so feel free to close this issue 😃

That's great! I'll close this issue :)


Allow edit or remove a Serving Runtime

Feature description
Allow users to edit and remove available Serving Runtimes Templates.
Continuation of

https://github.com/opendatahub-io/odh-dashboard/issues/1077
https://github.com/opendatahub-io/odh-dashboard/issues/1080

Tasks

Add edit and delete actions to the rows
Add the ability to delete a Serving Runtime
Open the Custom Runtime creation page for editing a current Serving Runtime

Mocks

https://www.sketch.com/s/5c26573b-fd37-4d54-a4f7-aab1cc17ff5d/a/g10xeOj

Just waiting on #1145 but most of the work for this task is done.


Multiple services found in the RUM explorer, despite setting serviceName explicitly

Describe what happened
I setup the ServiceName in the androidSDK manually as follow:
 val datadogConfig = DatadogConfig.Builder(
      BuildConfig.DATADOG_CLIENT_TOKEN,
      BuildConfig.BUILD_TYPE,
      BuildConfig.DATADOG_APPLICATION_ID
    )
      .setServiceName("Android: $packageName")
      .useViewTrackingStrategy(FragmentViewTrackingStrategy(true))
      .setRumEnabled(true)
      .trackInteractions()
      .build()

However, in the RUM Explorer I notice two services:

One with Android: <MY PACKAGE NAME>.
One with android:_<MY PACKAGE NAME>.

Where is this android:_<MY PACKAGE NAME> coming from?
Steps to reproduce the issue:

Initialize datadog SDK in main application's class onCreate().
Go to RUM Explorer, and track the services there.

Describe what you expected:
I expected to find only Android: <MY PACKAGE NAME> service. However, I found another service android:_<MY PACKAGE NAME> there.
Additional context

Android OS version: 10
Device Model: Galaxy S10
Datadog SDK version: 1.7.9
Versions of any other relevant dependencies (OkHttp, …): Retrofit 2.8.1
Proguard configuration: Default
Gradle Plugins:

 const val buildToolsVersion = "4.0.0"
  const val androidJunit5Plugin = "<IP_ADDRESS>"
  const val navigationSafeArgsPlugin = "2.1.0"
  const val googleServicesPlugin = "4.3.3"
  const val firebaseCrashlyticsPlugin = "2.3.0"

Apparently, my counterpart in the iOS department is facing the same issue. Even after explicitly setting the service name, a lower-case ios:_<PACKAGE-NAME> service is showing up.
The default service names for android SDK and iOS SDK are android and iOS respectively. Could it be that these are somehow messing up?

Apparently, my counterpart in the iOS department is facing the same issue. Even after explicitly setting the service name, a lower-case ios:_<PACKAGE-NAME> service is showing up.
The default service names for android SDK and iOS SDK are android and iOS respectively. Could it be that these are somehow messing up?

Hello @hs-kdhillon ,
On both SDK we send the service name the way you give them to us. But service names are sent as Datadog Tags, and so they are constrained in termes of value. This means that in theory, your service name should follow the same rules:

Tags can only contains Alphanumeric characters, Underscores, Minuses, Colons, Periods, or Slashes;
Tags can be up to 200 characters (meaning your service name itself can only have 188 characters)
Tags are converted to lowercase.

My guess is that some kind of sanitization is perform on your events to conform to those constraints (replacing the space with an underscore).
Also, note that in theory the default serviceName on both platforms (in the latest version of each SDK) should already be your package name.

Hello @hs-kdhillon ,
On both SDK we send the service name the way you give them to us. But service names are sent as Datadog Tags, and so they are constrained in termes of value. This means that in theory, your service name should follow the same rules:

Tags can only contains Alphanumeric characters, Underscores, Minuses, Colons, Periods, or Slashes;
Tags can be up to 200 characters (meaning your service name itself can only have 188 characters)
Tags are converted to lowercase.

My guess is that some kind of sanitization is perform on your events to conform to those constraints (replacing the space with an underscore).
Also, note that in theory the default serviceName on both platforms (in the latest version of each SDK) should already be your package name.

@hs-echkayben

@hs-echkayben

@xgouchet I fixed the issue by renaming my service to android:<PACKAGE_NAME>, i.e. by using lowercase a and removing the space. Thank you for your help!
PS: Maybe setServiceName() docs can be updated to mention that the service name has to comply the tags naming convention.

@xgouchet I fixed the issue by renaming my service to android:<PACKAGE_NAME>, i.e. by using lowercase a and removing the space. Thank you for your help!
PS: Maybe setServiceName() docs can be updated to mention that the service name has to comply the tags naming convention.

Glad to hear that, and yes we'll update the documentation to reflect that

Glad to hear that, and yes we'll update the documentation to reflect that


Colliding with bs-css

I was migrating a UI lib from bs-css to bs-emotion and noticed when having both in the project compilation fails. Do you think the interface can be fixed to avoid this issue? Otherwise migration from one to the other has to happen in one go, which makes transition way harder in larger projects
>>>> Start compiling
[2/2] Building packages/button/src/Button.mlast.d
[1/3] Building packages/button/src/Button-Ui.cmj

  We've found a bug for you!
  /projects/ui/packages/button/src/Button.re

  It's possible that your build is stale.
  Try to clean the artifacts and build again?

  Here's the original error message
  The files /projects/ui/node_modules/bs-emotion/lib/ocaml/emotion.cmi
  and /projects/ui/node_modules/bs-css/lib/ocaml/css.cmi
  make inconsistent assumptions over interface Css

Ah, that's unfortunate. I'll think how to deal w/ such case but I'm not sure if it's possible w/o renaming Css.re to something else. Maybe there's some bsc flag for this or something.

Or maybe I can just include Css in bs-emotion instead of opening it and it shouldn't be exposed + it won't be necessary to install re-css (unless you need some functions from Css). I'll try it out tomorrow.

Ok I managed that to work. It's adds up a bit to maintenance cost but should be feasible. I need to clean things up a bit, then I'll cut a release.

Published<EMAIL_ADDRESS>Should work after update. Also, don't forget to remove re-css direct dependency.

worked like a charm https://github.com/reactvienna/ui/pull/15

Awesome!


im not able to upgrade to nodejs 18 for AWS stack

im tried to upgrade the nodejs version from 16 to 18 but there was no choice to use node 18 even when I used the latest version of the package I still couldn't find nodejs 18
app.setDefaultFunctionProps({
runtime: 'nodejs16.x'
})
only I found these runtimes
export declare type Runtime = "nodejs" | "nodejs4.3" | "nodejs6.10" | "nodejs8.10" | "nodejs10.x" | "nodejs12.x" | "nodejs14.x" | "nodejs16.x" | "python2.7" | "python3.6" | "python3.7" | "python3.8" | "python3.9" | "dotnetcore1.0" | "dotnetcore2.0" | "dotnetcore2.1" | "dotnetcore3.1" | "go1.x";
so how I can upgrade the node version any options?

I have the same issue

I'm also trying to upgrade and having same issue.

@nick

That's strange because it's right there: https://github.com/sst/sst/blob/master/packages/sst/src/constructs/Function.ts#L72

@jayair  what is the package version you get this link from, I tried multiple times with no luck only can see nodejs16_x and I tried to create new project getting the same issue

@baraadeek Hmm that one was from master, but if I take the tag for the latest release: https://github.com/sst/sst/blob/v2.41.5/packages/sst/src/constructs/Function.ts#L72

@jayair ok what do you think i miss when I do this
mkdir my-sst-app cd my-sst-app npx create-serverless-stack@latest my-sst-app cd my-sst-app
but also I have node 14 only for newly created project

@jayair  is this package belongs to sst
@serverless-stack/resources
https://www.npmjs.com/package/@serverless-stack/resources

These are from SST v1 which is a couple of years old. We don't update them anymore.
npx create-sst@latest my-sst-app
npx sst dev

Is what you are looking for.

@jayair  thanks a lot for your response

We are transition this repo to https://github.com/sst/v2 and are closing this issue for now. If it is still relevant please reopen it there - sorry for the trouble


Fix NULL pointer access caused by X509_ATTRIBUTE_create()

When X509_ATTRIBUTE_create() receives an invalid NID (e.g., -1), return
failure rather than silently constructing a broken X509_ATTRIBUTE object
that might cause NULL pointer accesses later on.  This matters because
X509_ATTRIBUTE_create() is used by API functions like PKCS7_add_attribute(3)
and the NID comes straight from the user.
This bug was found while working on LibreSSL documentation.
Reviewed-by: Theo Buehler<EMAIL_ADDRESS>CLA: trivial
Original commit: https://cvsweb.openbsd.org/src/lib/libcrypto/asn1/x_attrib.c#rev1.14
Regression test available: https://cvsweb.openbsd.org/src/regress/lib/libcrypto/x509/x509attribute.c
I expect you also need to merge this to 1.1.1-stable.

mattcaswell asked:

Were you the original author of the commit in Libressl?

Yes.  I found the bug while auditing code in order to write documentation, and i also developed, tested, and committed the patch for LibreSSL.
Thanks to both Matt and Tomáš for checking the patch!

If there's only one way to do things, then it's generally not copyrightable, @t8m.  And hey, @ischwarze nice to see you!

Hi @richsalz,

If there's only one way to do things, then it's generally not copyrightable, @t8m. And hey, @ischwarze nice to see you!

Same here!  :-)  You still didn't come round to systematically merge any substantial part of all the documentation work i have been doing, right?  On the other hand, given that you still have a viable license on 1.1.1-stable, i could still merge various of the fixes from your tree.  At some point, this will inevitably grow into a problem (so far, we have been lucky that it didn't already), in both directions: i can no longer take documentation improvements from your master branch because the new license is tainted with contract and patent law and no longer free enough, and once i find any non-trivial bug, you will have a problem because you can no longer take non-trivial patches from outsiders, by your own choice of requiring legalese paperwork (from a brief glance, your legalese is not quite as bad as what the FSF concocted and which i rejected outright even though they invited me as a developer to one of their projects - but i'm still reluctant to waste my time on such paperwork, apart from the additional legal risk that i perceive in signing any such fine print...).

24 hours has passed since 'approval: done' was set, but as this PR has been updated in that time the label 'approval: ready to merge' is not being automatically set.  Please review the updates and set the label manually.

There is more than one way to implement this check so don't see "only one way" as meaningfully applying to this situation.
@ischwarze  I appreciate your public comments on the CLA paperwork (always good to get feedback) and one thing we did do was basically re-use the ASF approach which is also used on a very large number of open source projects. It makes any evaluation of your willingness to accept such an approach broadly applicable rather than having to see OpenSSL as its own unique complicated context (which is what it was prior to this change).

@ischwarze I owe you an apology.  I'm sorry that I never followed-up to say that the mdoc/perldoc comparison become too hard for me to reconcile, and I let your changes fall through the cracks.  Perhaps now I could try again, if you're willing to resend me the changes.

@richsalz wrote:

@ischwarze I owe you an apology.

No problem at all, everybody is busy!

I'm sorry that I never followed-up to say that the mdoc/perldoc
comparison become too hard for me to reconcile, and I let your
changes fall through the cracks.

IIRC, you actually did mention that, which is why i ventured to send another ping, suspecting that the situation might eventually improve.  Of course, you might also just switch to mdoc(7) which would improve the quality of your markup and make merging easier going forward...

Perhaps now I could try again, if you're willing to resend me the changes.

Sure.  After some years of work, it would of course be hard to make sure that all patches i'm including are indeed relevant for you, so i preferred to err to the side of including a bit too many patches rather than including too few.  I guess you can just skip those that don't matter for you.  But i did exclude the original POD->MDOC conversion even though various improvements were already sneaked into that step, but they would be very hard to extract, and including the raw conversion would make this patchset even bulkier.
So, here are the patches (LibreSSL manual page changes only):
http://www.studis.de/privat/schwarze/Tmp/richsalz.patches
$ wc richsalz.patches
182031<PHONE_NUMBER>508 richsalz.patches
$ grep -c ^commit richsalz.patches
945
$ grep -c ^diff richsalz.patches
3343
$ grep -c '^+[^+]' richsalz.patches
76322
$ grep -c '^-[^-]' richsalz.patches
21532
$ grep ^Author richsalz.patches  | sort | uniq -c | sort -nr
803 Author: schwarze
81 Author: jmc
27 Author: tb
8 Author: jsing
8 Author: beck
2 Author: sobrado
2 Author: reyk
2 Author: bcook
1 Author: mmcc
1 Author: millert
1 Author: jsg
1 Author: jca
1 Author: inoguchi
1 Author: guenther
1 Author: dtucker
1 Author: dlg
1 Author: djm
1 Author: deraadt
1 Author: claudio
1 Author: benno
All our changes are under the ISC license, so including them should be no problem for you.
Do you think you can handle that?
Yours,
Ingo

I have the file, thanks.  Love all the grep/wc metrics!
Can you ping me off-line?  rsalz at akamai.com

Merged to master and 1.1.1 branch. Thank you for the contribution.


upgrades alpine and adds docker commands to pipenv

Pull Request Test Coverage Report for Build 686

0 of 0 (NaN%) changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 62.115%

Totals

Change from base Build 683:
0.0%

Covered Lines:
746

Relevant Lines:
1201

💛  - Coveralls


Live upgrade support for Longhorn Engine

It's possible for Longhorn Engine to implement the live upgrade support.
The basic idea is we should able to create the new version of Longhorn Engine running with the same data as the old ones, and connect to the same TGT server as before. TGT server should able to redirect the traffic to the new Longhorn Engine at some points. In general, it should work like this:

TGT pause receiving the data from block device for a moment. Disk IO would stop at this point.
TGT wait for the existing requests issued to the old version of engine to be completed.
TGT redirect the traffic to the new Longhorn engine. Disk IO resumed.
TGT signal switch complete. Old version of engine is safe to be removed.

Feature complete. Will file additional issues if needed.


feat: Custom Encrypted Player

PR Fixes:

Implemented a custom encryption layer on top of hls.js specifically. The quality remains top-notch and the manifest is heavily encrypted avoiding piracy issues.

THIS IS JUST STEP 1 OF SOLVING PIRACY PROBLEM - I am currently working on my other ideas to make it harder for people to reverse engineer it.
Checklist before requesting a review

[x] I have performed a self-review of my code
[x] I assure there is no similar/duplicate pull request regarding same issue

https://github.com/user-attachments/assets/57065f88-cacc-430b-a874-6f4663aa8862

Creating our in house encryption might not be on that charts atm

Creating our in house encryption might not be on that charts atm

Well it's not actually an in-house encryption from scratch. I just inherited what was already working on app.100x and integrated my solution on top of it. So everything works out of the box - but with high quality video and encrypted manifest (to avoid piracy issue)

Let's not go this direction since we are using the one provided by appx. This implementation is great but we do want to use the iframe


Configurable URL for recaptcha

In some templates, https://www.google.com is a hardcoded URL. However, this URL is unaccessible in some countries with Internet censorship, most notably China. Luckily, Google offers an alternative URL, https://www.recaptcha.net, which is intended to work globally.
From Google documentation:
https://developers.google.com/recaptcha/docs/faq#can-i-use-recaptcha-globally
Recaptcha issues in China (just for reference):
https://github.com/google/recaptcha/issues/87
Initially, they discuss reverse-proxy solution to the problem, but recaptcha.net comes up later.
At the moment, django-recaptcha users cannot alter recaptcha URL from settings. This pull request makes this URL configurable - you simply need to alter an already existing CAPTCHA_API_SERVER variable in your configuration, and templates will pick it up as {{api_server}} context variable.
There is one case where I should have probably created a separate variable. In widget_nocaptcha.html, there was https://www.google.com/recaptcha/api.js. I turned this into
{{ api_request }}.js

Which works, but it is probably not the best idea to have both /recaptcha/api.js and /recaptcha/api/ generated from the same variable since these URLs are used for different purposes.
Another addition is CAPTCHA_ASYNC and CAPTCHA_DEFER variables. Original templates used neither async nor defer, and this prevents page from fully rendering unless recaptcha scripts are downloaded by browser. This is especially noticeable in China, where recaptcha scripts served from google.com are not exactly banned, but are throttled to such a low speed that your site has almost no chances of rendering anything below captcha. In this particular case, CAPTCHA_DEFER would allow you to render the whole template and postpone scripts until later, but I allowed to configure defer and async individually, since everyone has their own project requirements.

I can see https://github.com/torchbox/django-recaptcha/commit/4921a6c600540308f1f7997df666a0406a58c808 introduced RECAPTCHA_DOMAIN so will assume this is no longer relevant.


audio-filter isn't working for me

    },
    "audio": {
        "0": {
            "map": 1,
            "language": "eng",
            "channels": 2,
            "codec": "libfdk_aac",
            "disposition": "default",
            "bitrate": 320,
            "filter": null
        }
    }
}

I see this in the output, I checked the waveform with audacity, definitely not being applied.
This is what I have the filter option set to. Can anyone give me some reassurance that this is correct ?
audio-filter = dynaudnorm=b=1

Solved it, 'audio-filter' was in my config twice for some reason.


Added Dutch translation

Like the title says, I added a translation for the Dutch language, as I needed it for a project I'm working on :)

@DenzoNL thank you for great work


Catch even Throwable when trying to create class

If class require connection to database for creation for example getting state from there and saving to property.
This break psalm anaylis currently.
This case happen when CI environment does not have connection to database.

@mr-feek could you take a look?

seems fine to me, just gonna let CI run then ill merge!

thanks for the pr!


Pods conflicting names in Strict mode

Report
When using $RNAppsFlyerStrictMode = true, pod install failed with following error:
target has frameworks with conflicting names: appsflyerlib.xcframework
Plugin Version
6.5.20
On what Platform are you having the issue?
ios
What did you do?
Run pod install
What did you expect to happen?
Successfully installing pods
What happened instead?
Error: target has frameworks with conflicting names: appsflyerlib.xcframework

@davidnum try to remove and install AppsFlyer plugin again. did you modify your PodFile beside adding $RNAppsFlyerStrictMode = true?

Hello, already solved by deleting pod 'AppsFlyerFramework' from  Podfile


Fix: status bar backgroundColor in dark theme on Android.

current

this PR

Thanks for your work on this.
For future work, keep in mind you can suggest and/or influence where we go with some features...
for example, I think we should be moving to a simpler title bar, this is way too much work and testing for a minor part of the functionality.


Added config option to force plain-text paste

Pasting HTML gives unwanted results. This pull request enables editor sessions to be configured
to allow plain-text paste only, except for in-document copy-paste operations.

Codecov Report

Merging #1019 into develop will increase coverage by <.01%.
The diff coverage is 66.66%.

@@             Coverage Diff             @@
##           develop    #1019      +/-   ##
===========================================
+ Coverage    64.78%   64.78%   +<.01%
===========================================
  Files          130      130
  Lines         8958     8961       +3
===========================================
+ Hits          5803     5805       +2
- Misses        3155     3156       +1

Impacted Files
Coverage Δ

ui/Clipboard.js
92.95% <ø> (ø)
:arrow_up:

ui/ClipboardImporter.js
92.68% <66.66%> (-0.99%)
:arrow_down:

Continue to review full report at Codecov.

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

Fixes #934

Needed to rebase. Opened new PR #1021


Excellent work, thank you very much for the effort

Thank you very much for the shared material, it helped me to improve things in my configuration, I appreciate it.
I have a doubt in the cpu power management guide. You recommend using iMac20.2 for i7/i9 and iMac20.1 for i5 when Dortonia recommends iMac20.1 for i7. Could you clear my doubts? Since I have an i7 10700, currently set to 20.1 but I saw some users using 20.2. I don't know if change to 20,2 or not.

imac20,1 Models: https://everymac.com/ultimate-mac-lookup/?search_keywords=iMac20,1
imac20,2 Models: https://everymac.com/ultimate-mac-lookup/?search_keywords=iMac20,2
As you can see, you can use both


mode.save() API raises AttributeError: 'Tensor' object has no attribute '_keras_mask'

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): Yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Google Colab
TensorFlow installed from (source or binary): binary
TensorFlow version (use command below): tf-nightly==2.4.0-dev20200815
Python version: 3.6
GPU model and memory: Tesla T4, memory_limit:<PHONE_NUMBER>4

Describe the current behavior
I've created an encoder-decoder model. I'm using LSTM in both the encoder and decoder architecture. I'm applying tf.keras.layers.Masking() on the encoder's LSTM output and hidden state and passing both of the masks (using the attribute _keras_mask) to tf.keras.layers.AdditiveAttention(). The model trains successfully using the teacher-forcing technique.
Next, I am trying to save both the model in SavedModel format using the model.save() API.
I'm getting the below error:
INFO:tensorflow:Assets written to: attention_two_encoder/assets
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-118-f4fbf19e2bf7> in <module>()
      1 encoder.save(ENC_SAVED_MODEL_DIR)
----> 2 decoder.save(DEC_SAVED_MODEL_DIR)

26 frames
/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training.py in save(self, filepath, overwrite, include_optimizer, save_format, signatures, options)
   1948     """
   1949     save.save_model(self, filepath, overwrite, include_optimizer, save_format,
-> 1950                     signatures, options)
   1951
   1952   def save_weights(self,

/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/saving/save.py in save_model(model, filepath, overwrite, include_optimizer, save_format, signatures, options)
    133   else:
    134     saved_model_save.save(model, filepath, overwrite, include_optimizer,
--> 135                           signatures, options)
    136
    137

/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/saving/saved_model/save.py in save(model, filepath, overwrite, include_optimizer, signatures, options)
     78     # we use the default replica context here.
     79     with distribution_strategy_context._get_default_replica_context():  # pylint: disable=protected-access
---> 80       save_lib.save(model, filepath, signatures, options)
     81
     82   if not include_optimizer:

/usr/local/lib/python3.6/dist-packages/tensorflow/python/saved_model/save.py in save(obj, export_dir, signatures, options)
    998
    999   _, exported_graph, object_saver, asset_info = _build_meta_graph(
-> 1000       obj, export_dir, signatures, options, meta_graph_def)
   1001   saved_model.saved_model_schema_version = constants.SAVED_MODEL_SCHEMA_VERSION
   1002

/usr/local/lib/python3.6/dist-packages/tensorflow/python/saved_model/save.py in _build_meta_graph(obj, export_dir, signatures, options, meta_graph_def)
   1146   with save_context.save_context(options):
   1147     return _build_meta_graph_impl(obj, export_dir, signatures, options,
-> 1148                                   meta_graph_def)

/usr/local/lib/python3.6/dist-packages/tensorflow/python/saved_model/save.py in _build_meta_graph_impl(obj, export_dir, signatures, options, meta_graph_def)
   1093   if signatures is None:
   1094     signatures = signature_serialization.find_function_to_export(
-> 1095         checkpoint_graph_view)
   1096
   1097   signatures, wrapped_functions = (

/usr/local/lib/python3.6/dist-packages/tensorflow/python/saved_model/signature_serialization.py in find_function_to_export(saveable_view)
     73   # If the user did not specify signatures, check the root object for a function
     74   # that can be made into a signature.
---> 75   functions = saveable_view.list_functions(saveable_view.root)
     76   signature = functions.get(DEFAULT_SIGNATURE_ATTR, None)
     77   if signature is not None:

/usr/local/lib/python3.6/dist-packages/tensorflow/python/saved_model/save.py in list_functions(self, obj, extra_functions)
    145     if obj_functions is None:
    146       obj_functions = obj._list_functions_for_serialization(  # pylint: disable=protected-access
--> 147           self._serialization_cache)
    148       self._functions[obj] = obj_functions
    149     if extra_functions:

/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training.py in _list_functions_for_serialization(self, serialization_cache)
   2559     self.predict_function = None
   2560     functions = super(
-> 2561         Model, self)._list_functions_for_serialization(serialization_cache)
   2562     self.train_function = train_function
   2563     self.test_function = test_function

/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/base_layer.py in _list_functions_for_serialization(self, serialization_cache)
   3045   def _list_functions_for_serialization(self, serialization_cache):
   3046     return (self._trackable_saved_model_saver
-> 3047             .list_functions_for_serialization(serialization_cache))
   3048
   3049   def __getstate__(self):

/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/saving/saved_model/base_serialization.py in list_functions_for_serialization(self, serialization_cache)
     85         `ConcreteFunction`.
     86     """
---> 87     fns = self.functions_to_serialize(serialization_cache)
     88
     89     # The parent AutoTrackable class saves all user-defined tf.functions, and

/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/saving/saved_model/layer_serialization.py in functions_to_serialize(self, serialization_cache)
     77   def functions_to_serialize(self, serialization_cache):
     78     return (self._get_serialized_attributes(
---> 79         serialization_cache).functions_to_serialize)
     80
     81   def _get_serialized_attributes(self, serialization_cache):

/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/saving/saved_model/layer_serialization.py in _get_serialized_attributes(self, serialization_cache)
     93
     94     object_dict, function_dict = self._get_serialized_attributes_internal(
---> 95         serialization_cache)
     96
     97     serialized_attr.set_and_validate_objects(object_dict)

/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/saving/saved_model/model_serialization.py in _get_serialized_attributes_internal(self, serialization_cache)
     49     # cache (i.e. this is the root level object).
     50     if len(serialization_cache[constants.KERAS_CACHE_KEY]) == 1:
---> 51       default_signature = save_impl.default_save_signature(self.obj)
     52
     53     # Other than the default signature function, all other attributes match with

/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/saving/saved_model/save_impl.py in default_save_signature(layer)
    203   original_losses = _reset_layer_losses(layer)
    204   fn = saving_utils.trace_model_call(layer)
--> 205   fn.get_concrete_function()
    206   _restore_layer_losses(original_losses)
    207   return fn

/usr/local/lib/python3.6/dist-packages/tensorflow/python/eager/def_function.py in get_concrete_function(self, *args, **kwargs)
   1174       ValueError: if this object has not yet been called on concrete values.
   1175     """
-> 1176     concrete = self._get_concrete_function_garbage_collected(*args, **kwargs)
   1177     concrete._garbage_collector.release()  # pylint: disable=protected-access
   1178     return concrete

/usr/local/lib/python3.6/dist-packages/tensorflow/python/eager/def_function.py in _get_concrete_function_garbage_collected(self, *args, **kwargs)
   1080       if self._stateful_fn is None:
   1081         initializers = []
-> 1082         self._initialize(args, kwargs, add_initializers_to=initializers)
   1083         self._initialize_uninitialized_variables(initializers)
   1084

/usr/local/lib/python3.6/dist-packages/tensorflow/python/eager/def_function.py in _initialize(self, args, kwds, add_initializers_to)
    715     self._concrete_stateful_fn = (
    716         self._stateful_fn._get_concrete_function_internal_garbage_collected(  # pylint: disable=protected-access
--> 717             *args, **kwds))
    718
    719     def invalid_creator_scope(*unused_args, **unused_kwds):

/usr/local/lib/python3.6/dist-packages/tensorflow/python/eager/function.py in _get_concrete_function_internal_garbage_collected(self, *args, **kwargs)
   2953       args, kwargs = None, None
   2954     with self._lock:
-> 2955       graph_function, _, _ = self._maybe_define_function(args, kwargs)
   2956     return graph_function
   2957

/usr/local/lib/python3.6/dist-packages/tensorflow/python/eager/function.py in _maybe_define_function(self, args, kwargs)
   3331
   3332       self._function_cache.missed.add(call_context_key)
-> 3333       graph_function = self._create_graph_function(args, kwargs)
   3334       self._function_cache.primary[cache_key] = graph_function
   3335

/usr/local/lib/python3.6/dist-packages/tensorflow/python/eager/function.py in _create_graph_function(self, args, kwargs, override_flat_arg_shapes)
   3186             arg_names=arg_names,
   3187             override_flat_arg_shapes=override_flat_arg_shapes,
-> 3188             capture_by_value=self._capture_by_value),
   3189         self._function_attributes,
   3190         function_spec=self.function_spec,

/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/func_graph.py in func_graph_from_py_func(name, python_func, args, kwargs, signature, func_graph, autograph, autograph_options, add_control_dependencies, arg_names, op_return_value, collections, capture_by_value, override_flat_arg_shapes)
    985         _, original_func = tf_decorator.unwrap(python_func)
    986
--> 987       func_outputs = python_func(*func_args, **func_kwargs)
    988
    989       # invariant: `func_outputs` contains only Tensors, CompositeTensors,

/usr/local/lib/python3.6/dist-packages/tensorflow/python/eager/def_function.py in wrapped_fn(*args, **kwds)
    623             xla_context.Exit()
    624         else:
--> 625           out = weak_wrapped_fn().__wrapped__(*args, **kwds)
    626         return out
    627

/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/saving/saving_utils.py in _wrapped_model(*args)
    132     with base_layer_utils.call_context().enter(
    133         model, inputs=inputs, build_graph=False, training=False, saving=True):
--> 134       outputs = model(inputs, training=False)
    135
    136     # Outputs always has to be a flat dict.

/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/base_layer.py in __call__(self, *args, **kwargs)
    988
    989         with ops.enable_auto_cast_variables(self._compute_dtype_object):
--> 990           outputs = call_fn(inputs, *args, **kwargs)
    991
    992         if self._activity_regularizer:

/usr/local/lib/python3.6/dist-packages/tensorflow/python/autograph/impl/api.py in wrapper(*args, **kwargs)
    615   def wrapper(*args, **kwargs):
    616     with ag_ctx.ControlStatusCtx(status=ag_ctx.Status.DISABLED):
--> 617       return func(*args, **kwargs)
    618
    619   if inspect.isfunction(func) or inspect.ismethod(func):

<ipython-input-104-f3868e3dd449> in call(self, y)
    162
    163         context_vector = self.attention(inputs=[hidden_with_time_axis, enc_output],
--> 164                                         mask=[hidden_with_time_axis_mask._keras_mask, enc_output_mask._keras_mask])
    165         # context_vector shape == (batch_size, 1, enc_units)
    166

AttributeError: 'Tensor' object has no attribute '_keras_mask'

Describe the expected behavior
model.save() API should allow me to save the encoder-decoder model.
After saving the models, I want to apply post-training float16 quantization.
Standalone code to reproduce the issue
Encoder-Decoder model architecture
class Encoder(tf.keras.Model):
    def __init__(self, vocab_size, embedding_dim, enc_units, batch_sz):
        super(Encoder, self).__init__()
        self.batch_sz = batch_sz
        self.enc_units = enc_units

        self.embedding_ques = tf.keras.layers.Embedding(vocab_size, embedding_dim,
                                                        input_length=max_ques_length,
                                                        weights=[embedding_matrix],
                                                        trainable=False, mask_zero=True)
        self.embedding_title = tf.keras.layers.Embedding(vocab_size, embedding_dim,
                                                         input_length=max_title_length,
                                                         weights=[embedding_matrix],
                                                         trainable=False, mask_zero=True)

        self.lstm_ques = tf.keras.layers.LSTM(self.enc_units,
                                   return_sequences=True,
                                   return_state=True)
        self.lstm_title = tf.keras.layers.LSTM(self.enc_units,
                                   return_sequences=True,
                                   return_state=True)

        self.dense_state_h_ques = tf.keras.layers.Dense(int(self.enc_units/2))
        self.dense_state_h_title = tf.keras.layers.Dense(int(self.enc_units/2))
        self.dense_state_c_ques = tf.keras.layers.Dense(int(self.enc_units/2))
        self.dense_state_c_title = tf.keras.layers.Dense(int(self.enc_units/2))

        self.conv2d_image = tf.keras.layers.Conv2D(32, (3, 3),
                                    activation = 'relu',
                                    kernel_initializer = tf.keras.initializers.HeNormal(seed=SEED),
                                    padding = 'same')
        self.flatten_image = tf.keras.layers.Flatten()
        self.dense_image = tf.keras.layers.Dense(self.enc_units)

        self.dense_price = tf.keras.layers.Dense(self.enc_units)

    def call(self, x):
        question, title, price, image, hidden = x[0], x[1], x[2], x[3], x[4]
        # question shape == (batch_size, max_ques_length)
        # title shape == (batch_size, max_title_length)
        # price shape == (batch_size, 1)
        # image shape == (batch_size, img_width, img_height, channels)

        question_e = self.embedding_ques(question)
        # question_e shape == (batch_size, max_ques_length, embedding_dim)

        question_mask = self.embedding_ques.compute_mask(question)
        # question_mask shape == (batch_size, max_ques_length)
        output_ques, state_h_ques, state_c_ques = self.lstm_ques(question_e, initial_state = hidden, mask=question_mask)
        # output_ques shape == (batch_size, max_ques_length, enc_units)
        # state_h_ques shape == (batch_size, enc_units)
        # state_c_ques shape == (batch_size, enc_units)

        title_e = self.embedding_title(title)
        # title_e shape == (batch_size, max_title_length, embedding_dim)

        title_mask = self.embedding_title.compute_mask(title)
        # title_mask shape == (batch_size, max_title_length)
        output_title, state_h_title, state_c_title = self.lstm_title(title_e, initial_state = hidden, mask=title_mask)
        # output_title shape == (batch_size, max_title_length, enc_units)
        # state_h_title shape == (batch_size, enc_units)
        # state_c_title shape == (batch_size, enc_units)

        price = self.dense_price(price)
        # price shape == (batch_size, enc_units)

        image = self.conv2d_image(image)
        # image shape ==  (batch_size, img_width, img_height, filters=32)
        image = self.flatten_image(image)
        # image shape == (batch_size, 51200)
        image = self.dense_image(image)
        # image shape == (batch_size, enc_units)

        output = tf.concat([output_ques, output_title], axis=1)
        # output shape == (batch_size, max_ques_length + max_title_length, enc_units)
        output = tf.concat([tf.expand_dims(price, 1), output], axis=1)
        # output shape == (batch_size, max_ques_length + max_title_length + 1, enc_units)
        output = tf.concat([tf.expand_dims(image, 1), output], axis=1)
        # output shape == (batch_size, max_ques_length + max_title_length + 1 + 1, enc_units)

        state_h_ques = self.dense_state_h_ques(state_h_ques)
        # state_h_ques shape == (batch_size, int(enc_units/2))
        state_h_title = self.dense_state_h_title(state_h_title)
        # state_h_title shape == (batch_size, int(enc_units/2))
        state_h = tf.concat([state_h_ques, state_h_title], axis=-1)
        # state_h shape == (batch_size, enc_units)

        state_c_ques = self.dense_state_c_ques(state_c_ques)
        # state_c_ques shape == (batch_size, int(enc_units/2))
        state_c_title = self.dense_state_c_title(state_c_title)
        # state_c_title shape == (batch_size, int(enc_units/2))
        state_c = tf.concat([state_c_ques, state_c_title], axis=-1)
        # state_c shape == (batch_size, enc_units + enc_units)

        return output, state_h, state_c

    def initialize_hidden_state(self):
        return (tf.zeros((self.batch_sz, self.enc_units)),
                tf.zeros((self.batch_sz, self.enc_units)))

class Decoder(tf.keras.Model):
    def __init__(self, vocab_size, embedding_dim, dec_units, batch_sz):
        super(Decoder, self).__init__()
        self.batch_sz = batch_sz
        self.dec_units = dec_units

        self.embedding = tf.keras.layers.Embedding(vocab_size, embedding_dim,
                                                   input_length=max_ans_length,
                                                   weights=[embedding_matrix],
                                                   trainable=False, mask_zero=True)

        self.lstm = tf.keras.layers.LSTM(self.dec_units,
                                   return_sequences=True,
                                   return_state=True)
        self.fc = tf.keras.layers.Dense(vocab_size)

        self.attention = tf.keras.layers.AdditiveAttention()

        self.masking_hidden = tf.keras.layers.Masking()
        self.masking_enc_output = tf.keras.layers.Masking()

    def call(self, y):
        inputs, hidden, enc_output = y[0], y[1], y[2]
        # 1 in each of the dimension means timesteps
        # decoding is happening at each timesteps

        # inputs shape == (batch_size, 1)
        # hidden shape == tuple of two (batch_size, enc_units) [lstm state_h and state_c]
        # enc_output shape == (batch_size, max_ques_length, enc_units)

        # hidden == lstm state_h

        hidden_with_time_axis = tf.expand_dims(hidden[0], 1)
        # hidden_with_time_axis shape == (batch_size, 1, enc_units)

        hidden_with_time_axis_mask = self.masking_hidden(hidden_with_time_axis)
        # hidden_with_time_axis_mask._keras_mask shape == (batch_size, 1)

        enc_output_mask = self.masking_enc_output(enc_output)
        # enc_output_mask._keras_mask shape == (batch_size, max_ques_length)

        context_vector = self.attention(inputs=[hidden_with_time_axis, enc_output],
                                        mask=[hidden_with_time_axis_mask._keras_mask, enc_output_mask._keras_mask])
        # context_vector shape == (batch_size, 1, enc_units)

        # x shape after passing through embedding == (batch_size, 1, embedding_dim)
        x = self.embedding(inputs)

        mask = self.embedding.compute_mask(inputs)
        # mask shape == (batch_size, 1)

        # x shape after concatenation == (batch_size, 1, embedding_dim + hidden_size)
        x = tf.concat([context_vector, x], axis=-1)

        # passing the concatenated vector to the LSTM
        output, state_h, state_c = self.lstm(x, initial_state=hidden, mask=mask)
        # output shape == (batch_size, 1, dec_units)
        # state_h shape == (batch_size, dec_units)
        # state_c shape == (batch_size, dec_units)

        output = tf.reshape(output, (-1, output.shape[2]))
        # output shape == (batch_size * 1, dec_units)

        x = self.fc(output)
        # output shape == (batch_size, vocab)

        return x, state_h, state_c

    def initialize_hidden_state(self):
        return (tf.zeros((self.batch_sz, self.dec_units)),
                tf.zeros((self.batch_sz, self.dec_units)))

Attempt to save the models using the below code
encoder.save(ENC_SAVED_MODEL_DIR)
decoder.save(DEC_SAVED_MODEL_DIR) # Stacktrace posted above

@hsomaiya,
On running the given code, I am facing an error stating NameError: name 'encoder' is not defined. Please find the gist of it here.
In order to expedite the trouble-shooting process, could you please provide the complete code to reproduce the issue and the dataset you are using. Alternatively, you can also share the Colab notebook you are running. Thanks!

@amahendrakar
Thank you for your response.
Please check this Colab notebook which will help you to reproduce the issue https://colab.research.google.com/drive/1e7mpSs-YJgWVv9NXxokkrtCswaK6oC3z?usp=sharing

Was able to reproduce the issue with the latest TF-nightly. Please find the gist of it here. Thanks!

I met this issue, too. Can anyone help?

I just faced this issue too. I was using a custom layer that includes both standard TF layers (dense) as well as math operations on tensors  (+, -, tf.exp, ...). It was basically a variation of a sampling layer for variational autoencoder described here.
I was using Sequential model, and in TF 2.2.0 while iterating over layers it runs the following piece of code:
mask = outputs._keras_mask

This was the source of this error. In TF 2.3.0 and above I believe it was re-implemented:
mask = getattr(outputs, '_keras_mask', None)

I fixed this by manually setting _keras_mask to None before returning a tensor instance from my custom layer:
def __call__(self, inputs):
    # Method body comes here
    # ...
    z = mean + tf.exp(log_sigma) * epsilon
    z._keras_mask = None
    return z

Hi @hsomaiya, were you able to try the suggestion in the above comment?


Possible Malware

Hello, I downloaded several files just now and Windows defender flagged the following files as a Trojan:Script/Wacatac.H!ml threat:
CO_mapwithai_road_data.gpkg.tar.gz
VE_mapwithai_road_data.gpkg.tar.gz
PE_mapwithai_road_data.gpkg.tar.gz

I wasn't able to reproduce using Microsoft Defender on Mac.
Security intelligence version: 1.385.1495.0 (created on 2023-03-29T12:48:27Z).
You did download the data from https://github.com/facebookmicrosites/Open-Mapping-At-Facebook/wiki/Available-Countries right?

Yes, I downloaded from that link. I downloaded 6-8 files and Defender was raising those errors for 3 of the files I downloaded. I can try to download one again and see if it tries to block it again.

You can try doing that, but maybe the MS Defender definitions are out of date on your machine?

I have the Security intelligence version: 1.385.1495.0 as well. I downloaded each of the 3 files again and 2 seem fine now but Defender is blocking and quarantining the Peru file immediately after download

I just downloaded the same file on my laptop and Defender did not find any threats... I guess its possibly that Defender on my desktop is throwing a false positive for some reason. I'm closing this issue for now since it appears to be fine. Sorry for the scare!


Crash from mixins error

Heya! When I try to load a world, my game will crash and it only happens when I try to use the SIHYWTCAMD mod. The log mentions a mixin error involving Cardinal Components.
I'm the using the latest 1.20.2 version, here are my logs:
crash-2024-01-16_03.59.48-client.txt
Hope this helps, ty!

Hello and thanks for the report! Actually, I guess this is only because you're using the wrong mod version. Indeeed, your minecraft version is 1.20.1 but you're playing with a 1.20.2 mod version. I think the Cardinal Component API is not compatible between these two minecraft version, which cause the crash.

Oooh! Lol sorry 😂
I downloaded the newest version because I saw it fixed a problem with creepers giving you a permanent status.
Is that issue in the 1.20.1 version? Or if I disable creepers giving you negative statuses, will it get rid of the issue?

No problem! Yes, there is the problem in the 1.20.1 version, but you may as well never encounter it. This is an issue that happens only with a very specific distance condition when the creeper explodes, and this is not a big issue actually. It's just a visual artifact. The client can have the effect displayed, but the server knows if it should still apply and so it doesn't affect gameplay at all. You can get rid of the effect display if you encounter the issue by just reconnecting to the world.

Oooh ok! Tyty for the quick responses!


separate 'options' from index.html

so that the links in the menu and in the copy will bring you back directly to options page rather then always to landing page

already exist as an issue


Remove session default

Resolves warning about blocking IO in HA
https://github.com/mattrayner/pod-point-home-assistant-component/issues/71

For reference. This allow importing the python module without an active asyncio loop. Which allow HA to import the module in an executor.


[WIP] autoquant prototype

@cpuhrsch I'm planning to create another PR that is trying to subgraph extraction based on Vasiliy's code btw: https://github.com/pytorch-labs/ao_benchmarks/tree/main/experimental/float8_subgraph_analysis


[bug]Outofmemory error reported when using xlabs sampler

My video memory is 8GB, and I use comfyui's FLUX to generate images,when I use the xlabs sampler,before proceeding to the next step, an out of memory error immediately popped up, causing the interruption of image generation. What is the problem? Is my computer configuration low? If so, what are the minimum configuration requirements? Thank you for your response.

Xlabs sampler and other Xlabs nodes do not support offloading to RAM. So you need GPU memory for complete load of model, loras etc. You either need to use cards with lot of GPU memory, like 24GB ones or try to use quantized models that will fit into smaller cards. Or maybe someone will implement offloading like usual comfy nodes that can work with RAM.

Thanks a lot

Xlabs sampler and other Xlabs nodes do not support offloading to RAM. So you need GPU memory for complete load of model, loras etc. You either need to use cards with lot of GPU memory, like 24GB ones or try to use quantized models that will fit into smaller cards. Or maybe someone will implement offloading like usual comfy nodes that can work with RAM.

Thanks a lot for your answer MrBabai. I was totally lost with the same error until your comment.


Installation fails on windows 11 and wsl2 with python >= 3.11

See attached file for error trace
I tried with python 3.11.6 and 3.12.0, both are no go.
I tried from git repo with same result.
I tried using a venv in python 3.11.6, but no go either.
the problem is scikit-learn version that is still using distutils or setuptools which are deprecated.
Even using a compatible version of setuptools the installation is not going ahead of this point above.
On WSL2 there's the same problem.
could you please advice?
error trace chroma.txt

Hey, can you try a older python version like 3.9?
We also provided a Dockerfile in case you run into environment setup issue.

With python 3.9 the installation complete successfully.
Thank you!

Great to hear. We will work on support for python>=3.10