WS2812B is 5V logic

Create and test a simple logic level shifter to control the WS2812B with the ESP01:
https://hackaday.com/2016/12/05/taking-it-to-another-level-making-3-3v-and-5v-logic-communicate-with-level-shifters/

Implemented logic level shifter and tested: LED is stable now.


[BUG] cannot create regular file ‘GenomeAnalysisTK.jar’ File exists - conda executor

Hey, while I've been testing the latest version, i found this error:
I'm providing a gatk jar as requested, and using a fresh conda env.
  ENV_PREFIX /data/mariliaconceicao/Davi/mtbseq-nf-master/work/conda/env-9bc281415c98bcad7a1079004336496d
  Processing GenomeAnalysisTK.jar as *.jar
  jar file specified matches expected version
  Copying GenomeAnalysisTK.jar to /data/mariliaconceicao/Davi/mtbseq-nf-master/work/conda/env-9bc281415c98bcad7a1079004336496d/opt/gatk-3.8

Command error:
  cp: cannot create regular file ‘/data/mariliaconceicao/Davi/mtbseq-nf-master/work/conda/env-9bc281415c98bcad7a1079004336496d/opt/gatk-3.8/GenomeAnalysisTK.jar’: File exists

I'll test some solutions and reply here if i found anything new.
Kindly, Davi

Hmm, interesting.
Could you please outline, how exactly I can reproduce this on my end?

In any case, the following line gives a hint

cp: cannot create regular file ‘/data/mariliaconceicao/Davi/mtbseq-nf-master/work/conda/env-9bc281415c98bcad7a1079004336496d/opt/gatk-3.8/GenomeAnalysisTK.jar’: File exists

The problem is that gatk-register process, used in each of the MTBSEQ modules, copies the jar to the location where the MTBseq code is installed, which in case of conda is .../work/conda/env...
There are a few possible solutions

Figure out whether gatk-register command offers a -force (or similar) option to forcefully overwrite the jar in case it exists
Remove the .../work/conda/ENV_FOR_MTBSEQ... to force conda to recreate another env.
Use some bash scripting to gracefully handle this situation for the conda profile as discussed here https://stackoverflow.com/questions/22009364/is-there-a-try-catch-command-in-bash
Introduce a variable called copy_gatk38_jar and modify the scripts to use something like

${params.copy_gatk38_jar ? (gatk-register ...) : ""}

What do you think?

Hmm, interesting.
Could you please outline, how exactly I can reproduce this on my end?

I just cloned the latest version, and then wrote this command: nextflow run main.nf -profile conda -params-file params/params.yml
with a fresh copy of the pipeline and some genomes. not sure if the can be reproduced so easily.

In that case, I think we can just track this as an issue but in case you run across this one again - please try out the suggestions here https://github.com/mtb-bioinformatics/mtbseq-nf/issues/54#issuecomment-975910260

i think that the best option would be 4, to introduce code to check the situation, in multi threading executions i think that a force script or instruct env removal would generate new issues. I'll work on this solution soon.


Adding @ComponentScan annotation to add DAO component breaks Jms listener

Adding DAO component as dependency breaks Jms service and the process starts and ends almost immediately.
To reproduce:
have a working Jms service and try to add DAO dependency with @ComponentScan("dao.package")

Sorry but I am not sure what you mean by that. Please ask on Stackoverflow with a small sample.


Switch publishing to maven central

Motivation
Which issue does this fix? Related to #130
Checklist

[ ] Code follows coding conventions held in this repo
[ ] Automated tests have been added
[ ] Tests are passing
[ ] Docs have been updated (if applicable)
[ ] Temporary settings (e.g. variables used during development and testing) have been reverted to defaults

How to test
If manual testing is required, what are the steps?

TODO:

[ ] describe release process
[ ] test sample apps with snapshots
[ ] stage new version
[ ] release the version

Release note: https://app.kontent.ai/ad858591-7c5b-00e9-52c1-796f3aebc535/content-inventory/00000000-0000-0000-0000-000000000000/content/ba6fabfc-d3f9-426a-8f6f-c98c381d51e4

[ ] - redo the diagram on https://github.com/Kentico/kontent-java-packages/wiki/Release-process


New rule: unnecessary initial reference check

IF me->parent IS BOUND AND
   me->parent IS INSTANCE OF cl_blah.

is equal to
IF me->parent IS INSTANCE OF cl_blah.

yea, guess there is a set of things like this, eg
IF foo = 2 AND foo IS NOT INITIAL.


Revert "Patch graph context"

Reverts GoogleChrome/audion#133
Fix https://github.com/GoogleChrome/audion/issues/143
#133 is a nice optimization but there is an issue and until that is fixed we can revert this.

Hmm, not sure why CLA is not working?
Also were you able to confirm reverting this fixes #143 locally?

Friendly ping - @mzgoddard. It would be great if you can test/confirm the patch locally.

@hoch Sorry for the delay. I confirmed locally but forgot to state so here. I checked again and its still good.


Support action groups in notifications

This PR currently branches off from https://github.com/filamentphp/filament/pull/3443.

If we can get https://github.com/filamentphp/filament/pull/3443 merged, I can finish this PR as well, @danharrin.

@danharrin, before merging we need to discuss https://github.com/filamentphp/filament/pull/3443#issuecomment-1232013152.

We can add the Floating to the notifications JS for now until v3

Because this is a new feature, we can just add the Floating UI package installation to the install docs.

Because this is a new feature, we can just add the Floating UI package installation to the install docs.

Fair.

Updated, @danharrin.

Ready to merge?

Ready to merge?

Think so. 👀


Cb/sim stage updates

[x] update stage validation
[x] update stage construction
[x] update stage update forecast retrieval
[x] update UpdateRef to store the label accessors
[ ] update and enable simulation tests

Codecov Report

Merging #258 into master will decrease coverage by 0.3%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master     #258      +/-   ##
==========================================
- Coverage   55.07%   54.76%   -0.31%
==========================================
  Files          62       62
  Lines        2524     2529       +5
==========================================
- Hits         1390     1385       -5
- Misses       1134     1144      +10

Impacted Files
Coverage Δ

src/core/build_simulations.jl
0% <0%> (ø)
:arrow_up:

src/simulation/stage_update.jl
0% <0%> (ø)
:arrow_up:

src/core/core_structs/simulations_stages.jl
0% <0%> (ø)
:arrow_up:

.../devices/device_constructors/branch_constructor.jl
57.14% <0%> (-4.77%)
:arrow_down:

src/network_models/powermodels_interface.jl
96.02% <0%> (-0.67%)
:arrow_down:

src/core/core_structs/operations_problem.jl
64.51% <0%> (-0.57%)
:arrow_down:

src/core/build_operations.jl
94.11% <0%> (-0.33%)
:arrow_down:

src/network_models/network_constructor.jl
100% <0%> (ø)
: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 e91080b...6611fd6. Read the comment docs.

An example is here: https://github.com/NREL-SIIP/Examples/blob/tutorials-refactor/notebook/PowerSimulations_examples/sequential_simulations.ipynb

This is working. @jd-lara an RTS example is here: https://github.com/NREL-SIIP/Examples/blob/tutorials-refactor/script/PowerSimulations_examples/sequential_simulations.jl


Add iso level slider normalization setting in ScalarFieldView param tree

This PR adds the option to set a normalization (linear or arcsinh) to the sliders controlling the level of isosurfaces in the ScalarFieldView parameter tree.

LGTM


fix(fuselage): Responsive CardControls

Proposed changes (including videos or screenshots)

Added flex-wrap in the CSS of Cards for CardControl component. Things that have been kept in mind are:-

Wrap is not essential for horizontal cards in desktop view.
Wrap is enabled for horizontal cards in mobile view.
In every other case, flex-wrap is essential for responsive behaviour.
Made Carcontrol into a box component for better integration.

https://github.com/user-attachments/assets/ac6b0c39-c7a3-4dc8-ba7e-c592d18bbc4b

Issue(s)
Closes #1440 #31614

Further comments
There are other ways to go around it but this felt appropriate and fixes the issue.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Hey Henrique! I just saw a repetition of code caused by previous commit. I fixed that in the latest commit. Now everything looks fine to me. Can you please check?

Hey @rique223! All the changes requested by you are done from my side. Let me know if you are looking for something else.


[Bug]: query engine output_cls no longer work with pydantic v2 after upgrade to llama-index v10

Bug Description
Using a pydantic v2 data model as output class for the llama-index query engine no longer work after upgrade to v10.
The program fails with the following error:
AttributeError: 'BaseModel' object has no attribute 'model_dump'

Version
0.10.23
Steps to Reproduce

setup a python 3.12 virtual environment
install those packages:

llama-index==0.10.23
llama-index-embeddings-openai==0.1.6
llama-index-llms-openai==0.1.12
llama-index-program-openai==0.1.4
llama-index-vector-stores-postgres==0.1.3
python-dotenv==1.0.1
pydantic==2.6.3

create an .env file containing OPENAI_API_KEY=<YOUR_API_KEY>
run this script:

from dotenv import load_dotenv
from llama_index.core import Document, VectorStoreIndex
from llama_index.llms.openai import OpenAI
from pydantic import BaseModel

load_dotenv()

class MyModel(BaseModel):
    """Data model for a content."""

    content: str

documents = [Document(text="A brief history of chocolate")]
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine(
    output_cls=MyModel,
    llm=OpenAI(model="gpt-3.5-turbo")
)

response = query_engine.query("What is it about ?")

print("content: ",response.content)
print("response type: ",type(response.response))
# `model_dump` method is available for pydantic v2 models but not for v1.
print("response dump: ",response.response.model_dump())

you should see this error

AttributeError: 'BaseModel' object has no attribute 'model_dump'

Note that the same was working with llama-index version 0.9.47:

installing those packages:

llama-index==0.9.47
python-dotenv==1.0.1
pydantic~=2.6.3

running this script (only import differ)

from dotenv import load_dotenv
from llama_index import Document, VectorStoreIndex
from llama_index.llms import OpenAI
from pydantic import BaseModel

load_dotenv()

class MyModel(BaseModel):
    """Data model for a content."""

    content: str

documents = [Document(text="A brief history of chocolate")]
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine(
    output_cls=MyModel,
    llm=OpenAI(model="gpt-3.5-turbo")
)

response = query_engine.query("What is it about ?")

print("content: ",response.content)
print("response type: ",type(response.response))
# `model_dump` method is available for pydantic v2 models but not for v1.
print("response dump: ",response.response.model_dump())

You get this output:

content:  A brief history of chocolate
response type:  <class '__main__.MyModel'>
response dump:  {'content': 'A brief history of chocolate'}

Relevant Logs/Tracbacks
No response

Use the v1 compatibility layer
from pydantic.v1 import BaseModel
Or import from llamaindex
from llama_index.core.bridge.pydantic import BaseModel

Use the v1 compatibility layer
from pydantic.v1 import BaseModel
Or import from llamaindex
from llama_index.core.bridge.pydantic import BaseModel

@logan-markewich, thank you for your quick reply, I already tried those and saw that this indeed solves the issue.
The problem for me is that I'm relying on pydantic v2 models for the rest of my app and those were working fine with llama-index v9.
This is why I was surprised that the same no longer works with v10.
Is there a way to make v10 work with pydantic v2 models ?

@sasensi tbh I'm surprised it worked before lol
There are some hacks ways to make this work, but tbh the entire library needs to be updated to ditch the v1 layer for full compatibility
One hacky fix
class MyModel(BaseModel):
    """Data model for a content."""

    content: str

    def model_dump(self, *args, **kwargs):
        return self.dict(*args, **kwargs)

@logan-markewich, ok, I understand, I'll then look forward to llama-index fully supporting pydantic v2 and implement some workarounds for my specific use cases in the meantime.
Thank you again for your work and reactivity 👍


FEATURE REQUEST: screenshot upon install failure saved along with gist

I've bumped into:

2019-03-07 01:49:44,741 2536 [WARN ] - Chocolatey timed out waiting for the command to finish. The timeout
specified (or the default value) was '2700' seconds. Perhaps try a
higher --execution-timeout? See choco -h for details.

to numerous amount of times to mention.
A screenshot at that moment of failure would be immensely helpful to package maintainers who didn't expect a pop up request to install a dependency or a reboot request etc.

Of possible interest (though old):
https://github.com/igorsobreira/vagrant-screenshot

This was opened on this repository - which is the test environment. The test environment has a GUI when it loads up and doesn't save any gists. Perhaps this was meant to go over to https://github.com/chocolatey/package-verifier/issues/55. I do see this is an older issue, so just now catching that.

@gep13 close this issue as invalid please.


Problem in writing int value as int, and read int as int

Problem in saving the long value to the series.
I am trying to read the long value from the influxdb series

Firstly I am inserting the long value as shown below to the influxdb series:

insert ErrorEvent1 description="Array index outofbound exception",elementName="com.abs.autologger.metric.logErrorEvent:run(113)",eventName="autologger.png",errorTime=1463759931281475649
The value is inserting as the exponential value into the database, we would like to insert the value as same way to the series.

I also tried reading the value from the java program, we are using the influxdb-java-2.1.jar to read the series from the influxdb.
2.	Here is the API call we are using to read the results from the series.
public Query(final String command, final String database) {
super();
this.command = command;
this.database = database;
}
public QueryResult query(final Query query);
// Execute a query agains a database, @return a List of Series which matched the query.
So here it’s returning the value as same exponential value “1.4637599312814756e+18”, could you please suggest us how this influxdb-java jar works in our scenario we want to insert the long value and read the same value without doing the exponential conversion which is influx doing as of now ? Please assist.

Hello @bharath531,
Questions about how to use InfluxDB should be asked to the mailing list instead of the issue tracker. It is much more likely you will get a helpful response there than here as we primarily use the issue tracker to track feature requests and bug reports.
Thank you.


Question: What's the reason for using murmur hash?

Hey,
I just wanted to ask the reason for using murmur hash here instead of some other cryptographically strong hash like SHA3 or BLAKE3 or something? Wouldn't using murmur hash affect accuracy of results? I understand that you are optimising for memory instead of CPU so I feel using a cryptographically secure hash will still stay aligned with your goals.
Please advise if my thoughts are correct here. Thanks

Cryptographically secure hashes are slower. Since this is not a cryptographic application, I went with murmur, which was a good combination of speed and uniformity.
Originally the hash was configurable via the hash.Hash interface, but that was too slow.


Add a note in docs to check isInWriteTransaction before write transactions in notification blocks

There was a discussion about checking realm.isInWriteTransaction before making a write transaction while in a notification block. See #4511 for more information. Created this issue to track the progress on possibly adding a note to the documentation about this.

@evgeny-sureev: It must be stated in documentation that notifications may come inside write transaction and it is user's responsibility to check realm.isInWriteTransaction before attempting write.

The more important point to document here is that notifications may be fired synchronously when advancing by calling -beginWrite, at which point the notification block will be run during that write transaction.
Recommending to check -[RLMRealm isInWriteTransaction] before making a write transaction while in a notification block might be the right solution in some cases, but documenting the cases in which that can happen will give the user more insight into what's actually happening.

I've unassigned myself since I don't think I'll be able to get to this any time soon.


Functionality to allow running on Gear VR out of the box ?

Is there any (legal) way Google could add a functionality that would allow Google Cardboard app(s) to run on Gear VR out of the box ?
I've heard that it's already possible, but involves some kind of package disabler app and some hackery. It's not consumer friendly way, so it seems that native solution would be a way to go.

Sorry, but running on GearVR requires using their SDK, which only they distribute. If you would like them to support Cardboard apps, that would be a great request to submit to Samsung and/or Oculus.


[Bug Report] Wrong Unlock

if you try
 TrinityConfig.CurrentRunningMode = RunningMode.Client;                 try {                     KCoreCell node_ins = Global.CloudStorage.LoadKCoreCell(0);                 }                 catch (Exception ex) {                     Console.WriteLine("cell not found");                 }                 var neighbors = new List<long>();                 Global.CloudStorage.SaveKCoreCell(0, alive: false, remain_nodes: 0, neighbors);
this code the server will break
this is for
in
                #region LoadCell                 tupleList.Add(new TypeSyncRequestResponseHandlerTuple                 {                     Id = (ushort)RequestType.LoadCell,                     Handler = delegate(SynReqRspArgs args)                     {                         int index, cellSize;                         byte* cellPtr = null;                         TrinityErrorCode eResult;                         long cellId = *(long*)(args.Buffer + args.Offset);                         if ((eResult = CLocalMemoryStorage.CGetLockedCellInfo4LoadCell(cellId, out cellSize, out cellPtr, out index)) == TrinityErrorCode.E_CELL_NOT_FOUND)                         {                             args.Response = new TrinityMessage(eResult);                         }                         else                         {                             args.Response = new TrinityMessage(eResult, cellSize);                             Memory.memcpy(args.Response.Buffer + TrinityMessage.Offset, cellPtr, (ulong)cellSize);                         }                         Log.WriteLine(LogLevel.Info, "Load Crelease lock {0} id {1} index", cellId, index);                         CLocalMemoryStorage.CReleaseCellLock(cellId, index);                     }                 });
The storage will release the lock.
But in load process there don't exit any lock on the cell.
`
uint8_t MTHash::ReleaseEntryLock(const int32_t index)
{
if (TrinityConfig::ReadOnly())
return 0;
    Trinity::Diagnostics::WriteLine(Trinity::Diagnostics::Info, "UnKnow Release index {0} LOCK {1}", index, (int)MTEntries[index].EntryLock);
    return (MTEntries[index].EntryLock.fetch_add(-1, std::memory_order_release) - 1);
}

`
this code will put the entrylock into -1.

The line 61 should be in 58 Bracket

@qingzhu521 Thanks for reporting this and sorry for this oversight; I will include a new unit-test case to sniff this out. I can't update this repo but I will update my forked repo and get the fix in this coming week. I'll also post where one can get the new Nuget packages.

@qingzhu521 I have a new fork of the Graph Engine here: https://github.com/InKnowWorks/IKW-GraphEngine. We have a lot of updates coming to address bugs, updated and additional documentation as well as new capabilities in the new year.

I'm testing a fix for this issue this week; I will keep you posted.

@qingzhu521 Thanks for reporting this! @TaviTruman , Thank you for trying to address this!
@qingzhu521 Could you help provide the minimal source code (with TSL etc.) that can reproduce this issue? I'd like to take a look at this issue.

Kcore.txt
GraphEng.txt
@shaobin There has been some time since this program, But I think this is the code. I try to implement KCore algorithm in Trinity which trigger this problem.

@qingzhu521 Thank you. I'll check out your code.

@shaobin Did we get time to review this in detail? I think I am running into the same problem.

@qingzhu521 Hi, did you ever get any type of resolution this your problem?

I think we can review this problem togather.

@TaviTruman  I think is not hard to reproduce this problem. I just write a program that every time trinity can deal with a batch of data. Then the bug produced.

@qingzhu521 I have isolated the code template in the TSL Code Generator (C++). I will rebuild and test when I get a free hour or so. I'll also add a new test in the build.

@qingzhu521 Are you using the DataImporter?

yes

Cool. I have a number of fixes and updates. I don't think the Dataimporter is supported in the repo. Have you made any updates to the utility. I'm working to prepare a PR for this repo  UT have already updated my forked repo copy.


Implementing pytorch-lightning

This PR introduces pytorch-lightning (PyL) to handle the main training loop. This introduces and number of quality-of-life benefits and means that we can reduce maintenance overhead quite substantially since the custom trainer classes and callbacks could be replaced more or less wholesale by PyL's built-in classes. Custom callbacks (e.g. the PiecewiseLinearLR scheduler) have been reimplemented using PyL's classes and have been confirmed to behave exactly as the original class it is replacing. A new example scripts examples/test_model_training_pytorch_lightning.py shows how to train a model in the PyL framework.
However, in the interest of ensuring full reproducibility of the paper results, I have agreed with @RasmusOrsoe to keep all of the old (i.e. non-PyL) model and training code in the src/gnn_reco/legacy/ module for the time being. After the low-energy performance paper is completed, we will tag the repo version and start deprecating these in favour of the functionality in the main branch. The example script examples/test_model_training_sqlite.py shows how to perform energy regression using this legacy code. The two example scripts have been tested and found to yield similar losses during training.
This PR addresses the problem with energy reconstruction pointed out in #88
Closes #76
Tagging @BozianuLeon and @kaareendrup as this might be of interest to you.

Yes, @RasmusOrsoe! I have implemented a generic piecewise linear learning rate scheduler here, i.e. one where you can specify an arbitrary number of "milestones" (i.e. epoch/step counts) and the corresponding learning rate multipliers for each. Then the scheduler interpolates linearly between these milestones.
A special case is then having a starting LR multiplier, an end LR multiplier, and a "peak" somewhere in between. I have included an example of this, that should mirror the original implementation exactly, here.

Tagging @kaareendrup cf. our chat earlier today.


LibreCAD generated files don't load.

I exported the attached files with the LibraCAD Nightly and neither load. One is AutoCAD2007 and the second is AutoCAD2004 format.
dxfs.zip

Both files Untitled3.dxf and untitled4.dxf are bad files, even AutoCAD will crash trying to load them. The problem lies on writing a non hexadecimal number in code 340. You should report this bug to LibreCAD. The official DXF documentation is awful, but the only thing that makes it clear is the code-value correspondence. I am adding several new checks for invalid values in buggy DXF files, but, in any case, this kind of errors in a DXF file are unacceptable.

Is the 340 with the "STANDARD" the problem? The second 340 is a value for the 5 code above it, I think.

Correct. The data in a DXF is always stored in pairs (code-value) therefore odd line numbers are always codes, while even lines are values. Code 340 must be followed by an hexadecimal number, in your second image it just happens that the handle for the LwPolyline entity, code 5 is 340.


Binding to a single ip

Describe the bug
I am trying to bind the full cluster to a single ip. I have mulitple nics on my server and would like to run it as a single node cluster.
Can someone help me get the list of arguments to run it on a single ip only.
Currenlty once it starts, it seems to bind port 80/443 on every ip and responding with a 404 not found.
I already tried setting the following:
./k3s server --kube-proxy-arg="bind-address <IP_ADDRESS>"

try ./k3s server --bind-address=<IP_ADDRESS>
https://github.com/rancher/k3s/blob/0e3711b8b709a06a3769e89fe7e3ef54c48a0cd0/pkg/cli/cmds/server.go#L38-L40

@warmchang Looks like it still binds to more than just the provided ip.

@NoUseFreak The argument should have = in it, ./k3s server --kube-proxy-arg="bind-address=<IP_ADDRESS>"  Are you sure that is really the setting you want though? I'm not even totally create what that address is used for.  Most of the time people want to set --nodeport-addresses which controls the ip ranges uses in the iptables.

I have the same problem, every network inteface see ports 80/443 associated to k3s 😓.
Even if I use the --flannel-iface ifname...

I miss the notification… someone can reopen it please?

@davinkevin sure, but can you provide a more complete report on what your experiencing and how to reproduce, including the version of k3s that you're running.

With a complete new install on a VM with nothing except k3s, I have 2 network interfaces:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet <IP_ADDRESS>/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:1c:42:5f:e1:c9 brd ff:ff:ff:ff:ff:ff
    inet <IP_ADDRESS>/16 brd <IP_ADDRESS> scope global dynamic enp0s5
       valid_lft 85656sec preferred_lft 85656sec
    inet6 fe80::21c:42ff:fe5f:e1c9/64 scope link
       valid_lft forever preferred_lft forever
3: enp0s6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:1c:42:73:84:98 brd ff:ff:ff:ff:ff:ff
    inet <IP_ADDRESS>/16 brd <IP_ADDRESS> scope global dynamic enp0s6
       valid_lft 85656sec preferred_lft 85656sec
    inet6 fe80::21c:42ff:fe73:8498/64 scope link
       valid_lft forever preferred_lft forever

So, enp0s5=<IP_ADDRESS> and enp0s6=<IP_ADDRESS>.
If I install and start k3s with no options, I have k3s binded to both <IP_ADDRESS> and <IP_ADDRESS>, which is normal.
If I try to attach only to one inteface, enp0s6/<IP_ADDRESS>, the server always respond for http/https on both interfaces.
I've tried a lot of parameters, the last one for this issue is:
k3s server --node-ip=<IP_ADDRESS> --flannel-iface=enp0s6 --bind-address=<IP_ADDRESS>

You can see on the following capture, both terms on the right has a 404 page coming from k3s ingresses. If only one inteface was successfully binded, only the one on the bottom right should display this 404 message.

I've done this with k3s version v1.21.3+k3s1 (1d1f220f) using the default install script.
Thanks for your help.

Are here any updates? I also have trouble to bind the node-port to my local ip:
 ./k3s-install.sh --bind-address <IP_ADDRESS> --node-name l0005 --node-ip <IP_ADDRESS> --flannel-iface vpncloud0  --node-external-ip <IP_ADDRESS> --advertise-address <IP_ADDRESS> --kube-proxy-arg bind-address=<IP_ADDRESS>

The issue is not related to kube-proxy or the bind-address. We are using portmap cni by default to forward the traffic of the host to containers. Portmap should be configurable using the cni conf file and by default is forwarding all the traffic.
The portmap configuration can be modified using a custom cni-config with the flag --flannel-cni-conf with the path of the custom file. From the portmap doc https://www.cni.dev/plugins/current/meta/portmap/ you should add the conditionsV4 option a sample file that should disable the forwarding from the other interface could be:
{
  "name":"cbr0",
  "cniVersion":"1.0.0",
  "plugins":[
    {
      "type":"flannel",
      "delegate":{
        "hairpinMode":true,
        "forceAddress":true,
        "isDefaultGateway":true
      }
    },
    {
      "type":"portmap",
      "capabilities":{
        "portMappings":true
      },
      "conditionsV4": ["!", "-d", "<IP_ADDRESS>"]
    },
    {
      "type":"bandwidth",
      "capabilities":{
        "bandwidth":true
      }
    }
  ]
}

I used @davinkevin configuration as example. This file should not forward the traffic that has <IP_ADDRESS> as destination.

I'm going to convert this to a discussion since it seems to be a specific problem people are having that's unrelated to a k3s bug


Refactor tests with mocha-let and co-mocha

Eh, I'm actually skeptical about whether this is an improvement. While it does eliminate some redundancy, it also adds quite a bit of complexity. Gonna hold off on this for now.


Ground Markers in Elemental Workshop shared across floors

Type
Incorrect behavior
Operating System
Windows
OS Version
Windows 10
Bug description
Ground Markers on the middle floor of the Elemental Workshop are shared with the bottom floor. Top floor does not have this characteristic.
Screenshots or videos
Middle Floor

Bottom Floor

RuneLite version
Runelite Version: <IP_ADDRESS>
Launcher Version: 2.1.7
Logs
client.log
launcher.log

Fixed in 3fcf4c4217023807636dd04cdb199bdffa464ec0


ciao-controller: Make CNCI volume ephemeral

When a CNCI is deleted the volume should not be leaked.
Fixes: #1446
Signed-off-by: Rob Bradford<EMAIL_ADDRESS>

Coverage remained the same at 65.557% when pulling 11d484b41437418bd9e563c3bc3036a3a21aa40f on rbradford:cnci-ephemeral into 085211e481818fd1ccd4c342a5140472c3b71aa0 on ciao-project:master.

Coverage remained the same at 65.557% when pulling 11d484b41437418bd9e563c3bc3036a3a21aa40f on rbradford:cnci-ephemeral into 085211e481818fd1ccd4c342a5140472c3b71aa0 on ciao-project:master.

Tested by starting instances, seeing rbd volume created for cnci. And then delete all instances and after the time delay observe that the cnci rbd volume has been cleaned up.


refactor | accommodating additional software

If additional software is implemented for digitalmodel, refactor is required. The general idea is to implement the following 1st level keywords in input file
engine: choice of software (orcaflex, ansys, openfoam etc.)
basename: detailed analysis (file_management/reruns, vertical riser, catenary riser etc.)

Open if need arises


Studio 2 erroneously listed as supported by New Surface Dock 2

Is the Surface Dock 2 really supported on the Surface Studio 2? Seems this is a typo given that the Studio doesn't have a SurfaceConnect port:
https://docs.microsoft.com/en-us/surface/surface-dock-whats-new

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

ID: be36e174-5760-651b-f97a-b8466d4f877d
Version Independent ID: 28d210d7-0d47-dd88-edd7-717533fbfa1d
Content: What’s new in Surface Dock 2 - Surface
Content Source: devices/surface/surface-dock-whats-new.md
Product: w10
Technology: windows
GitHub Login: @CoveMiner
Microsoft Alias: greglin

@danchar4 I see that Studio 2 is not listed anymore, so it's fixed now.


[BUG] Nonce too high error on Debug_* Method

Seid version
Show us output of seid version --long | head
name: sei
server_name: <appd>
version: v5.6.2
commit: 6bad61226f092fadad126d78f52e1cbab3b13d7a
build_tags: netgo,
go: go version go1.21.10 linux/amd64
build_deps:
-<EMAIL_ADDRESS>-<EMAIL_ADDRESS>-<EMAIL_ADDRESS>
Chain ID
Sei Pacific - 1329
Describe the bug
A clear and concise description of what the bug is.
This payload (also reproducible on public RPC https://evm-rpc.sei-apis.com/)
{"method":"debug_traceBlockByNumber","params":["0x5552eeb", {"tracer": "callTracer"}],"id":1,"jsonrpc":"2.0"}

returns
{
  "jsonrpc": "2.0",
  "id": 1,
  "error": {
    "code": -32000,
    "message": "tracing failed: nonce too high: address 0xAff2C936E5E5Fd1027F581b3A8189C681F804551, tx: 1050 state: 1041"
  }
}

https://www.seiscan.app/pacific-1/blocks/89468651

Attaching the set of blocks that seem to be affected in case more examples are helpful:
debug_traceBlockByNumber 81772279 (0x4dfbef7):
{"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"tracing failed: nonce too high: address 0x7Ac6d25FD5E437cB7c57Aee77aC2d0A6Cb85936C, tx: 979342 state: 979341"}}

debug_traceBlockByNumber 82385817 (0x4e91b99):
{"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"tracing failed: nonce too high: address 0xfD4de3dB3eF2959C538045BCbda87804B3278265, tx: 2157 state: 2156"}}

debug_traceBlockByNumber 89130565 (0x5500645):
{"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"tracing failed: nonce too high: address 0x6F578bF0Cca6af7A0b5Ee0Fa8c86098fBB86d2Bf, tx: 6 state: 5"}}

debug_traceBlockByNumber 89468642 (0x5552ee2):
{"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"tracing failed: nonce too high: address 0xAff2C936E5E5Fd1027F581b3A8189C681F804551, tx: 1042 state: 1041"}}

debug_traceBlockByNumber 89468643 (0x5552ee3):
{"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"tracing failed: nonce too high: address 0xAff2C936E5E5Fd1027F581b3A8189C681F804551, tx: 1043 state: 1041"}}

debug_traceBlockByNumber 89468644 (0x5552ee4):
{"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"tracing failed: nonce too high: address 0xAff2C936E5E5Fd1027F581b3A8189C681F804551, tx: 1044 state: 1041"}}

debug_traceBlockByNumber 89468646 (0x5552ee6):
{"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"tracing failed: nonce too high: address 0xAff2C936E5E5Fd1027F581b3A8189C681F804551, tx: 1045 state: 1041"}}

debug_traceBlockByNumber 89468647 (0x5552ee7):
{"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"tracing failed: nonce too high: address 0xAff2C936E5E5Fd1027F581b3A8189C681F804551, tx: 1046 state: 1041"}}

debug_traceBlockByNumber 89468648 (0x5552ee8):
{"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"tracing failed: nonce too high: address 0xAff2C936E5E5Fd1027F581b3A8189C681F804551, tx: 1047 state: 1041"}}

debug_traceBlockByNumber 89468649 (0x5552ee9):
{"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"tracing failed: nonce too high: address 0xAff2C936E5E5Fd1027F581b3A8189C681F804551, tx: 1048 state: 1041"}}

debug_traceBlockByNumber 89468650 (0x5552eea):
{"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"tracing failed: nonce too high: address 0xAff2C936E5E5Fd1027F581b3A8189C681F804551, tx: 1049 state: 1041"}}

debug_traceBlockByNumber 89468651 (0x5552eeb):
{"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"tracing failed: nonce too high: address 0xAff2C936E5E5Fd1027F581b3A8189C681F804551, tx: 1050 state: 1041"}}

debug_traceBlockByNumber 89468652 (0x5552eec):
{"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"tracing failed: nonce too high: address 0xAff2C936E5E5Fd1027F581b3A8189C681F804551, tx: 1051 state: 1041"}}

thanks @adammilnesmith! we have a PR in progress that we should be able to roll out in a few weeks: https://github.com/sei-protocol/sei-chain/pull/1778

@philipsu522 Hi, the issue seemed is still persisting with higher block number.
{"method":"debug_traceBlockByNumber","params":["0x620BB33", {"tracer": "callTracer", "timeout": "119s", "tracerConfig": {"onlyTopCall": false, "withLog": true}}],"id":1,"jsonrpc":"2.0"}


Seeking very slow with many nodes and keyframes

I made a little demo of an animation that targets 100 nodes with a SequenceEffect of 5 KeyframeEffect each.
http://jsbin.com/gicoju/edit?js
On chrome, although the animation creation takes time, seeking is ultra fast.
On polyfilled browsers (i.e. safari desktop) the main thread seems unresponsive.
Is this due to the way the polyfill is done, or can this be due to a hidden bottleneck somewhere ?

I suspect this is due to https://github.com/web-animations/web-animations-next/commit/409df4d4a4608a6a45c437066dc4185ffcd43f8a which forces effects to be reapplied as soon as they happen as a work around other browsers not executing RAF in the correct order with regular script.
We should rethink the approach. Perhaps performing the invalidation in a setTimeout(..., 0) instead of immediately. @dstockwell WDYT?

Spoke with dstockwell, sounds like setTimeout(..., 0) won't work as the bug fix was for single frame flashes rather than persistant incorrect states. Synchronous updating is the only way to guarantee effects are being applied before frames get rendered.
An alternative solution to improve performance would be to reduce the number of updated animations by adding dirty flags.

Thanks for the explanation. I'll keep an eye on the issue, I'm not familiar enough with the internals of the project to suggest something. I guess setImmediate won't help either.

http://jsbin.com/jinexesado/edit?output
Performance is better but still not as good as it could be. The synchronous update to animation effects to work around browser bugs is what's holding us back.
I also noticed that GC was the dominant use of CPU during loading, being more conservative with our object allocation would help performance there.

I suspect we may be redundantly clearing their effects, if so that's something that could be optimised out.

For the record, in a react app I did, I kind of did this manually:
I have a lot of animated divs animated one after each other, like in the example. I mount divs around the current time when it changes and pass them the currentTime of the animation. It is much much faster than animating all the divs at once.
What's interesting is that I tried an approach with all the divs empty along with their animations, and then putting things inside on seeking, or mounting the divs and then create the animation on seeking and set the currentTime, and the latter is much more performant.

To illustrate what I mean :
Approach 1, performance is bad :

Some content #1
 // starts at 0

 // starts at 1

 // starts at 2

 // starts at 3

 // starts at 4

// set currentTime on all these divs to 1.5. We fill the divs with their content as currentTime changes :

 // set currentTime 1.5

Some content #2
 // set currentTime 1.5

 // set currentTime 1.5

 // set currentTime 1.5

 // set currentTime 1.5

Approach 2, performance is better :

Some content #1

// set currentTime to 1.5, mount divs that are in range as currentTime changes and set their currentTime :

Some content #2
 // set currentTime 1.5

So my conclusion is that setting currentTime on divs that are out of bounds regarding delay and duration takes time, although I'd thought it should not.
On Chrome approach 1 is faster, in polyfilled browsers approach 2 is faster.

Said differently: the DOM operation of creating a dom node is faster than setting currentTime on a node that is out of its active duration.


Allow scalar types to propogate through runtime.

Fixes #554

@nsmithtt FYI
Not sure how feasible it is, but maybe we should do something similar for scalars as we did for 1D tensors?

I think there is a fundamental question, do we treat scalars as 1d tensor or keep them as scalars throughout the pipeline?
If it is the former, then how do we differentiate between 1d tensor and scalars?
The above solution might not be elegant but keeps the values are scalars throughout the pipeline.

For reference, this is what the outputs for each stage looks like:
VHLO Module
module @jit_convert_element_type attributes {mhlo.num_partitions = 1 : i32, mhlo.num_replicas = 1 : i32} {
  vhlo.func_v1 @main(%arg0: !vhlo.tensor_v1<!vhlo.f32_v1>) -> (!vhlo.tensor_v1<!vhlo.f32_v1>) {
    "vhlo.return_v1"(%arg0) : (!vhlo.tensor_v1<!vhlo.f32_v1>) -> ()
  } {arg_attrs = #vhlo.array_v1<[#vhlo.dict_v1<{#vhlo.string_v1<"mhlo.layout_mode"> = #vhlo.string_v1<"default">}>]>, res_attrs = #vhlo.array_v1<[#vhlo.dict_v1<{#vhlo.string_v1<"jax.result_info"> = #vhlo.string_v1<"">, #vhlo.string_v1<"mhlo.layout_mode"> = #vhlo.string_v1<"default">}>]>, sym_visibility = #vhlo.string_v1<"public">}
}

TTIR Module
module @jit_convert_element_type attributes {mhlo.num_partitions = 1 : i32, mhlo.num_replicas = 1 : i32} {
  func.func public @main(%arg0: tensor<f32> {mhlo.layout_mode = "default"}) -> (tensor<f32> {jax.result_info = "", mhlo.layout_mode = "default"}) {
    return %arg0 : tensor<f32>
  }
}

TTIR Runtime Module
module @jit_convert_element_type attributes {mhlo.num_partitions = 1 : i32, mhlo.num_replicas = 1 : i32, tt.device = #tt.device<#tt.grid<8x8, (d0, d1) -> (0, d0, d1)>, [0]>, tt.system_desc = #tt.system_desc<[{arch = <wormhole_b0>, grid = 8x8, l1_size = 1499136, num_dram_channels = 12, dram_channel_size =<PHONE_NUMBER>, noc_l1_address_align_bytes = 16, pcie_address_align_bytes = 32, noc_dram_address_align_bytes = 32, l1_unreserved_base = 0, erisc_l1_unreserved_base = 0, dram_unreserved_base = 0, physical_cores = {worker = [(0, 0), (0, 1), (0, 2), (0, 3), (0, 4), (0, 5), (0, 6), (0, 7), (1, 0), (1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (1, 7), (2, 0), (2, 1), (2, 2), (2, 3), (2, 4), (2, 5), (2, 6), (2, 7), (3, 0), (3, 1), (3, 2), (3, 3), (3, 4), (3, 5), (3, 6), (3, 7), (4, 0), (4, 1), (4, 2), (4, 3), (4, 4), (4, 5), (4, 6), (4, 7), (5, 0), (5, 1), (5, 2), (5, 3), (5, 4), (5, 5), (5, 6), (5, 7), (6, 0), (6, 1), (6, 2), (6, 3), (6, 4), (6, 5), (6, 6), (6, 7), (7, 0), (7, 1), (7, 2), (7, 3), (7, 4), (7, 5), (7, 6), (7, 7)] dram = [(8, 0), (9, 0), (10, 0), (8, 1), (9, 1), (10, 1), (8, 2), (9, 2), (10, 2), (8, 3), (9, 3), (10, 3)]}, supported_data_types = [<f32>, <f16>, <bf16>, <bfp_f8>, <bfp_bf8>, <bfp_f4>, <bfp_bf4>, <bfp_f2>, <bfp_bf2>, <u32>, <u16>, <u8>], supported_tile_sizes = [(4 x 16), (16 x 16), (32 x 16), (4 x 32), (16 x 32), (32 x 32)]}], [0], [3 : i32], [<0, 0, 0, 0>]>} {
  func.func public @main(%arg0: tensor<f32, #tt.layout<() -> (0, 0), undef, <1x1>, memref<1x1xf32, #tt.memory_space<system>>>> {mhlo.layout_mode = "default"}) -> (tensor<f32, #tt.layout<() -> (0, 0), undef, <1x1>, memref<1x1xf32, #tt.memory_space<system>>>> {jax.result_info = "", mhlo.layout_mode = "default"}) {
    %0 = "ttnn.open_device"() <{device_ids = [0]}> : () -> !tt.device<<#tt.grid<8x8, (d0, d1) -> (0, d0, d1)>, [0]>>
    "ttnn.close_device"(%0) : (!tt.device<<#tt.grid<8x8, (d0, d1) -> (0, d0, d1)>, [0]>>) -> ()
    return %arg0 : tensor<f32, #tt.layout<() -> (0, 0), undef, <1x1>, memref<1x1xf32, #tt.memory_space<system>>>>
  }
}

Yeah I agree with @sdjordjevicTT, I think this should just be a strict type conversion to a 1d tensor.  The runtime is going to give us tensors, so there will be some contract there where it's expected that the runtime wraps the scalar in a runtime tensor.  This is required from the runtime side anyway, there is no other type to pass in.

We should be able to do this in StableHLOToTTIR.cpp, it's just a new case for typeConverter declared on line 75.  We should just add a conversion that matches their scalar type and just picks the corresponding tensor type and make it 1d.

Ok got it, so we keep it as 1d tensor, yeah I think it can be done in StableHLOToTTIR.cpp, let me try. Thanks all.


Error "Scaffold.geometryOf() must only be accessed during the paint phase" freezes any further interactions in debug mode

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce

Run application in debug mode
Go through the pages
Come back (by using "back" button) to the main page

Expected results
Interactive state of an application
Actual results
Application became fully unfunctional (not responding to any clicks or ever)
Similar issues:

https://github.com/flutter/flutter/issues/126513
https://github.com/flutter/flutter/issues/108363
https://github.com/flutter/flutter/issues/76325

Code sample
Code sample
Taken from #108363:
import 'package:flutter/material.dart';

void main() async {
  runApp(const MaterialApp(home: Search()));
}

class SearchState extends State<Search> {
  final List<String> _languages = ["French", "Dutch"];
  List<String> _items = [];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Languages'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(8.0),
        child: Column(
          children: [
            TextField(
              autofocus: true,
              onChanged: (value) async {
                List<String> items = [value, "word 1", "word 2", "word 3"];
                setState(() {
                  _items = items;
                });
              },
              decoration: const InputDecoration(
                hintText: 'Search',
                contentPadding:
                    EdgeInsets.symmetric(vertical: 10.0, horizontal: 20.0),
                border: OutlineInputBorder(),
                enabledBorder: OutlineInputBorder(
                  borderSide:
                      BorderSide(color: Colors.lightBlueAccent, width: 1.0),
                ),
                focusedBorder: OutlineInputBorder(
                  borderSide:
                      BorderSide(color: Colors.lightBlueAccent, width: 2.0),
                ),
              ),
            ),
            Expanded(
              child: ListView.builder(
                  scrollDirection: Axis.vertical,
                  itemCount: _items.length,
                  itemBuilder: (context, index) {
                    return ListTile(
                      title: Text(_items[index]),
                      shape: const RoundedRectangleBorder(
                        side: BorderSide(color: Colors.black38, width: .3),
                        borderRadius: BorderRadius.all(Radius.circular(3)),
                      ),
                      onTap: () async {
                        Navigator.push(
                            context,
                            MaterialPageRoute(
                              builder: (context) => WordDisplay(),
                            ));
                      },
                    );
                  }),
            )
          ],
        ),
      ),
    );
  }
}

class Search extends StatefulWidget {
  const Search({super.key});

  @override
  SearchState createState() => SearchState();
}

class WordDisplay extends StatelessWidget {
  const WordDisplay({Key? key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text("Word"),
      ),
      bottomNavigationBar: BottomAppBar(
        shape: const CircularNotchedRectangle(),
        child: Container(
          height: 50,
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () => {},
        tooltip: 'Tables of forms',
        child: const Icon(Icons.grid_on_outlined),
      ),
      floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
      body: const Text("data"),
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration
https://github.com/flutter/flutter/assets/8281925/012cf449-94b9-4328-aa3b-0a0f3c6b678f

Logs
Logs
# first error:
The following assertion was thrown while handling a pointer data packet:
Scaffold.geometryOf() must only be accessed during the paint phase.
The ScaffoldGeometry is only available during the paint phase, because its value is computed during
the animation and layout phases prior to painting.

When the exception was thrown, this was the stack:
#0      _ScaffoldGeometryNotifier.value.<anonymous closure> (package:flutter/src/material/scaffold.dart:831:9)
#1      _ScaffoldGeometryNotifier.value (package:flutter/src/material/scaffold.dart:838:6)
#2      _BottomAppBarClipper.getClip (package:flutter/src/material/bottom_app_bar.dart:262:35)
#3      _RenderCustomClip._updateClip (package:flutter/src/rendering/proxy_box.dart:1438:25)
#4      RenderPhysicalShape.hitTest (package:flutter/src/rendering/proxy_box.dart:2099:7)

Another exception was thrown: Scaffold.geometryOf() must only be accessed during the paint phase.

# infinite loop of:
Another exception was thrown: 'package:flutter/src/rendering/mouse_tracker.dart': Failed assertion: line 205 pos 12: '!_debugDuringDeviceUpdate': is not true.

# additional errors:
Another exception was thrown: 'package:flutter/src/rendering/mouse_tracker.dart': Failed assertion: line 226 pos 12: '(event is PointerAddedEvent) == (lastEvent is
PointerRemovedEvent)': is not true.

Flutter Doctor output
Doctor output
[✓] Flutter (Channel stable, 3.13.3, on KDE neon 5.27 6.2.0-32-generic, locale en_AG)
    • Flutter version 3.13.3 on channel stable at /home/vlyskouski/Programs/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision<PHONE_NUMBER> (4 дня назад), 2023-09-06 14:32:31 -0700
    • Engine revision b8d35810e9
    • Dart version 3.1.1
    • DevTools version 2.25.0

Hi @lyskouski. Thanks for filing this. Running the sample provided on the latest stable version, I'm unable to reproduce this. Can you please provide more information on how this reproduces?
https://github.com/flutter/flutter/assets/53122008/6fdf8219-ef82-479a-b57c-d953af144e66
flutter doctor -v

[✓] Flutter (Channel stable, 3.13.3, on macOS 13.0 22A380 darwin-arm64, locale
    en-NG)
    • Flutter version 3.13.3 on channel stable at
      /Users/damilolaalimi/sdks/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision<PHONE_NUMBER> (5 days ago), 2023-09-06 14:32:31 -0700
    • Engine revision b8d35810e9
    • Dart version 3.1.1
    • DevTools version 2.25.0

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/damilolaalimi/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Users/damilolaalimi/Library/Android/sdk
    • Java binary at: /Applications/Android
      Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

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

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

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

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

[✓] Connected device (6 available)
    • sdk gphone64 arm64 (mobile) • emulator-5554                        •
      android-arm64  • Android 14 (API 34) (emulator)
    • iPhone 13 Pro (mobile)      • 14B6FEE4-2F1C-401F-8804-A5115D7A6DA2 • ios
      • com.apple.CoreSimulator.SimRuntime.iOS-16-4 (simulator)
    • iPhone 14 (mobile)          • 1A122DE2-0CAB-4C3E-A395-691BF27D626F • ios
      • com.apple.CoreSimulator.SimRuntime.iOS-16-4 (simulator)
    • iPhone 14 Pro (mobile)      • 6548B0D1-7674-4306-9852-198C465F1104 • ios
      • com.apple.CoreSimulator.SimRuntime.iOS-16-4 (simulator)
    • macOS (desktop)             • macos                                •
      darwin-arm64   • macOS 13.0 22A380 darwin-arm64
    • Chrome (web)                • chrome                               •
      web-javascript • Google Chrome 116.0.5845.179

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

• No issues found!

It can be used "more complex" example:

step through initial steps (confirm settings, acknowledge privacy policy, next steps can be skipped by refresh button | reopen app [hot reload])
Menu -> Settings -> Recovery -> Recovery from file: app-finance.log
Refresh page | reopen app (hot reload)
Click on "qwe" Bill, then tap on "Back" button

https://github.com/flutter/flutter/assets/8281925/d618f370-72a4-496d-81c6-662ee799d400

Thanks for your response @lyskouski. I see you're reproducing this with a large app, Please check this answer to see if it is helpful for this case.
If this still appears, please we'd need you to provide a completed and minimal reproducible code sample that doesn’t include 3rd party plugins or complex production code so that we may verify this.
Thank you!

Helllo @dam-ease,
You're right, I've been able to caught a constantly reproducible state of the issue on a large app. The minimal code, is not giving a stable outcome, it's been attached at the beginning. Assume, it might be a platform specific issue as well (I've seen your video for macOS, on Linux it was much easier to catch).
I've forked Flutter repository to unblock myself with the change: https://github.com/flutter/flutter/pull/134409/files
Might rely on your assistance to fix tests by not seeing the output of failures (| 01:57 +3162 ~4 -10: Some tests failed).
Thanks in advance

Thanks for your response. Not sure I fully understand this. Are you able to solve the issue with resetting the FABLocation?
Note: For us to proceed with the issue we'd need to be able to reproduce on our end with a completed and minimal reproducible code sample that doesn’t include 3rd party plugins or complex production code. Kindly let me know if the solution in the Thread worked or more info on this?

Nope, I wasn't able to solve the issue by resetting the FABLocation, I've forked Flutter repository, patched, and bind it via  export PATH="$PATH:~/flutter_patch/bin".
I'll try to prepare a minimal code sample.

Next sample can be used:
import 'package:flutter/material.dart';

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

class MyApp extends StatefulWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  MyAppState createState() => MyAppState();
}

class MyAppState extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        bottomNavigationBar: BottomAppBar(
          color: Colors.yellow,
          padding: EdgeInsets.zero,
          notchMargin: CircularProgressIndicator.strokeAlignCenter,
          clipBehavior: Clip.none,
          elevation: 0.0,
          height: 40,
          child: Row(
            mainAxisAlignment: MainAxisAlignment.spaceBetween,
            children: [Text('1'), Text('2')],
          ),
        ),
        floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
        floatingActionButton: FloatingActionButton(
          onPressed: () {},
          tooltip: 'Sample 1',
          child: const Icon(Icons.add),
        ),
        body: Container(
          width: double.infinity,
          color: Colors.grey,
          child: SingleChildScrollView(
            child: Column(
              children: <Widget>[
                const Text(
                  'Start App, uncomment `Expanded`, '
                  'resize window to 100x100 for the scrolling, '
                  'apply hot reload (r), '
                  'scroll down',
                ),
                SizedBox(height: MediaQuery.sizeOf(context).height / 2),
                const Text(
                  'Start App, uncomment `Expanded`, '
                  'resize window to 100x100 for the scrolling, '
                  'apply hot reload (r), '
                  'scroll down',
                ),
                SizedBox(height: MediaQuery.sizeOf(context).height / 2),
                Column(
                  children: [
                    //Expanded(child:
                    Text('Error state'),
                    //),
                    SizedBox(height: 100),
                  ],
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}

@lyskouski Thanks for the update. But when uncommenting the Expanded widget as stated in the sample code, I got another layout issue instead. I managed to fix it as the following sample code:

Replace Expanded with Flexible
Add mainAxisSize: MainAxisSize.min to the nested Column

Updated sample code
import 'package:flutter/material.dart';

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

class MyApp extends StatefulWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  MyAppState createState() => MyAppState();
}

class MyAppState extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        bottomNavigationBar: const BottomAppBar(
          color: Colors.yellow,
          padding: EdgeInsets.zero,
          notchMargin: CircularProgressIndicator.strokeAlignCenter,
          clipBehavior: Clip.none,
          elevation: 0.0,
          height: 40,
          child: Row(
            mainAxisAlignment: MainAxisAlignment.spaceBetween,
            children: [Text('1'), Text('2')],
          ),
        ),
        floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
        floatingActionButton: FloatingActionButton(
          onPressed: () {},
          tooltip: 'Sample 1',
          child: const Icon(Icons.add),
        ),
        body: Container(
          width: double.infinity,
          color: Colors.grey,
          child: SingleChildScrollView(
            child: Column(
              children: <Widget>[
                const Text(
                  'Start App, uncomment `Expanded`, '
                  'resize window to 100x100 for the scrolling, '
                  'apply hot reload (r), '
                  'scroll down',
                ),
                SizedBox(height: MediaQuery.sizeOf(context).height / 2),
                const Text(
                  'Start App, uncomment `Expanded`, '
                  'resize window to 100x100 for the scrolling, '
                  'apply hot reload (r), '
                  'scroll down',
                ),
                SizedBox(height: MediaQuery.sizeOf(context).height / 2),
                const Column(
                  mainAxisSize: MainAxisSize.min,
                  children: [
                    Flexible(
                      child: Text('Error state'),
                    ),
                    SizedBox(height: 100),
                  ],
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}

Then follow the steps there but can't reproduce this issue. Can you check this updated code and retry?
It would be appreciated if you could provide detailed steps (a recorded video). Thanks!

Video with updated sample:
https://github.com/flutter/flutter/assets/8281925/22599b4c-41e4-4d53-a227-2031a88bc48a

Hi @lyskouski. Thanks for your response. I see the issue you are experiencing running the latest code sample you shared but this seems to be a layout issue looking at the logs, replacing the Expanded widget in the sample with a Flexible widget solves this (see code sample below). Can you try this out?
If this doesn't work for your use case, could you provide more information to help understand this better?
Code Sample

import 'package:flutter/material.dart';

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

class MyApp extends StatefulWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  MyAppState createState() => MyAppState();
}

class MyAppState extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
    final state = UniqueKey();
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        bottomNavigationBar: const BottomAppBar(
          color: Colors.yellow,
          padding: EdgeInsets.zero,
          notchMargin: CircularProgressIndicator.strokeAlignCenter,
          clipBehavior: Clip.none,
          elevation: 0.0,
          height: 40,
          child: Row(
            mainAxisAlignment: MainAxisAlignment.spaceBetween,
            children: [Text('1'), Text('2')],
          ),
        ),
        floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
        floatingActionButton: FloatingActionButton(
          onPressed: () {},
          tooltip: 'Sample 1',
          child: const Icon(Icons.add),
        ),
        body: Container(
          width: double.infinity,
          color: Colors.grey,
          child: SingleChildScrollView(
            child: Column(
              children: <Widget>[
                Tooltip(
                  message: '$state Start App, uncomment `Expanded`, '
                      'resize window to 100x100 for the scrolling, '
                      'apply hot reload (r), '
                      'scroll down',
                  child: Text(
                    '$state Start App, uncomment `Expanded`, '
                    'resize window to 100x100 for the scrolling, '
                    'apply hot reload (r), '
                    'scroll down',
                  ),
                ),
                SizedBox(height: MediaQuery.sizeOf(context).height / 2),
                Tooltip(
                  message: '$state Start App, `Flexible` to `Expanded`, '
                      'resize window to 100x100 for the scrolling, '
                      'apply hot reload (r), '
                      'scroll down',
                  child: Text(
                    '$state Start App, `Flexible` to `Expanded`, '
                    'resize window to 100x100 for the scrolling, '
                    'apply hot reload (r), '
                    'scroll down',
                  ),
                ),
                SizedBox(height: MediaQuery.sizeOf(context).height / 2),
                Column(
                  mainAxisSize: MainAxisSize.min,
                  children: [
                    Flexible(
                      child: Text('$state Error state'),
                    ),
                    const SizedBox(height: 100),
                  ],
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}


Bug:  Error saving

When I clicked 'Save and continue' it wouldn't take me to the next page so I scrolled up and noticed that it said that there was an error saving
This happened a few times.  The first couple of times I think John and I were editing the same application at the same time.  I created a new application to work on and the screen captures are from the errors I encountered after that.

error on a different page:

Looks like it logged me off at some point


Update 180-generating-down-migrations.mdx

Describe this PR

Changes

What issue does this fix?

Any other relevant information

Nice, thanks @nikolasburk !


Add reasoning in the comment when forward inactive needinfos

I think it is better to not land/deploy this until resolving #1483
Checklist

[ ] Type annotations added to new functions
[ ] Docs added to functions touched in main classes
[x] Dry-run produced the expected results

I will merge this for now and it should be deployed alongside #1507


Can Hugo render a table without a header?

According to introduction page, Hugo uses native Markdown support. I know that by default Markdown requires each table to have a header, but sometimes it is very useful to create a table without it:
| | |
---|---
x|5
y|3

x
5

y
3

As you can see in this example, the header seems to be rather useless. Of course, I could put variable name and variable value there, but that does not seems to be necessary, since the table is self explainatory.
I tried to create a table without a header in Hugo (I removed the first line: | | |) but the Markdown file was not parsed correctly (I got —|— x|5 y|3 as a result). When I left the first line, I got a table with an empty header (and it looked ugly when I added a border around the cells).
I know that what I'm asking for is against the standard (at least I think it is) but some Markdown processors (like kramdown) don't have such limitations (a table without a header can be easily rendered). I also know that Markdown let's you add HTML code, but that would be a very ugly solution.
Is there a chance that Hugo will be able to render a headerless table using a Markdown file? I would rather not resort to using Jekyll :)
The version I used was:
v0.16-DEV BuildDate: 2016-02-06T18:14:17+01:00

Please use http://discuss.gohugo.io/ for questions/troubleshooting. Also see  Hugo Documentation.

@brendan-McCoy
`

text

`

The easiest option I ended up using:

Completely hides the empty header cells not used.
Preserves table header cells that actually have content.
Maintains spacing without needing to adjust anything around it.
You don't need to add/change any .md markdown.

table tr th:empty {
  display: none;
}


Setup GitHub Pages

Every great library deserves documentation on how to use it. We'll use GitHub Pages to host a mini site to provide users with the necessary information how to setup and use our bot.
Maybe this is the ideal place to put a button, "Install Autobump", redirecting the user to BitBucket Cloud to complete the oauth flow?
Acceptance criteria:

Documentation of Autobump can be consulted via GitHub Pages.

References:

https://pages.github.com/

Github pages is available at https://autobump.github.io/autobump/


Ros2 v0.8.0 localization launch

[x]  Build passed

[ ] ros2 launch success.

[x] Test  passed


Log to stdout in production

This makes it easier to deliver logs to the Elasticsearch/Logstash/Kibana stack. It does not affect environments other than production.

LGTM.


Support Webpack's sideEffects property in package.json.

When it comes to the problem of side-effects, Webpack has a means of marking specific files as having them through a property on the module's package.json file.
This could be used by this plugin as an indicator to use a more rigorous processing method on them or ignore them entirely.
It is a little complex, though, as you would need to check not only the current project's package.json file, but also those of any other node_modules that may have been included by the current project.
It also is a bit dependent on other node_modules properly using this Webpack feature.  Perhaps allow some configuration for a strictSideEffects mode, where any module that lacks the sideEffects property is assumed to have them and ignored by this plugin.

This would be interesting to support. Once we complete the transition to Webpack 4 at work, I'll put some effort into this.

If you're doing some work with this in Webpack, I had started an attempt to convert this project into a Webpack loader.  The code is currently available on GitHub if you would like to take a look.
I figured, if this plugin was this tightly coupled to Webpack, may as well just use Webpack directly and enhance its ability to resolve imports even further.
However, I am not entirely happy with its current implementation; I was kind of hoping that Babel 8 would hit soon and bring async plugins with it and greatly simplify its complexity, but it hasn't happened yet.  So, I started my own async-traversal wrapper for Babel in the mean time, but it has not reached a point of maturity where it is ready to be trialed using it in the Webpack loader.
It may be that I should explore making a Webpack plugin instead of a loader.
But anyways, it's there if you would like to pick bits out of it or even contribute; it is a fork of this repo, but has been heavily transformed.

One reason why I initially decided to make this a Babel plugin and not a Webpack plugin is that most Webpack projects already use Babel to transform their code. If you write this as a Webpack loader or plugin, you pay the cost of Babel having to parse the code at least twice (once by this custom loader, and once by the babel-loader itself).
https://github.com/JHawkley/resolve-imports-loader/blob/master/src/transformLoader.js#L96 runs twice on the entire code base. If you have a large code base, this becomes expensive. At least, this is what I understand from it. Please do correct me if I am wrong :)
I understand it's more convenient to have this as a Webpack loader and we could see if we can port some code the from your project here. From what I can see, you still have a stand-alone Babel plugin in https://github.com/JHawkley/resolve-imports-loader/blob/master/src/babel.js and the code looks a bit cleaner than this one. Maybe we can even find a way for the Webpack loader to use the same plugin code. Let me know if this is something you're interested in exploring.

This is true, and I do my best to reduce it with things like the unsafeASTCaching option.  I also took care to ensure that this plugin was at home in concurrent pipelines, meaning it is possible to gain some speed back through parallel execution, as well.
However, what you lose in performance, you gain back in correctness and completeness.  The Babel plugin makes a couple critical assumptions that often turn out to be false in a Webpack project:

All imports point to a JavaScript source file that exists somewhere on disk.
The source code seen on disk will never differ from the source code actually emitted by Webpack.

So, this led to a problem where the Babel plugin would fail when trying to deal with imports that are transformed-by or the-product-of another Webpack loader.
As an example, you may have an image-loader that allows importing a JPG or PNG file as an ES6 module; it might build a small JavaScript wrapper around these resources that your project can then use to apply custom formatting based on the image's size or aspect-ratio, for example.
However, the Babel plugin has no awareness of this and would fail when it tried to open and parse a binary image file as if it was JavaScript source code, which in turn causes the entire Webpack build to fail.
There were other edge cases that I hit as well; I believe in one case a Webpack loader was creating changes between the JavaScript source on disk and the source Webpack would actually build with, so the Babel plugin ended up emitting transformations that were not actually correct for the final output.
So, this was the main motivator to turn it into a Webpack loader.  Perhaps it would be possible to sniff the Webpack config file and detect these exceptions, however that seemed like a lot more work and more prone to failure compared to just asking Webpack to provide the source it's going to actually build with and transform that in isolation.


StatusInformers do not work across Namespaces

I've implemented StatusInformers for the multi-namespace app listed in #1352, but they do not appear to detect when the nginx pod in the hardcoded namespace becomes ready.

@dexhorthy i wasnt able to reproduce this with the following yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-test
  namespace: namespace2

apiVersion: kots.io/v1beta1
kind: Application
metadata:
  name: ethan-kots
spec:
  title: Ethan Kots
  statusInformers:
    - namespace2/deployment/nginx-test

This may have been fixed by https://github.com/replicatedhq/kotsadm/pull/1453. But I don't believe that's released yet. If the resource was in a different namespace than the admin console, the console wouldn't get status for the resource (it would always report Missing).

Mystery solved. Thanks for the contribution @MikaelSmith !


PPC:  Include thunk pattern

Is your feature request related to a problem? Please describe.
The pattern file does not include any thunk logic.  The MIPS pattern has a pattern that will match on a thunk which looks to mirror the PPC thunks I'm seeing.
Describe the solution you'd like
Add a <pattern> that includes <funcstart validcode="function" thunk="true"> to create thunks (in addition to just helping to find function starts)
Describe alternatives you've considered
manually set as thunked function
Additional context
Right now I'm seeing this sequence (regardless number of arguments)
94 21 ff f8    stwu    r1,-0x8(r1)
7c 08 02 a6    mfspr   r0,LR
90 01 00 0c    stw     r0,0xc(r1)
xx xx xx xx    bl      LABEL // OP= 0b010010 LK=1
80 01 00 0c    lwz     r0,0xc(r1)
38 21 00 08    addi    r1,r1,0x8
7c 08 03 a6    mtspr   LR,r0
4e 80 00 20    blr

the strictest pattern I think would be:
  <pattern>
      <data> 0x9421fff8 0x7c0802a6 0x9001000c 010010.. 0x.... .......1 0x8001000c 0x38210008 0x7c0803a6 0x4e800020 </data> <!-- PPC Thunk -->
      <funcstart validcode="function" thunk="true"/>
  </pattern>

Another pattern I'm seeing is:
lis     rN, %hi(addr)
addi    rN,rN,%lo(addr)
mtspr   CTR,rN
bctr

I wondering if that's okay since its not a bctrl, or would that trigger too many false positives?  The previous thunk isn't really a question of register usage, this one could likely be any volatile register (but maybe safe to assume its the same register through out, not that matters for a pattern xml file though unless you made one for each "volatile" register).  This one does get picked up most of the time by other analysis, just including as those are the only two thunks I'm seeing.

You shouldn't get that exception.  I can take a look.  I also suspect the logic won't compute the thunked function since there is follow on code after the thunk.  We might need to change the code to allow that as well, if it is going to be forced to a thunk by the function pattern.
The second pattern above could be very problematic.  Especially if it is found in the middle of code that hasn't been disassembled yet for some reason.  It sounds like it would get handled correctly as a thunk if it is found through normal disassembly.   Correct?
We have some other patterns we need to add because they have too many side-effects to do automatically, similar to the one above.
Do you have some sample bytes you could share for each thunk?

Thanks for taking a look @emteere .  I'll update tonight with more info.  I will say it only happens with queued functions to disassemble/create function, once everything is code the exception did go away, but the thunk wasn't created as you're thinking.  I have some suggestions for additional patterns and I'll post those too

48 00 00 fc 60 00 00 00 60 00 00 00 60 00 00 00 60 00 00 00 60 00 00 00 60 00 00 00 60 00 00 00 60 00 00 00 60 00 00 00 60 00 00 00 60 00 00 00 60 00 00 00 60 00 00 00 60 00 00 00 60 00 00 00 60 00 00 00 60 00 00 00 60 00 00 00 60 00 00 00 60 00 00 00 94 21 ff f8 7c 08 02 a6 90 01 00 0c 80 01 00 0c 7c 08 03 a6 38 21 00 08 4e 80 00 20 94 21 ff f8 7c 08 02 a6 90 01 00 0c 42 80 00 51 80 01 00 0c 7c 08 03 a6 38 21 00 08 4e 80 00 20 94 21 ff f8 7c 08 02 a6 90 01 00 0c 80 01 00 0c 7c 08 03 a6 38 21 00 08 4e 80 00 20 94 21 ff f8 7c 08 02 a6 90 01 00 0c 42 80 00 15 80 01 00 0c 7c 08 03 a6 38 21 00 08 4e 80 00 20 94 21 ff f8 7c 08 02 a6 90 01 00 0c 7c 63 22 14 7c 63 2a 14 7c 63 32 14 7c 63 3a 14 7c 63 42 14 80 01 00 0c 7c 08 03 a6 38 21 00 08 4e 80 00 20 94 21 ff f8 7c 08 02 a6 90 01 00 0c 38 60 00 01 38 80 00 01 38 a0 00 01 38 c0 00 01 38 e0 00 01 39 00 00 01 42 80 ff ad 80 01 00 0c 7c 08 03 a6 38 21 00 08 4e 80 00 20 94 21 ff f8 7c 08 02 a6 90 01 00 0c 80 01 00 0c 7c 08 03 a6 38 21 00 08 4e 80 00 20 94 21 ff f8 7c 08 02 a6 90 01 00 0c 42 80 ff 71 80 01 00 0c 7c 08 03 a6 38 21 00 08 4e 80 00 20 94 21 ff f8 7c 08 02 a6 90 01 00 0c 80 01 00 0c 7c 08 03 a6 38 21 00 08 4e 80 00 20 94 21 ff f8 7c 08 02 a6 90 01 00 0c 42 80 ff 35 80 01 00 0c 7c 08 03 a6 38 21 00 08 4e 80 00 20

probably overkill, just added a few empty funcs/filler and thunks for a int sum(a,b,c,d,e,f)
I have default analyzers on press disassemble on the first instruction (I loaded at 0x04000000, but PIC)
Here is my current diff on cdbf92698386df1d08610473b0a5369f7cda7077 .  Whitespace/alignment accounts for a few lines, but the big addition is having mfspr lr, r0 before the stwu.  An image I had been messing with a while was at 300k and these additional pre/post patterns brought it up to 350k functions I think.
https://gist.github.com/mumbel/4f77c182c3e1d3c93372c00bac4a83ad

Was thinking about the first function calling another function then doing a normal return is a problematic thunk pattern.
This could occur in any normal program.  In any given program there are probably many examples of one function calling another with the same args or no args on caller/callee.
We do have some support along these lines, were you can thunk another function and the thunking function and thunkee have a different name.
What happens is just the parameters are pulled from the thunkee.
I suppose with that thinking we could allow this function in general to be autoidentified as a thunk as long as the name on the thunking function can change later.
RIght now we try to figure out that there are no side-effects from the function calling the other function, like adding an argument before calling or jumping to the other function.  We currently don't see a call to another function as a thunk.

@mumbel if you get a chance, give the following change a try.
There was some additional logic needed to force the call to be the target of the thunk.
I think I agree with adding the thunk which just calls the other function.
The thunk could be recognized as just a call and no other side-effects, but it could be problematic, so this is easier.
We could do the automatic recognition later.
If it works for you, I can change the logic and if you would like to contribute the patterns, otherwise, I can make the change and add the pattern modifications.
diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/cmd/function/CreateThunkFunctionCmd.java b/Ghidra/Features/Base/src/main/java/ghidra/app/cmd/function/CreateThunkFunctionCmd.java
index 8846dd6..c4f08ea 100644
--- a/Ghidra/Features/Base/src/main/java/ghidra/app/cmd/function/CreateThunkFunctionCmd.java
+++ b/Ghidra/Features/Base/src/main/java/ghidra/app/cmd/function/CreateThunkFunctionCmd.java
@@ -16,7 +16,10 @@
 package ghidra.app.cmd.function;

 import java.math.BigInteger;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
 import java.util.concurrent.atomic.AtomicInteger;

 import ghidra.app.util.PseudoDisassembler;
@@ -26,6 +29,9 @@
 import ghidra.program.model.address.*;
 import ghidra.program.model.block.BasicBlockModel;
 import ghidra.program.model.block.CodeBlock;
+import ghidra.program.model.block.CodeBlockReference;
+import ghidra.program.model.block.CodeBlockReferenceIterator;
+import ghidra.program.model.block.SimpleBlockModel;
 import ghidra.program.model.lang.Register;
 import ghidra.program.model.lang.RegisterValue;
 import ghidra.program.model.listing.*;
@@ -257,7 +263,7 @@
 			TaskMonitor monitor) {

 		Listing listing = program.getListing();
-
+
 		if (referencedSymbol != null) {
 			Object obj = referencedSymbol.getObject();
 			if (obj instanceof Function) {
@@ -294,6 +300,11 @@
 			referencedFunctionAddr =
 				PseudoDisassembler.getNormalizedDisassemblyAddress(program, referencedFunctionAddr);
 		}
+
+		// if it is still no thunkAddr, grab the first basic block and the call/jump at the end of the block
+		if (referencedFunctionAddr == null && autoThunkOK) {
+			referencedFunctionAddr = getFirstBlockJumpCall(program, monitor);
+		}

 		if (referencedFunctionAddr == null) {
 			setStatusMsg(
@@ -363,6 +374,36 @@
 		return null;
 	}

+	/**
+	 * Get the first blocks unconditional jump or call destination
+	 *
+	 * @param program program
+	 * @param monitor monitor for potentially long operation
+	 * @return first blocks unconditional call/jump, null if none in first block
+	 */
+	private Address getFirstBlockJumpCall(Program program, TaskMonitor monitor) {
+		SimpleBlockModel simpleBlockModel = new SimpleBlockModel(program);
+
+		try {
+			CodeBlock codeBlockAt = simpleBlockModel.getCodeBlockAt(entry, monitor);
+			if (codeBlockAt == null) {
+				return null;
+			}
+			CodeBlockReferenceIterator destinations = codeBlockAt.getDestinations(monitor);
+			while (destinations.hasNext()) {
+				CodeBlockReference destRef = destinations.next();
+				FlowType flowType = destRef.getFlowType();
+				if ((flowType.isCall() || flowType.isJump()) && !flowType.isUnConditional()) {
+					return destRef.getDestinationAddress();
+				}
+			}
+		} catch (CancelledException e) {
+			// ignore
+		}
+
+		return null;
+	}
+
 	private Function getExternalFunction(Program program) {

 		ExternalManager externalMgr = program.getExternalManager();
@@ -406,20 +447,19 @@

 		// get the basic block
 		//
-		// NOTE: Assumption, target addres must be computable in single flow, or else isn't a thunk
+		// NOTE: Assumption, target address must be computable in single flow, or else isn't a thunk

 		BasicBlockModel basicBlockModel = new BasicBlockModel(program);
-
 		final CodeBlock jumpBlockAt =
 			basicBlockModel.getFirstCodeBlockContaining(location, monitor);
-		// If the jump target can has a computable target with only the instructions in the basic block it is found in
-		//  then it isn't a switch statment
-		//
-		// NOTE: Assumption, we have found all flows leading to the switch that might split the basic block
+		if (jumpBlockAt == null) {
+			return false;
+		}

 		final AtomicInteger foundCount = new AtomicInteger(0);
 		SymbolicPropogator prop = new SymbolicPropogator(program);

+		// try to compute the thunk by flowing constants from the start of the block
 		prop.flowConstants(jumpBlockAt.getFirstStartAddress(), jumpBlockAt,
 			new ContextEvaluatorAdapter() {
 				@Override

@emteere   I'll hopefully have time tonight to give it a try, and please if you can add that diff internally please do, no need for a PR if you're okay adding it.

@emteere   Looks good.  I did verify it still crashed with 0b95d8ee876f1f8e2c445ecfdbc1abd965415e17 and then applied your patch


Python3 adjustment, code is running smoothly

I just received a Luxafor Bluetooth.  It is now running on my Ubuntu 20.04 system on Python 3.8
All that was needed for the Python2.7 -> Python3 adaptation was removing the ", e" from the Exception catch.

@developerweeks thanks for the work on this. Do you know if the changes impact Python 2.7+ compatibility?

@vmitchell85 Confirmed to still work in Python 2.7


docs: fixed typos from docs\releases\4.0.md

Fixes #...
unintented -> unintended
Please check the following:

[ ] Do the tests still pass?[^1]
[ ] Does the code comply with the style guide?

[ ] Run make lint from the Wagtail root.

[ ] For Python changes: Have you added tests to cover the new/fixed behaviour?
[ ] For front-end changes: Did you test on all of Wagtail’s supported environments?[^2]

[ ] Please list the exact browser and operating system versions you tested:
[ ] Please list which assistive technologies [^3] you tested:

[ ] For new features: Has the documentation been updated accordingly?

Please describe additional details for testing this change.
[^1]: Development Testing
[^2]: Browser and device support
[^3]: Accessibility Target

Thanks @Smoothieewastaken!


Configure Navigation for Small Screen Usage

Currently, the navigation bar hides elements when the screen resolution drops into the 'mobile' realm. PatternFly/Bootstrap has built-in support for the navigation at those resolutions. As such, the navigation bar should be updated to the proper PatternFly/Bootstrap layout and have the jQuery expand/collapse converted to an angular component.

duplicate of https://github.com/fabric8io/fabric8-ui/issues/1529


Adding dockerization

Description
Adding Dockerfile support to help build a container image. Updated documentation and did some minor update to the curl command
Type of Change

[ ] Bug Fix
[*] New Feature
[ ] Breaking Change
[ ] Refactor
[ ] Documentation
[ ] Other (please describe)

Checklist

[*] I have read the contributing guidelines
[ ] Existing issues have been referenced (where applicable)
[ ] I have verified this change is not present in other open pull requests
[*] Functionality is documented
[ ] All code style checks pass
[ ] New code contribution is covered by automated tests
[ ] All new and existing tests pass

Pushed a new version with updated README, the volume mount option is not working for some reason (could be my JRE container doesn't have proper shell)

@ashok-an @svrnm I've opened another PR on top of these changes. The build process is fairly straightforward and we don't need a jarFile param. Also added CI to make sure future commits don't break docker build.

@ashok-an @svrnm I've opened another PR on top of these changes. The build process is fairly straightforward and we don't need a jarFile param. Also added CI to make sure future commits don't break docker build.


MongoDB Connection Timeout

Hello,
My setup: Dbeaver 4.1.1 EE (Windows 10) / MongoDB 3.2.12 on Ubuntu 16.04 under local Hyper-V Virtual Machine.
Lets start with what i get from dbeaver:
1)
Error connecting to Mongo instance [<IP_ADDRESS>]
  com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting for a server that
matches ReadPreferenceServerSelector{readPreference=primary}. Client view of cluster state is
{type=REPLICA_SET, servers=[{address=wslu.sys:27017, type=UNKNOWN, state=CONNECTING,
exception={com.mongodb.MongoSocketException: wslu.sys}, caused by
{java.net.UnknownHostException: wslu.sys}}]

and

Error connecting to Mongo instance [<IP_ADDRESS>]
  com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting for a server that
matches ReadPreferenceServerSelector{readPreference=primary}. Client view of cluster state is
{type=REPLICA_SET, servers=[{address=wslu.sys:27017, type=UNKNOWN, state=CONNECTING,
exception={com.mongodb.MongoSocketException: wslu.sys}, caused by
{java.net.UnknownHostException: wslu.sys}}]

Ad.1)
Odd thing about this part is, i'm trying to connect here, to my mongodb using SSH tunnel, which is set to my local VM ip: <IP_ADDRESS> and mongo instance on that VM, also with IP <IP_ADDRESS>. However in that error we can see both: <IP_ADDRESS> AND wslu.sys (vm hostname) - its odd. It should be <IP_ADDRESS> in both places, shouldn't it?
Ad.2)
This time, i'm trying to connect to my mongo instance DIRECTLY, so by using VM ip <IP_ADDRESS>, but again, we can see here, that somehow its trying to connect to server wslu.sys.
Both, errors are popping up when i'm NOT filling Replica Set field in connection settings. But, when i do (in scenario without ssh tunnel):
Error connecting to Mongo instance [<IP_ADDRESS>]
  com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting for a server that
matches ReadPreferenceServerSelector{readPreference=primary}. Client view of cluster state is
{type=REPLICA_SET, servers=[]

I really don't get it. Any advice?
EDIT:
My RS status output from mongo:
/* 1 */
{
    "set" : "rs",
    "date" : ISODate("2017-08-14T00:07:22.324Z"),
    "myState" : 1,
    "term" : NumberLong(68),
    "heartbeatIntervalMillis" : NumberLong(2000),
    "members" : [
        {
            "_id" : 0,
            "name" : "wslu.sys:27017",
            "health" : 1.0,
            "state" : 1,
            "stateStr" : "PRIMARY",
            "uptime" : 366700,
            "optime" : {
                "ts" : Timestamp(1502667624, 2),
                "t" : NumberLong(68)
            },
            "optimeDate" : ISODate("2017-08-13T23:40:24.000Z"),
            "electionTime" : Timestamp(1502302543, 1),
            "electionDate" : ISODate("2017-08-09T18:15:43.000Z"),
            "configVersion" : 1,
            "self" : true
        }
    ],
    "ok" : 1.0
}

Btw. RoboMongo connects without issues.

Might be correlated with #1874

"mongo - how to use javascript instead of SQL #1874" ? Really?  I saw similar problems (timeout errors) on some Mongo deployments and don't yet understand why this is happening.

Ok, so... Is there ANY scenario in which it connects correctly? Like specific mongo version? Or mongo on localhost?

Sure, it works just fine on most Mongo deployments (including clusters).
Easiest way to test it - connect to local Mongo instance.

I see that you are trying to connect with <IP_ADDRESS> and it fails. But it looks like wslu.sys is configured as cluster auth server or something.

Actually, i'm not using <IP_ADDRESS> anywere, i'm using <IP_ADDRESS> (even when using ssh tunnel). It's just dbeaver reporting connection attempt to <IP_ADDRESS>. And my mongo setup is not using any kind of authorization, i'm connecting to it using robomongo without any kind of credentials.

Weird. Do you have any idea what is wslu.sys then?

wslu.sys is my VM's hostname

Then probably the real issue is: java.net.UnknownHostException: wslu.sys
For some reason mongo (driver or server?) can't resolve this host.

I guess. So the real question is, why its even trying?

Heh, ok. So it seem, that when i added wslu.sys to windows hosts file as <IP_ADDRESS> DBeaver connected correctly. But still, why it is even trying to do that is a mystery for me. I NEVER use this hostname on my system, its only internally known to this VM, it was never used outside of it.

Well, I also have no idea why is this happening.
And I can't reproduce such behavior. Perhaps at some point driver converts IP address into host address (for whatever reason).
I'll investigate this a bit more (this shouldn't happen - as RoboMongo doesn't fall into this problem).

After all I think this is a result of some specific network configuration.
Closing.
Please reopen if any additional details will appear.

I totally agree that you should never edit hosts to make some app work.
However I just can't reproduce this and I can't figure out what is happening inside the driver (I need access to the specific environment to debug it - but it is not possible in this case).
DBeaver do not read replicaset address from the server - this happens in Mongo driver itself.
I've googled quite a lot of similar problem with replicaset resolution in Java driver and there are no solutions so far (without making hosts resolvable from all involved clients/nodes).
Anyway, thanks for report. Probably the same issue will occur in other environments too. And perhaps we'll still be able resolve this one day (or Mongo team will fix the driver).
PS In fact "guys" is just me :)

We got the same issue. the problem for us is that DBeaver is not using SSH tunnel it creates to connect to replicaset members. it tries to connect to them directly and fails because (our mongodb is available only via SSH tunnel)

I'll try something like this - https://blockdev.io/connecting-to-a-mongo-replica-set-via-ssh/
but this doesn't look like a general solution (even without manual patching of hosts file).
I wondering does anybody succeed in connecting to replicaset using Java driver..

Or maybe we should avoid replica set connect at all.
According to https://jira.mongodb.org/browse/JAVA-2211 this might work (by specifying single target host address).
Maybe we need a special checkbox on connection page or maybe it has to work like this by default (if only one mongo address is specified)

Extra driver property was added. It may help in case of SSH tunnel and replica sets.
You could try it in version 4.3:

Please try this new config parameter in 4.3.
Reopen if problem persists.

i think we getting timeout error because URL template:
mongo://{host}[:{port}]/{database}
i have seen other clients using
mongodb://{host}[:{port}]/{database}
but Driver Manager locks MongoDB Edition.

DBeaver doesn't use JDBC driver for Mongo connection. This URL isn't actually used, it is just a brief form of connection info. So this is definitely not the problem which causes timeout.

well, what's the reason? if you have a hot fix, please let me know it, thanks.

I can't say because I can't reproduce this. And I don't fully understand the nature of this problem.
Did you try to use some 3rd party SSH client (e.g. Putty) for SSH tunnel?


CI: disable cache restore for Ubuntu

Attempt to fix the link errors when building integration tests

Nope. That wasn't it.


chore: upgrade natural to v6

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#116
#115  👈
#114
#113
#112
main

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

Join @lynnntropy and the rest of your teammates on  Graphite

Merge activity

Mar 2, 10:51 AM EST: @lynnntropy started a stack merge that includes this pull request via Graphite.


RegexNotFoundError

youtube-dl is doing this for any video that I try to download. Not sure what happened, as it was working just a few days ago.
youtube-dl http://youtu.be/zKX_zR022
QY
[youtube] Setting language
[youtube] zKX_zR022QY: Downloading webpage
[youtube] zKX_zR022QY: Downloading video info webpage
[youtube] zKX_zR022QY: Extracting video information
[youtube] zKX_zR022QY: Encrypted signatures detected.
[youtube] zKX_zR022QY: Downloading js player vflE8_7k0
ERROR: Signature extraction failed: Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/youtube_dl/extractor/youtube.py", line
    video_id, player_url, s
  File "/usr/lib/python2.7/dist-packages/youtube_dl/extractor/youtube.py", line
    res = self._parse_sig_js(code)
  File "/usr/lib/python2.7/dist-packages/youtube_dl/extractor/youtube.py", line
    u'Initial JS player signature function name')
  File "/usr/lib/python2.7/dist-packages/youtube_dl/extractor/common.py", line 3
    raise RegexNotFoundError(u'Unable to extract %s' % _name)
RegexNotFoundError: Unable to extract Initial JS player signature function name;
; please report this issue on https://yt-dl.org/bug . Be sure to call youtube-dl

Post the full output of youtube-dl when run with --verbose option.

Updated :)

You are using an outdated version of youtube-dl. Read our FAQ if you have troubles updating.