Script ignores first argument

https://github.com/geerlingguy/macos-virtualbox-vm/blob/c18feb01d4c871f64d908999372b5ae174646ecb/prepare-iso.sh#L148
The script instructions say the first argument is the path to the installer, but it does no use this argument and instead looks for Sierra, then Capitan, then etc. installers. This causes confusion if you have multiple installers including Sierra, but want to run the script on something other than Sierra.

I've created a PR to fix this and it's on my Github acct, if you're interested.

@kylegoetz - Can you file a PR against this issue/project?

I have a PR pending for this.


feat(diffusers/models): add models like autoencoders, transformers, unets and etc.

What does this PR do?

Adds # (feature)
implements of models in mindone.diffusers.models, include:
Model
AutoEncoders

[x] AutoencoderKL
[x] AsymmetricAutoencoderKL
[x] AutoencoderKLTemporalDecoder
[x] ConsistencyDecoderVAE
[x] AutoEncoderTiny
[x] VQModel

UNets

[ ] UNet1DModel
[x] UNet2DModel
[x] UNet2DConditionModel
[x] UNet3DConditionModel
[x] I2VGenXLUNet
[x] Kandinsky3UNet
[x] UNetSpatioTemporalConditionModel
[x] UNetMotionModel
[ ] StableCascadeUNet
[x] UViT2DModel

Transformers

[x] Transformer2DModel
[x] TransformerTemporalModel
[x] T5FilmDecoder
[x] PriorTransformer
[x] DualTransformer2DModel

supplement: https://gist.github.com/Cui-yshoho/7ff86a76323c37f1c197d7fef67702ec
Before submitting

[ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case).
[ ] Did you read the contributor guideline?
[ ] Did you make sure to update the documentation with your changes? E.g. record bug fixes or new features in What's New. Here are the
documentation guidelines
[ ] Did you build and run the code without any errors?
[ ] Did you report the running environment (NPU type/MS version) and performance in the doc? (better record it for data loading, model inference, or training tasks)
[ ] Did you write any new necessary tests?

Who can review?
Anyone in the community is free to review the PR once the tests have passed. Feel free to tag
members/contributors who may be interested in your PR.
@xxx

yushi，huiyu合入后，rebase， resolve conflict

done.

use magic number 0.797885 to replace math.sqrt(2.0 / math.pi), passed ut on cpu in {fp16, fp32} x {pynative, graph} with almost same results comparing to pytorch


Need to be more clear about what each "state" is

A model containing two states may actually represent a bulk sample of 1023 molecules, where some fraction of those molecules are in one state (different conformation and/or composition) and some other fraction are in a different state. Alternatively, the experimental data may have been determined from a single molecule experiment, in which case the different states in the model are adopted by the same molecule at different points in time (and the experiment returns some kind of convolution of these states). These two conditions should be distinguished - perhaps with an extra enumeration in the ihm_multi_state_modeling table. (An alternative solution would be to require that the latter case be treated as a single state, with multiple time points; the problem here is that since the data are convoluted there is no way to order the states.)

Added _ihm_multi_state_modeling.experiment_type as enumerated list with "Fraction of bulk" and "Single molecule" as options.


Unset terminal emulation for consistent output in tests

To avoid printing colors and other special formatting (like bold or underline) in command outputs that would break the equality check when comparing with provided file text output in tests
Without:
14) Castor\Tests\Examples\OutputOutputTest::test
Failed asserting that two strings are equal.
--- Expected
+++ Actual
@@ @@
 '\n
-This is a title\n
-===============\n
+This is a title\n
+===============\n
 \n
  This is the command "output:output"\n
 \n
- // With IO, you can ask questions ...                                                                                \n
+ // With IO, you can ask questions ...                                                                                \n
 \n
- Tell me something:\n
+ Tell me something:\n
  > '

21) Castor\Tests\Examples\WaitForWaitForUrlWithContentCheckerTaskTest::test
Failed asserting that two strings are equal.
--- Expected
+++ Actual
@@ @@
-'Waiting for URL "https://example.com" to return HTTP status "200"... OK\n
+'Waiting for URL "https://example.com" to return HTTP status "200"... OK\n
 \n
 '

Couldn't run the tests properly on my local without this.

see #237 instead

Oh, nice timing :sweat_smile: , closing then, thanks :+1:


silently ignored invalid type-annotation

This program has an incorrect type-annotation for the function work_on_file. However, irken will silently compile it just fine. Adding the -types option curiously causes it to catch the type error.
(include "lib/basis.scm")

(typealias file_descriptor int)

(define (work_on_file f) : (file_descriptor)  ;; should be (file_descriptor -> int
   0 )

(work_on_file 1)

I think this is a dup of #24.


Column validation on table with many columns raises maximum recursion depth exception

We've had issues reporting this for row validation previously but it can also be an issue for column validation.
Example command using our integration test table:
data-validation validate column --source-conn=bq --target-conn=bq \
      --tables-list="pso_data_validator.dvt_many_cols" \
      --count="*"
...
  File "/some-path/professional-services-data-validator/data_validation/data_validation.py", line 338, in _execute_validation
    result_df = combiner.generate_report(
                ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/some-path/professional-services-data-validator/data_validation/combiner.py", line 77, in generate_report
    differences_df = client.execute(differences_pivot)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/some-path/professional-services-data-validator/.venv/lib/python3.11/site-packages/ibis/backends/pandas/__init__.py", line 307, in execute
    return execute_and_reset(node, params=params, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
  File "/usr/lib/python3.11/weakref.py", line 415, in __getitem__
    return self.data[ref(key)]
                     ^^^^^^^^
RecursionError: maximum recursion depth exceeded while calling a Python object

This was found while doing my own testing and not reported by a customer.

It is interesting that the exception is thrown in combiner.py.generate_report(). That "suggests" the actual Ibis queries completed successfully. I quoted "suggests" because I may be mistaken. We should look at what we are asking Pandas to do here to see if it can be improved.
We could also look into sys.setrecursionlimit(n), perhaps increasing from the default is sensible.


Add executor locking operation

Intended that this PR:

Fixes #36
Fixes #297
Fixes #248

The primary feature is introducing multiple thread pools directly into the runtime, so that a simple:
IO.unyielding {
   ...
}

can denote blocking / long-running tasks.
The secondary feature is to introduce a lock combinator that actually does what it says, with compositional semantics.
Remaining features just involve cleanup and a little bit of prep work (for Scala.js and other tickets).

@regiskuckaertz @RaasAhsan @iravid All right, ready for a real review. There's more work to do but it's diverging from master.

@regiskuckaertz We're quite close to that... also close to intelligent yielding (based on execution metrics), a longtime goal for RTS!


Major refector

Better tests
Refactor reporting to interfaced reporters
Added health endpoint
Added consumer group cleanup in the storage manager

Coverage increased (+20.1%) to 45.144% when pulling 6c6a4a6ad984686e61c4b523b6d4dd2ba65ea461 on reporters into 90db5f9115840bf9e76f958564eba15ed9b472d3 on master.


go/src/crypto/cipher/gcm.go: package should return error instead of panicking

Go version
1.23.0
Output of go env in your module/workspace:
GO111MODULE=''
GOARCH='arm64'
GOBIN=''
GOCACHE='/Users/ashish/Library/Caches/go-build'
GOENV='/Users/ashish/Library/Application Support/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='arm64'
GOHOSTOS='darwin'
GOINSECURE=''
GOMODCACHE='/Users/ashish/go/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='darwin'
GOPATH='/Users/ashish/go'
GOPRIVATE=''
GOPROXY='https://proxy.golang.org,direct'
GOROOT='/opt/homebrew/Cellar/go/1.23.0/libexec'
GOSUMDB='sum.golang.org'
GOTMPDIR=''
GOTOOLCHAIN='local'
GOTOOLDIR='/opt/homebrew/Cellar/go/1.23.0/libexec/pkg/tool/darwin_arm64'
GOVCS=''
GOVERSION='go1.23.0'
GODEBUG=''
GOTELEMETRY='local'
GOTELEMETRYDIR='/Users/ashish/Library/Application Support/go/telemetry'
GCCGO='gccgo'
GOARM64='v8.0'
AR='ar'
CC='cc'
CXX='c++'
CGO_ENABLED='1'
GOMOD='/Users/ashish/zoop-workspace/source-workspace/zoop-vault/go.mod'
GOWORK=''
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
PKG_CONFIG='pkg-config'
GOGCCFLAGS='-fPIC -arch arm64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -ffile-prefix-map=/var/folders/3m/67_m4cl52491fp444xl3dlxm0000gn/T/go-build674732644=/tmp/go-build -gno-record-gcc-switches -fno-common'

What did you do?
this is is a short piece of code I have written for handling AES GCM encryption and I invoked it with incorrect IV Size
`func AesDecrypt(data []byte, aesKey []byte, iv []byte) ([]byte, error) {
block, err := aes.NewCipher(aesKey)
if err != nil {
	return nil, err
}

// Create GCM mode on the cipher block
aesGCM, err := cipher.NewGCM(block)

//here this is needed because aes package panics if size is not right, instead of sending error
if len(iv) != aesGCM.NonceSize() {
	return nil, errors.New(constants.PkgErrors.AES)
}

message, err := aesGCM.Open(nil, iv, data, nil)
if err != nil {
	return nil, err
}

return message, err

}`
The crypto/cipher package in go stdlib - houses AES GCM encryption logic inside the gcm.go file -  shown as follows
func (g *gcm) Open(dst, nonce, ciphertext, data []byte) ([]byte, error) { 	if len(nonce) != g.nonceSize { 		panic("crypto/cipher: incorrect nonce length given to GCM") 	}      //more code below - refer crypto/cipher/gcm.go }
What did you see happen?
My code panicked instead of returning proper error that IV size is invalid, this prevents me from writing test cases and other code constructs that would otherwise be possible had the package returned an erro
Due to this folks who are not aware of strict restrictions on IV/Nonce perhaps due to some domain knowledge deficient -  need to add validations in there code right before invoking the Open() method
Instead if an appropriate error can returned and without panic - the package will be much better for developer experience and application reliability
What did you expect to see?
I expected that the package should return some standard error of roughly the following form
errors.New("crypto/cipher: incorrect nonce length given to GCM")

see #21624 the panics are intentional. Using incorrect nonce sizes are a programmer and must never happen.


Add example using JS framework (e.g. React, Vue)

As far as I understand, there is no writing practice and a good coding style for webui yet. When using libraries like webui in projects, you need to take into account, because the mechanisms of interlanguage interactions provided by them in multilingual programming (polyglot programming) do not allow you to combine policies (what a program should do) with an interaction protocol (what it can do) without imposing any restrictions. Taking into account the above, taking, as a framework for the development of presentation components, for example, React, several approaches to the implementation of a scheme of such interaction are seen. The first option is backend generation (Server Side Generation), when all! html+css+js code is generated and sent to the browser from the target language.
The second option is Static Components Generation, when the bootstrap code of the current form is sent from the programming language, and the form itself is a combination of html + css + js with named (id) elements that act as component mounting nodes. The lifecycle management of elements (whether it is React jsx elements, or just code generation of DOM nodes) is carried out on the side of the programming language, mounting, dismantling and state management based on user input results is the concern of the backend. This option is closest to the mvvm paradigm, where the browser acts only as a V (view), which fits perfectly into the restrictions imposed by webui.
The third option, respectively, is dynamic components generation. The only difference from the second option is that the components have a state and behavior, they cease to be pure functions, and this option may also be useful, but here you need to be careful that the business logic does not get out of the backend. The state should, logically, concern only the appearance (V) of the component, the request for the data required to form the component, as well as the implementation of a two-way data binding mechanism through, for example, the publisher subscriber model or the event bus.
To illustrate what has been said, let's take the classic example offered by React and implement it, for example, in the first variant (SSG):
unit productlist;

{$mode delphi}{$H+}

interface

uses
  WebUI, SysUtils;

type
  TProduct = record
    category: string;
    price: string;
    stocked: Boolean;
    name: string;
  end;

  TProductList = array of TProduct;

  TFilterableProductTable = class
  private
    FProducts: TProductList;
    FFilterText: string;
    FInStockOnly: Boolean;
    FWindow: size_t;

    procedure InitializeWindow;
    procedure BindEvents;
    procedure ShowView;
    procedure HandleFilterTextChange(e: PWebUI_event_t);
    procedure HandleInStockOnlyChange(e: PWebUI_event_t);
    function FilterProducts: TProductList;
    procedure RenderProductTable(products: TProductList);
    function GetProductCategoryRow(category: string): string;
    function GetProductRow(product: TProduct): string;
  public
    constructor Create(products: TProductList);
    procedure Run;
  end;

implementation

var
  FilterableTableInstance: TFilterableProductTable;

procedure FilterTextChangeWrapper(e: PWebUI_event_t);
begin
  FilterableTableInstance.HandleFilterTextChange(e);
end;

procedure InStockOnlyChangeWrapper(e: PWebUI_event_t);
begin
  FilterableTableInstance.HandleInStockOnlyChange(e);
end;

constructor TFilterableProductTable.Create(products: TProductList);
begin
  FProducts := products;
  FFilterText := '';
  FInStockOnly := False;
  InitializeWindow;
  BindEvents;
end;

procedure TFilterableProductTable.InitializeWindow;
begin
  FWindow := webui_new_window;
end;

procedure TFilterableProductTable.BindEvents;
begin
  FilterableTableInstance := Self;
  webui_bind(FWindow, 'FilterTextChange', @FilterTextChangeWrapper);
  webui_bind(FWindow, 'InStockOnlyChange', @InStockOnlyChangeWrapper);
end;

procedure TFilterableProductTable.ShowView;

function IfThen(AValue: Boolean; const ATrue: string; const AFalse: string = ''): string;
begin
  if AValue then
    Result := ATrue
  else
    Result := AFalse;
end;

begin
  webui_show(FWindow, PChar(
    '<!DOCTYPE html>
' +
    '<input type="text" value="' + FFilterText + '" onkeyup="webui_fn(`FilterTextChange`, event.target.value); console.log(event.target.value)">' +
    '<input type="checkbox" ' + IfThen(FInStockOnly, 'checked') + ' onclick="webui_fn(`InStockOnlyChange`, event.target.checked); console.log(event.target.checked)"> Only show products in stock' +
    '
' +
    '
' +
    '

Name	Price

' +
    '

' +
    '
'));
end;

procedure TFilterableProductTable.HandleFilterTextChange(e: PWebUI_event_t);
begin
  FFilterText := webui_get_string(e);
  RenderProductTable(FilterProducts);
end;

procedure TFilterableProductTable.HandleInStockOnlyChange(e: PWebUI_event_t);
begin
  FInStockOnly := webui_get_bool(e);
  RenderProductTable(FilterProducts);
end;

function TFilterableProductTable.FilterProducts: TProductList;
var
  filteredList: TProductList;
  product: TProduct;
begin
  SetLength(filteredList, 0);
  for product in FProducts do
  begin
    if (FFilterText = '') or (Pos(LowerCase(FFilterText), LowerCase(product.name)) > 0) then
    begin
      if not FInStockOnly or (FInStockOnly and product.stocked) then
      begin
        SetLength(filteredList, Length(filteredList) + 1);
        filteredList[Length(filteredList) - 1] := product;
      end;
    end;
  end;
  Result := filteredList;
end;

procedure TFilterableProductTable.RenderProductTable(products: TProductList);
var
  tableBody: string;
  product: TProduct;
  currentCategory: string;
begin
  tableBody := '';
  currentCategory := '';
  for product in products do
  begin
    if product.category <> currentCategory then
    begin
      tableBody := tableBody + GetProductCategoryRow(product.category);
      currentCategory := product.category;
    end;
    tableBody := tableBody + GetProductRow(product);
  end;
  tableBody := 'document.getElementById("productTableBody").innerHTML = `' + tableBody + '`';
  webui_run(FWindow, PChar(tableBody));
end;

function TFilterableProductTable.GetProductCategoryRow(category: string): string;
begin
  Result := '
' + category + '
';
end;

function TFilterableProductTable.GetProductRow(product: TProduct): string;
var
  name: string;
begin
  if product.stocked then
    name := product.name
  else
    name := '' + product.name + '';
  Result := '
' + name + '	' + product.price + '
';
end;

procedure TFilterableProductTable.Run;
begin
  ShowView;
  webui_wait;
end;

end.

I am a pascalist, so the example is in free pascal, but no one prevents transpiling this example to any other programming language. Due to limitations, the current version of free pascal compiler does not yet have anonymous functions, and there is no possibility of passing the procedure of object as a procedure, as required by webui, for binding, so I had to insert a crutch in the form of a state variable. I know that it is possible to make a singleton, but it will still be the same. That's all, in other programming languages this problem will most likely not be, and in free pascal it will soon also be solved with, for example, anonymous functions. Trunk already has it.

Thank you, @delphius, for this interesting article. Yes, as you said, there are three approaches, Server Side Generation, Static Components Generation, Dynamic Components Generation, And maybe a fourth approach where the backend acts mainly as a data source. I look forward to writing examples in one or all approaches when I have free time. Maybe this will require more APIs in the WebUI. Let's see.

I will try adding an example soon...

Examples can be added, but I think webui should not become an overly heavy library, is should maintain simplicity

vue and react are commonly used frameworks at present, I use webui to collect data locally, go calls js to present data, but with ui.run and ui.Script, it always does not work, there is little information about webui, please have some examples as soon as possible, thank you

ideally I'd love to just be able to point webUI at a folder containing a built copy of my vue app. serving the static assets within the same script doesn't seem to work.

I created a simple app for the purpose of having an example. It uses Go-WebUI and creates its frontend with Bun and Svelte 5. Feature- and design-wise, it is an infant, but the focus is on providing a simple example that is hopefully easy to understand eventually.

https://github.com/ttytm/gsysmo
I'm planning to keep one branch simple, without complicating things, just adding some concise notes that might help to point out some concepts on how this stack works together for the app. The goal is to provide a simple way to what is needed for a fully bundled executable. Another branch is planned to add some real features to the application, which will be beyond an example

great, just to digress, I'd like to know if there are any pallet libraries I can use. @ttytm

A C99 lib I know if is: https://github.com/zserge/tray/tree/8dd1358b92562faf7c032cf5362fa97cbc7e13e9
One drawback is that the last commit was more than 6 years ago. MacOS arm, for example, is not fully supported. However, if it is not a very complex tray that you plan to have, writing i from scratch could work, the platform apis are more or less straight forward.

It will be an all-in-one binary using webui with civetweb.
I'd like to have it as an example that is fairly general, so that the concept of combining a framework with webui is usable with other webui wrappers.
The caveat for some languages will be embedding the UI files, not the websocket. When free moments open up I'll gonna add the embedding and also a deployment workflow to show how to achieve a single-binary output in a CI pipeline.

A C99 lib I know of is: https://github.com/zserge/tray/tree/8dd1358b92562faf7c032cf5362fa97cbc7e13e9
One drawback is that the last commit was more than 6 years ago. MacOS arm, for example, is not fully supported. However, if it is not a very complex tray that you plan to have, writing it from scratch could work, the platform apis are more or less straight forward.

There is a fork which is actively maintained: https://github.com/dmikushin/tray

Oh nice. That's actually really good to know thanks for sharing!


Add support for multi line party finder notes

It's been a few months now, but I can't re-create multi-line party notes. The input for it is an anvil GUI, so it's quite limited by the number of allowed characters.
Filling the whole notes with #s or _s will move the notes to a new line.  MC 1.17 and newer allow up to 50 characters, however, Hypixel limits the party notes to just 32 chars.
Maybe the 32 char limit got introduced after your initial testing? So it used to allow up to 3 lines of notes when using mc 1.17 or newer, but now it's just either

all in one line
split into two lines
all text in a new line

The only lore line that starts with §7§f is when some party notes don't contain a space, so the notes are all in the 2nd line of party notes
The only lore line that starts with §f is when some party notes span 2 lines

the only other party lore line that starts with §f is the Members line ("§f§7Members: "), but there is always an empty line immediately before it, so it's never the line immediately after Notes:


DNS lookup in an init container fails with istio-cni and smart DNS proxying

Bug Description
When using Istio CNI and ISTIO_META_DNS_CAPTURE, my application init containers are not able to talk to external endpoints. For example, when my init container tries to curl www.httpbin.org, I get Could not resolve host: www.httpbin.org
With ISTIO_META_DNS_CAPTURE turned OFF, it can resolve fine and I would just need to set excludeOutboundIPRanges annotation to the IP of httpbin.org to get around the envoy sidecar that isn't running yet.
With ISTIO_META_DNS_CAPTURE turned ON, the dns capture is redirecting the dns lookup in the init container to the sidecar which isn't running yet.
Version
istioctl version
client version: 1.11.4
control plane version: 1.12.1
data plane version: 1.12.1 (2 proxies)

kubectl version --short
Client Version: v1.20.4-dirty
Server Version: v1.21.1+a620f50 (openshift)

Additional Information
cni-bug-report.tar.gz

This is a tricky one, I don't see an easy way around this. Seems like no easy way to selectively enable DNS capture only for proxy at CNI. At least we will need to add a document note about this limitation.

Not much we can do here until we fix the underlying issue I think (https://istio.io/latest/docs/setup/additional-setup/cni/#compatibility-with-application-init-containers)

Agree @bianpengyuan. Any workarounds you all can think of? If the init container is started with specific UUID can it bypass traffic redirection?

Yeah indeed update init container user id to 1337 would work around this. We can also document this. Actually this is "better" than the existing work around because this would allow only init container to skip capture. I will add this to the doc.


Embed LuaJIT as an alternative to Lua 5.1

In the current source tree, there's Lua 5.1, and it's possible to build hslua to use a system LuaJIT. It'd be really nice to embed LuaJIT into the hslua source tree, so it becomes something that Pandoc could switch to (see https://github.com/jgm/pandoc/issues/2452). If Pandoc used LuaJIT, all sorts of interesting custom writers are possible that 'bind on the fly' to C lib APIs...

Sure, as long as there is no problems with licensing, I don't see any reasons why not ship with LuaJIT instead of PUC-Lua.
(will look into this later)

I'm closing this, as it conflicts with our switch to using lua 5.3 per default.  It's still possible to use LuaJIT by passing the -fluajit flag to cabal (see also the README), which might be even more important now that the upcoming pandoc release have lua filters built-in.  However, I don't believe that LuaJIT sources should be included here.


Memory leak

I haven't fully diagnosed the leak yet but I've managed to get some readouts in the attached massif output in the hope it will aid you in finding the route cause.
The leak appears to happen when using this:
SecRule ARGS "@contains test" "id:50,auditlog,phase:2,t:trim,block"

As part of the following:
  modsecurity_rules '
    SecRuleEngine On
    SecAuditEngine On
    SecAuditLogParts ABCIFHZ
    SecAuditLogType Serial
    SecAuditLog /tmp/audit.log
    SecRule ARGS "@contains test" "id:50,auditlog,phase:2,t:trim,block"
    SecRule ARGS "@streq block403" "id:11,phase:1,status:403,block"
    SecRule ARGS "@streq redirect302" "id:3,phase:1,status:302,redirect:http://www.modsecurity.org"

  ';

Several KB appear to be leaked on every request which significantly grows over time.
massif.out.11899.zip

Hi @LinuxJedi,
Good observation. I am investigating.

Hi @LinuxJedi,
I have made a good improvement on the memory management in general. There isn't a linear growth anymore. I am not closing this issue yet because I want to test with the full OWASP CRS before consider it done. Tomorrow I will continue with the tests.

Closing this issue after test with OWASP CRS. No leak was identified.

@zimmerle did your changes for memory management optimization get committed? I've been playing around with this some more and noticing non-trivial leaks that seem to correspond with what @LinuxJedi found. I can provide some more debug info if you need.

Hi @p0pr0ck5,
Yes, those modifications were committed. @LinuxJedi also reported other memory issues here: SpiderLabs/ModSecurity#1078 some of those may lead to memory leak.
It will be very helpful if you can attach the massif output of your findings on SpiderLabs/ModSecurity#1078

Silly me, I should have realized that the commit went to libmodsec, not this connector :p I'll do more debugging and ensure a clean build, and toss up some debug info tomorrow.


bug on see_reels function

Please follow the guide below

Issues submitted without this template format will be ignored.
You will be asked some questions and requested to provide some information, please read them carefully and answer completely.
Put an x into all the boxes [ ] relevant to your issue (like so [x]).
Use the Preview tab to see how your issue will actually look like.

Before submitting an issue, make sure you have:

[x ] Updated to the latest version
[x ] Read the README and docs
[x ] Searched the bugtracker for similar issues including closed ones

Purpose of your issue?

[x ] Bug report (encountered problems/errors)
[ ] Feature request (request for a new functionality)
[ ] Question
[ ] Other

The following sections requests more details for particular types of issues, you can remove any section (the contents between the triple ---) not applicable to your issue.

For a bug report, you must include the Python version used, code that will reproduce the error, and the error log/traceback.
Paste the output of python -V here:
Code:
# Example code that will produce the error reported
from instabot import Bot

bot = Bot()
bot.login(username="user", password="pass")
user_id = bot.get_user_id_from_username('inna')
stories = bot.api.get_users_reel([user_id])
bot.api.see_reels(stories)

Error/Debug Log:
Traceback (most recent call last):
  File "bot.py", line 8, in <module>
    bot.api.see_reels(stories)
  File "C:\Users\elmis\AppData\Local\Programs\Python\Python37-32\lib\site-packages\instabot\api\api.py", line 905, in see_reels
    for i, story in enumerate(sorted(reels, key=lambda m: m['taken_at'], reverse=True)):
  File "C:\Users\elmis\AppData\Local\Programs\Python\Python37-32\lib\site-packages\instabot\api\api.py", line 905, in <lambda>
    for i, story in enumerate(sorted(reels, key=lambda m: m['taken_at'], reverse=True)):
KeyError: 'taken_at'

Describe your issue
I was just checking the API functions and I find this problem

Similar error ...
Only I have a list of id instead of a single id.
bot = Bot()

bot.login(username=username,
		  password=password)
random_hashtag_file = utils.file(HASHTAGS_FILE)
while True:
	random_hashtag = random_hashtag_file.random()
	print (random_hashtag)

	users_list = bot.get_hashtag_users(random_hashtag)
	print (users_list)

	reels = bot.api.get_users_reel(users_list)
	print ([reels])

	bot.api.see_reels(reels)

	time.sleep(1)

#929


Make PoET thread safe

One case where we're not thread safe is when closing a round -- we may be losing the last membership submissions if they're coming in the last moment.
A thorough review is in order.

The code has been refactored a lot since 2019. The unit tests are run with the race detector and don't report any issues. Closing as it's not clear what additional steps could be taken here.


lncli payinvoice - unable to find a path to destination - lncli queryroutes showing some output?

Useful tool for decoding invoices: https://ion.radar.tech/developers#decode
lnbc10n1pwwuhsspp54xsg70w474gkvf3nemvkncggnc7keugq6hra9lfwh2gge5zvszlsdqqcqzpgfcjnfew7ujm9xfaq3x8gt33mpywgc8cvt8maj87e3fwjfr92mghxj9tuy5w4ennthnnzlmwst20wpfpwg0p6vav7femece9gj7g63ucqrus5ed
lncli payinvoice --force lnbc10n1pwwuhsspp54xsg70w474gkvf3nemvkncggnc7keugq6hra9lfwh2gge5zvszlsdqqcqzpgfcjnfew7ujm9xfaq3x8gt33mpywgc8cvt8maj87e3fwjfr92mghxj9tuy5w4ennthnnzlmwst20wpfpwg0p6vav7femece9gj7g63ucqrus5ed

unable to find a path to destination

Your environment

Queryroutes
lncli queryroutes 02e6b17c5a7a2461df38d0a571d92660f38ed5bbc847166ee655a1d0f83c1aa5ac 50
> {
    "routes": [
        {
            "total_time_lock": 578552,
            "total_fees": "5",
            "total_amt": "55",
            "hops": [
                {
                    "chan_id": "635781603725410305",
                    "chan_capacity": "100000",
                    "amt_to_forward": "54",
                    "fee": "1",
                    "expiry": 578512,
                    "amt_to_forward_msat": "54002",
                    "fee_msat": "1000",
                    "pub_key": "0331f80652fb840239df8dc99205792bba2e559a05469915804c08420230e23c7c"
                },
                {
                    "chan_id": "634855814942294016",
                    "chan_capacity": "3139751",
                    "amt_to_forward": "54",
                    "fee": "0",
                    "expiry": 578498,
                    "amt_to_forward_msat": "54002",
                    "fee_msat": "0",
                    "pub_key": "025a14b8ed40583d67aec92da19453e0b2d1fbbf75f96f85d3dd0ff61a51ee0490"
                },
                {
                    "chan_id": "635499029210333185",
                    "chan_capacity": "9009900",
                    "amt_to_forward": "50",
                    "fee": "4",
                    "expiry": 578354,
                    "amt_to_forward_msat": "50000",
                    "fee_msat": "4002",
                    "pub_key": "030c3f19d742ca294a55c00376b3b355c3c90d61c6b6b39554dbc7ac19b141c14f"
                },
                {
                    "chan_id": "632787633603739649",
                    "chan_capacity": "16777215",
                    "amt_to_forward": "50",
                    "fee": "0",
                    "expiry": 578354,
                    "amt_to_forward_msat": "50000",
                    "fee_msat": "0",
                    "pub_key": "02e6b17c5a7a2461df38d0a571d92660f38ed5bbc847166ee655a1d0f83c1aa5ac"
                }
            ],
            "total_fees_msat": "5002",
            "total_amt_msat": "55002"
        },
        {
            "total_time_lock": 578568,
            "total_fees": "5",
            "total_amt": "55",
            "hops": [
                {
                    "chan_id": "635781603725410305",
                    "chan_capacity": "100000",
                    "amt_to_forward": "54",
                    "fee": "1",
                    "expiry": 578528,
                    "amt_to_forward_msat": "54002",
                    "fee_msat": "1000",
                    "pub_key": "0331f80652fb840239df8dc99205792bba2e559a05469915804c08420230e23c7c"
                },
                {
                    "chan_id": "635519919976873984",
                    "chan_capacity": "500000",
                    "amt_to_forward": "54",
                    "fee": "0",
                    "expiry": 578498,
                    "amt_to_forward_msat": "54002",
                    "fee_msat": "0",
                    "pub_key": "03a503d8e30f2ff407096d235b5db63b4fcf3f89a653acb6f43d3fc492a7674019"
                },
                {
                    "chan_id": "632834912532234241",
                    "chan_capacity": "4000000",
                    "amt_to_forward": "50",
                    "fee": "4",
                    "expiry": 578354,
                    "amt_to_forward_msat": "50000",
                    "fee_msat": "4002",
                    "pub_key": "030c3f19d742ca294a55c00376b3b355c3c90d61c6b6b39554dbc7ac19b141c14f"
                },
                {
                    "chan_id": "632787633603739649",
                    "chan_capacity": "16777215",
                    "amt_to_forward": "50",
                    "fee": "0",
                    "expiry": 578354,
                    "amt_to_forward_msat": "50000",
                    "fee_msat": "0",
                    "pub_key": "02e6b17c5a7a2461df38d0a571d92660f38ed5bbc847166ee655a1d0f83c1aa5ac"
                }
            ],
            "total_fees_msat": "5002",
            "total_amt_msat": "55002"
        },
        {
            "total_time_lock": 578582,
            "total_fees": "5",
            "total_amt": "55",
            "hops": [
                {
                    "chan_id": "635781603725410305",
                    "chan_capacity": "100000",
                    "amt_to_forward": "54",
                    "fee": "1",
                    "expiry": 578542,
                    "amt_to_forward_msat": "54002",
                    "fee_msat": "1000",
                    "pub_key": "0331f80652fb840239df8dc99205792bba2e559a05469915804c08420230e23c7c"
                },
                {
                    "chan_id": "634855814942294016",
                    "chan_capacity": "3139751",
                    "amt_to_forward": "54",
                    "fee": "0",
                    "expiry": 578528,
                    "amt_to_forward_msat": "54002",
                    "fee_msat": "0",
                    "pub_key": "025a14b8ed40583d67aec92da19453e0b2d1fbbf75f96f85d3dd0ff61a51ee0490"
                },
                {
                    "chan_id": "634655703839211521",
                    "chan_capacity": "500000",
                    "amt_to_forward": "54",
                    "fee": "0",
                    "expiry": 578498,
                    "amt_to_forward_msat": "54002",
                    "fee_msat": "0",
                    "pub_key": "03a503d8e30f2ff407096d235b5db63b4fcf3f89a653acb6f43d3fc492a7674019"
                },
                {
                    "chan_id": "632834912532234241",
                    "chan_capacity": "4000000",
                    "amt_to_forward": "50",
                    "fee": "4",
                    "expiry": 578354,
                    "amt_to_forward_msat": "50000",
                    "fee_msat": "4002",
                    "pub_key": "030c3f19d742ca294a55c00376b3b355c3c90d61c6b6b39554dbc7ac19b141c14f"
                },
                {
                    "chan_id": "632787633603739649",
                    "chan_capacity": "16777215",
                    "amt_to_forward": "50",
                    "fee": "0",
                    "expiry": 578354,
                    "amt_to_forward_msat": "50000",
                    "fee_msat": "0",
                    "pub_key": "02e6b17c5a7a2461df38d0a571d92660f38ed5bbc847166ee655a1d0f83c1aa5ac"
                }
            ],
            "total_fees_msat": "5002",
            "total_amt_msat": "55002"
        },
        {
            "total_time_lock": 578682,
            "total_fees": "5",
            "total_amt": "55",
            "hops": [
                {
                    "chan_id": "635781603725410305",
                    "chan_capacity": "100000",
                    "amt_to_forward": "54",
                    "fee": "1",
                    "expiry": 578642,
                    "amt_to_forward_msat": "54002",
                    "fee_msat": "1000",
                    "pub_key": "0331f80652fb840239df8dc99205792bba2e559a05469915804c08420230e23c7c"
                },
                {
                    "chan_id": "630161999784247297",
                    "chan_capacity": "1000000",
                    "amt_to_forward": "54",
                    "fee": "0",
                    "expiry": 578498,
                    "amt_to_forward_msat": "54002",
                    "fee_msat": "0",
                    "pub_key": "03bdeb19815dc74c8413a196da388da8b4fababe522355a24c51730bae5007b66d"
                },
                {
                    "chan_id": "630122417407655936",
                    "chan_capacity": "4000000",
                    "amt_to_forward": "50",
                    "fee": "4",
                    "expiry": 578354,
                    "amt_to_forward_msat": "50000",
                    "fee_msat": "4002",
                    "pub_key": "030c3f19d742ca294a55c00376b3b355c3c90d61c6b6b39554dbc7ac19b141c14f"
                },
                {
                    "chan_id": "632787633603739649",
                    "chan_capacity": "16777215",
                    "amt_to_forward": "50",
                    "fee": "0",
                    "expiry": 578354,
                    "amt_to_forward_msat": "50000",
                    "fee_msat": "0",
                    "pub_key": "02e6b17c5a7a2461df38d0a571d92660f38ed5bbc847166ee655a1d0f83c1aa5ac"
                }
            ],
            "total_fees_msat": "5002",
            "total_amt_msat": "55002"
        },
        {
            "total_time_lock": 578682,
            "total_fees": "5",
            "total_amt": "55",
            "hops": [
                {
                    "chan_id": "635781603725410305",
                    "chan_capacity": "100000",
                    "amt_to_forward": "54",
                    "fee": "1",
                    "expiry": 578642,
                    "amt_to_forward_msat": "54002",
                    "fee_msat": "1000",
                    "pub_key": "0331f80652fb840239df8dc99205792bba2e559a05469915804c08420230e23c7c"
                },
                {
                    "chan_id": "632279659183472641",
                    "chan_capacity": "1500000",
                    "amt_to_forward": "54",
                    "fee": "0",
                    "expiry": 578498,
                    "amt_to_forward_msat": "54002",
                    "fee_msat": "0",
                    "pub_key": "038d43a1ef03a7882dc74729db276b575fcda8205e66b6a1b544c09ac86d0e2794"
                },
                {
                    "chan_id": "632713966292041728",
                    "chan_capacity": "2000000",
                    "amt_to_forward": "50",
                    "fee": "4",
                    "expiry": 578354,
                    "amt_to_forward_msat": "50000",
                    "fee_msat": "4002",
                    "pub_key": "030c3f19d742ca294a55c00376b3b355c3c90d61c6b6b39554dbc7ac19b141c14f"
                },
                {
                    "chan_id": "632787633603739649",
                    "chan_capacity": "16777215",
                    "amt_to_forward": "50",
                    "fee": "0",
                    "expiry": 578354,
                    "amt_to_forward_msat": "50000",
                    "fee_msat": "0",
                    "pub_key": "02e6b17c5a7a2461df38d0a571d92660f38ed5bbc847166ee655a1d0f83c1aa5ac"
                }
            ],
            "total_fees_msat": "5002",
            "total_amt_msat": "55002"
        },
        {
            "total_time_lock": 578711,
            "total_fees": "5",
            "total_amt": "55",
            "hops": [
                {
                    "chan_id": "635781603725410305",
                    "chan_capacity": "100000",
                    "amt_to_forward": "54",
                    "fee": "1",
                    "expiry": 578671,
                    "amt_to_forward_msat": "54002",
                    "fee_msat": "1000",
                    "pub_key": "0331f80652fb840239df8dc99205792bba2e559a05469915804c08420230e23c7c"
                },
                {
                    "chan_id": "630161999784247297",
                    "chan_capacity": "1000000",
                    "amt_to_forward": "54",
                    "fee": "0",
                    "expiry": 578527,
                    "amt_to_forward_msat": "54002",
                    "fee_msat": "0",
                    "pub_key": "03bdeb19815dc74c8413a196da388da8b4fababe522355a24c51730bae5007b66d"
                },
                {
                    "chan_id": "630097128621801472",
                    "chan_capacity": "2000000",
                    "amt_to_forward": "54",
                    "fee": "0",
                    "expiry": 578498,
                    "amt_to_forward_msat": "54002",
                    "fee_msat": "0",
                    "pub_key": "02a04446caa81636d60d63b066f2814cbd3a6b5c258e3172cbdded7a16e2cfff4c"
                },
                {
                    "chan_id": "633519908269522944",
                    "chan_capacity": "5000000",
                    "amt_to_forward": "50",
                    "fee": "4",
                    "expiry": 578354,
                    "amt_to_forward_msat": "50000",
                    "fee_msat": "4002",
                    "pub_key": "030c3f19d742ca294a55c00376b3b355c3c90d61c6b6b39554dbc7ac19b141c14f"
                },
                {
                    "chan_id": "632787633603739649",
                    "chan_capacity": "16777215",
                    "amt_to_forward": "50",
                    "fee": "0",
                    "expiry": 578354,
                    "amt_to_forward_msat": "50000",
                    "fee_msat": "0",
                    "pub_key": "02e6b17c5a7a2461df38d0a571d92660f38ed5bbc847166ee655a1d0f83c1aa5ac"
                }
            ],
            "total_fees_msat": "5002",
            "total_amt_msat": "55002"
        },
        {
            "total_time_lock": 578711,
            "total_fees": "5",
            "total_amt": "55",
            "hops": [
                {
                    "chan_id": "635781603725410305",
                    "chan_capacity": "100000",
                    "amt_to_forward": "54",
                    "fee": "1",
                    "expiry": 578671,
                    "amt_to_forward_msat": "54002",
                    "fee_msat": "1000",
                    "pub_key": "0331f80652fb840239df8dc99205792bba2e559a05469915804c08420230e23c7c"
                },
                {
                    "chan_id": "630161999784247297",
                    "chan_capacity": "1000000",
                    "amt_to_forward": "54",
                    "fee": "0",
                    "expiry": 578527,
                    "amt_to_forward_msat": "54002",
                    "fee_msat": "0",
                    "pub_key": "03bdeb19815dc74c8413a196da388da8b4fababe522355a24c51730bae5007b66d"
                },
                {
                    "chan_id": "630097128621801472",
                    "chan_capacity": "2000000",
                    "amt_to_forward": "54",
                    "fee": "0",
                    "expiry": 578498,
                    "amt_to_forward_msat": "54002",
                    "fee_msat": "0",
                    "pub_key": "02a04446caa81636d60d63b066f2814cbd3a6b5c258e3172cbdded7a16e2cfff4c"
                },
                {
                    "chan_id": "633879448555421696",
                    "chan_capacity": "16777215",
                    "amt_to_forward": "50",
                    "fee": "4",
                    "expiry": 578354,
                    "amt_to_forward_msat": "50000",
                    "fee_msat": "4002",
                    "pub_key": "030c3f19d742ca294a55c00376b3b355c3c90d61c6b6b39554dbc7ac19b141c14f"
                },
                {
                    "chan_id": "632787633603739649",
                    "chan_capacity": "16777215",
                    "amt_to_forward": "50",
                    "fee": "0",
                    "expiry": 578354,
                    "amt_to_forward_msat": "50000",
                    "fee_msat": "0",
                    "pub_key": "02e6b17c5a7a2461df38d0a571d92660f38ed5bbc847166ee655a1d0f83c1aa5ac"
                }
            ],
            "total_fees_msat": "5002",
            "total_amt_msat": "55002"
        },
        {
            "total_time_lock": 578712,
            "total_fees": "5",
            "total_amt": "55",
            "hops": [
                {
                    "chan_id": "635781603725410305",
                    "chan_capacity": "100000",
                    "amt_to_forward": "54",
                    "fee": "1",
                    "expiry": 578672,
                    "amt_to_forward_msat": "54002",
                    "fee_msat": "1000",
                    "pub_key": "0331f80652fb840239df8dc99205792bba2e559a05469915804c08420230e23c7c"
                },
                {
                    "chan_id": "635519919976873984",
                    "chan_capacity": "500000",
                    "amt_to_forward": "54",
                    "fee": "0",
                    "expiry": 578642,
                    "amt_to_forward_msat": "54002",
                    "fee_msat": "0",
                    "pub_key": "03a503d8e30f2ff407096d235b5db63b4fcf3f89a653acb6f43d3fc492a7674019"
                },
                {
                    "chan_id": "631881635985883136",
                    "chan_capacity": "14500000",
                    "amt_to_forward": "54",
                    "fee": "0",
                    "expiry": 578498,
                    "amt_to_forward_msat": "54002",
                    "fee_msat": "0",
                    "pub_key": "02e9046555a9665145b0dbd7f135744598418df7d61d3660659641886ef1274844"
                },
                {
                    "chan_id": "635116399257976833",
                    "chan_capacity": "16700000",
                    "amt_to_forward": "50",
                    "fee": "4",
                    "expiry": 578354,
                    "amt_to_forward_msat": "50000",
                    "fee_msat": "4002",
                    "pub_key": "030c3f19d742ca294a55c00376b3b355c3c90d61c6b6b39554dbc7ac19b141c14f"
                },
                {
                    "chan_id": "632787633603739649",
                    "chan_capacity": "16777215",
                    "amt_to_forward": "50",
                    "fee": "0",
                    "expiry": 578354,
                    "amt_to_forward_msat": "50000",
                    "fee_msat": "0",
                    "pub_key": "02e6b17c5a7a2461df38d0a571d92660f38ed5bbc847166ee655a1d0f83c1aa5ac"
                }
            ],
            "total_fees_msat": "5002",
            "total_amt_msat": "55002"
        },
        {
            "total_time_lock": 578578,
            "total_fees": "6",
            "total_amt": "56",
            "hops": [
                {
                    "chan_id": "635781603725410305",
                    "chan_capacity": "100000",
                    "amt_to_forward": "55",
                    "fee": "1",
                    "expiry": 578538,
                    "amt_to_forward_msat": "55002",
                    "fee_msat": "1000",
                    "pub_key": "0331f80652fb840239df8dc99205792bba2e559a05469915804c08420230e23c7c"
                },
                {
                    "chan_id": "635519919976873984",
                    "chan_capacity": "500000",
                    "amt_to_forward": "54",
                    "fee": "1",
                    "expiry": 578498,
                    "amt_to_forward_msat": "54002",
                    "fee_msat": "1000",
                    "pub_key": "03a503d8e30f2ff407096d235b5db63b4fcf3f89a653acb6f43d3fc492a7674019"
                },
                {
                    "chan_id": "635378082923020289",
                    "chan_capacity": "4000000",
                    "amt_to_forward": "50",
                    "fee": "4",
                    "expiry": 578354,
                    "amt_to_forward_msat": "50000",
                    "fee_msat": "4002",
                    "pub_key": "030c3f19d742ca294a55c00376b3b355c3c90d61c6b6b39554dbc7ac19b141c14f"
                },
                {
                    "chan_id": "632787633603739649",
                    "chan_capacity": "16777215",
                    "amt_to_forward": "50",
                    "fee": "0",
                    "expiry": 578354,
                    "amt_to_forward_msat": "50000",
                    "fee_msat": "0",
                    "pub_key": "02e6b17c5a7a2461df38d0a571d92660f38ed5bbc847166ee655a1d0f83c1aa5ac"
                }
            ],
            "total_fees_msat": "6002",
            "total_amt_msat": "56002"
        },
        {
            "total_time_lock": 578722,
            "total_fees": "6",
            "total_amt": "56",
            "hops": [
                {
                    "chan_id": "635781603725410305",
                    "chan_capacity": "100000",
                    "amt_to_forward": "55",
                    "fee": "1",
                    "expiry": 578682,
                    "amt_to_forward_msat": "55002",
                    "fee_msat": "1000",
                    "pub_key": "0331f80652fb840239df8dc99205792bba2e559a05469915804c08420230e23c7c"
                },
                {
                    "chan_id": "635519919976873984",
                    "chan_capacity": "500000",
                    "amt_to_forward": "54",
                    "fee": "1",
                    "expiry": 578642,
                    "amt_to_forward_msat": "54002",
                    "fee_msat": "1000",
                    "pub_key": "03a503d8e30f2ff407096d235b5db63b4fcf3f89a653acb6f43d3fc492a7674019"
                },
                {
                    "chan_id": "633652949328199681",
                    "chan_capacity": "2000000",
                    "amt_to_forward": "54",
                    "fee": "0",
                    "expiry": 578498,
                    "amt_to_forward_msat": "54002",
                    "fee_msat": "0",
                    "pub_key": "038d43a1ef03a7882dc74729db276b575fcda8205e66b6a1b544c09ac86d0e2794"
                },
                {
                    "chan_id": "632713966292041728",
                    "chan_capacity": "2000000",
                    "amt_to_forward": "50",
                    "fee": "4",
                    "expiry": 578354,
                    "amt_to_forward_msat": "50000",
                    "fee_msat": "4002",
                    "pub_key": "030c3f19d742ca294a55c00376b3b355c3c90d61c6b6b39554dbc7ac19b141c14f"
                },
                {
                    "chan_id": "632787633603739649",
                    "chan_capacity": "16777215",
                    "amt_to_forward": "50",
                    "fee": "0",
                    "expiry": 578354,
                    "amt_to_forward_msat": "50000",
                    "fee_msat": "0",
                    "pub_key": "02e6b17c5a7a2461df38d0a571d92660f38ed5bbc847166ee655a1d0f83c1aa5ac"
                }
            ],
            "total_fees_msat": "6002",
            "total_amt_msat": "56002"
        }
    ]
} @<IP_ADDRESS>:9735

All of those routes have a total cost where you'd pay more in fees than the actual payment you're attempting to make, which we don't allow. You can play around with these limits with the --fee_limit or --fee_limit_percent flags.


stop logging user information, raw messages in Kafka event-source

Expected Behavior
Setting up the kafka event-source shouldn't leak user/password combinations as well as log actual message contents (imagine if that was sensitive content) outside of the intended sink.  General configuration and metadata makes sense to log.
Actual Behavior
Running through the Apache Kafka README shows log files that display from the event-source:
{"level":"info","ts":"2019-03-19T22:31:52.689Z","caller":"receive_adapter/main.go:97","msg":"Starting Apache Kafka Receive Adapter...","adapter":{"BootstrapServers":"...","Topic":"...","ConsumerGroup":"...","Net":{"SASL" {"Enable":true,"User":"...","Password":"..."},"TLS":{"Enable":true}},"SinkURI":"http://event-display.default.svc.cluster.local/"}}
Likewise, later, the README shows logging of the actual messages themselves:
{"level":"info","ts":1553034726.5351956,"logger":"fallback","caller":"adapter/adapter.go:121","msg":"Received: {value 15 0 {\"msg\": \"This is a test!\"} <nil>}"}
This is due to logging mechanism in the receive_adapter using reflection to print out the entire adapter struct, and then again in the adapter itself, printing out the message.
Steps to Reproduce the Problem

Follow steps specified in the Apache Kafka README

Additional Info

/kind bug


Fixes Reverse Animation Starting on First Frame

When playing an animation in reverse, the animation initially starts on frame 0. If it loops, it'll play normally by going to the last frame of the animation, but if it does not... it prematurely stops, since it is already on the last frame (for reversed animation) by starting on frame 0.
Closes: #31903

Checking if

This could be problematic if you want to play the same animation forward and then backward, changing at an intermediate position.

Updated PR to check initial frame.

Thanks!


Lockup when switching to design mode with paused audio stream

Originally noticed on QLC 4.11.2 (qt4), reproduced with current git master (67fa5bef, als linked against qt4), running on Debian Linux Stretch amd64. This was previously reported on the forum too.
To reproduce:

Create a new workspace.
Add an audio function.
Add a new chaser, with the audio function added. Set the common hold time to infinite.
Add a cue list to the VC and attach the chaser to it.
Switch to operate mode.
Start the cue list.
Pause the cue list.
Switch back to design mode

After this, qlc becomes unresponsive.
I've attached a workspace (renamed to .txt to fool github) with steps 1-4 applied already. This expects a file called "Stilte.mp3" to exist in the same directory. This can be any mp3 file, I used a bit of silence. The file must exist (and be playable, I assume), otherwise the lockup doesn't occur.
Running under gdb suggests a deadlock while waiting for the audio to stop. When I interrupt gdb while qlc is unresponsive, I get the following backtraces.
The main thread 1 is waiting for all functions to stop, and thread 4 might be waiting for the audio stream to stop, which probably does not happen because it is paused.
(gdb) thread apply all bt

Thread 12 (Thread 0x7fff554f1700 (LWP 31734)):
#0  0x00007ffff4c285d9 in __GI___poll (fds=0x555555855eb0, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ffff39b59f6 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff39b5d82 in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fffed762656 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#4  0x00007ffff39dd3d5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007ffff582d5aa in start_thread (arg=0x7fff554f1700) at pthread_create.c:463
#6  0x00007ffff4c32cbf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 11 (Thread 0x7fff55cf2700 (LWP 31733)):
#0  0x00007ffff4c285d9 in __GI___poll (fds=0x55555621b3d0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ffff39b59f6 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff39b5b0c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff39b5b51 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007ffff39dd3d5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007ffff582d5aa in start_thread (arg=0x7fff55cf2700) at pthread_create.c:463
#6  0x00007ffff4c32cbf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 10 (Thread 0x7fff5729f700 (LWP 31730)):
#0  0x00007ffff4c285d9 in __GI___poll (fds=0x7fff5729ec90, nfds=1, timeout=500) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ffff488307e in ?? () from /usr/lib/x86_64-linux-gnu/libasound.so.2
#2  0x00007ffff488334b in snd_pcm_wait () from /usr/lib/x86_64-linux-gnu/libasound.so.2
#3  0x00007ffff7b7047a in AudioRendererAlsa::alsa_write (this=0x7fff5000d390, data=0x7fff50013ce0 "", size=800) at audiorenderer_alsa.cpp:330
#4  0x00007ffff7b7037e in AudioRendererAlsa::writeAudio (this=0x7fff5000d390, data=0x7fff5000d3d0 "", maxSize=384) at audiorenderer_alsa.cpp:312
#5  0x00007ffff7b6ba8c in AudioRenderer::run (this=0x7fff5000d390) at audiorenderer.cpp:161
#6  0x00007ffff5abedaa in QThreadPrivate::start (arg=0x7fff5000d390) at thread/qthread_unix.cpp:352
#7  0x00007ffff582d5aa in start_thread (arg=0x7fff5729f700) at pthread_create.c:463
#8  0x00007ffff4c32cbf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 9 (Thread 0x7fff5f25d700 (LWP 31729)):
#0  0x00007ffff4c285d9 in __GI___poll (fds=0x7fff58002d20, nfds=3, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fffe2070c91 in ?? () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#2  0x00007fffe20624a1 in pa_mainloop_poll () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#3  0x00007fffe2062b3e in pa_mainloop_iterate () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#4  0x00007fffe2062bf0 in pa_mainloop_run () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#5  0x00007fffe2070bd9 in ?? () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#6  0x00007fffe1e102c8 in ?? () from /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-10.0.so
#7  0x00007ffff582d5aa in start_thread (arg=0x7fff5f25d700) at pthread_create.c:463
#8  0x00007ffff4c32cbf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7fff5d754700 (LWP 31686)):
#0  0x00007ffff58338aa in futex_abstimed_wait_cancelable (private=<optimized out>, abstime=0x7fff5d753bc0, expected=0, futex_word=0x7fff5d753b78)
    at ../sysdeps/unix/sysv/linux/futex-internal.h:205
#1  __pthread_cond_wait_common (abstime=0x7fff5d753bc0, mutex=0x7fff5d753b20, cond=0x7fff5d753b50) at pthread_cond_wait.c:539
#2  __pthread_cond_timedwait (cond=cond@entry=0x7fff5d753b50, mutex=mutex@entry=0x7fff5d753b20, abstime=abstime@entry=0x7fff5d753bc0)
    at pthread_cond_wait.c:667
#3  0x00007ffff5abd76a in thread_sleep (ti=ti@entry=0x7fff5d753bc0) at thread/qthread_unix.cpp:495
#4  0x00007ffff5abe1c2 in QThread::usleep (usecs=<optimized out>) at thread/qthread_unix.cpp:533
#5  0x00007ffff7b6b720 in AudioRenderer::stop (this=0x7fff5000d390) at audiorenderer.cpp:82
#6  0x00007ffff7b6a201 in Audio::slotEndOfStream (this=0x5555560eed00) at audio.cpp:214
#7  0x00007ffff7b6b095 in Audio::postRun (this=0x5555560eed00, timer=0x555555a26aa0, universes=...) at audio.cpp:383
#8  0x00007ffff7b2048a in MasterTimer::timerTickFunctions (this=0x555555a26aa0, universes=...) at mastertimer.cpp:298
#9  0x00007ffff7b1fc0e in MasterTimer::timerTick (this=0x555555a26aa0) at mastertimer.cpp:156
#10 0x00007ffff7b604e4 in MasterTimerPrivate::run (this=0x555555a37d10) at mastertimer-unix.cpp:207
#11 0x00007ffff5abedaa in QThreadPrivate::start (arg=0x555555a37d10) at thread/qthread_unix.cpp:352
#12 0x00007ffff582d5aa in start_thread (arg=0x7fff5d754700) at pthread_create.c:463
#13 0x00007ffff4c32cbf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7fffe09ec700 (LWP 31684)):
#0  0x00007ffff58334ec in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x7ffff70d0fb8)
    at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x7ffff70d0f68, cond=0x7ffff70d0f90) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=0x7ffff70d0f90, mutex=0x7ffff70d0f68) at pthread_cond_wait.c:655
#3  0x00007ffff6dbd61a in ?? () from /usr/lib/x86_64-linux-gnu/libQtScript.so.4
#4  0x00007ffff6dbd649 in ?? () from /usr/lib/x86_64-linux-gnu/libQtScript.so.4
#5  0x00007ffff582d5aa in start_thread (arg=0x7fffe09ec700) at pthread_create.c:463
---Type <return> to continue, or q <return> to quit---
#6  0x00007ffff4c32cbf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7ffff7f877c0 (LWP 31679)):
#0  0x00007ffff4c00430 in __GI___nanosleep (requested_time=requested_time@entry=0x7fffffffc6a0, remaining=remaining@entry=0x0)
    at ../sysdeps/unix/sysv/linux/nanosleep.c:28
#1  0x00007ffff4c2b194 in usleep (useconds=<optimized out>) at ../sysdeps/posix/usleep.c:32
#2  0x00007ffff7b1fe10 in MasterTimer::stopAllFunctions (this=0x555555a26aa0) at mastertimer.cpp:200
#3  0x00007ffff74b3d05 in App::slotModeDesign (this=0x7fffffffd5d0) at app.cpp:598
#4  0x00007ffff74b3da7 in App::slotModeToggle (this=0x7fffffffd5d0) at app.cpp:610
#5  0x00007ffff769d903 in App::qt_static_metacall (_o=0x7fffffffd5d0, _c=QMetaObject::InvokeMetaMethod, _id=5, _a=0x7fffffffc8e0) at moc_app.cpp:186
#6  0x00007ffff5be3660 in QMetaObject::activate (sender=sender@entry=0x555555b4a5a0, m=m@entry=0x7ffff6becdc0 <QAction::staticMetaObject>,
    local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7fffffffc8e0) at kernel/qobject.cpp:3567
#7  0x00007ffff60f5672 in QAction::triggered (this=this@entry=0x555555b4a5a0, _t1=<optimized out>) at .moc/release-shared/moc_qaction.cpp:276
#8  0x00007ffff60f69d3 in QAction::activate (this=0x555555b4a5a0, event=<optimized out>) at kernel/qaction.cpp:1257
#9  0x00007ffff64d2903 in QAbstractButtonPrivate::click (this=this@entry=0x555555babee0) at widgets/qabstractbutton.cpp:530
#10 0x00007ffff64d2a54 in QAbstractButton::mouseReleaseEvent (this=0x555555babeb0, e=0x7fffffffce30) at widgets/qabstractbutton.cpp:1123
#11 0x00007ffff6597fca in QToolButton::mouseReleaseEvent (this=<optimized out>, e=<optimized out>) at widgets/qtoolbutton.cpp:723
#12 0x00007ffff6151e80 in QWidget::event (this=0x555555babeb0, event=0x7fffffffce30) at kernel/qwidget.cpp:8775
#13 0x00007ffff60fb54c in QApplicationPrivate::notify_helper (this=this@entry=0x55555578dec0, receiver=receiver@entry=0x555555babeb0,
    e=e@entry=0x7fffffffce30) at kernel/qapplication.cpp:4570
#14 0x00007ffff6103ca7 in QApplication::notify (this=<optimized out>, receiver=0x555555babeb0, e=0x7fffffffce30) at kernel/qapplication.cpp:4113
#15 0x00007ffff5bcef1d in QCoreApplication::notifyInternal (this=0x7fffffffd6d0, receiver=receiver@entry=0x555555babeb0, event=event@entry=0x7fffffffce30)
    at kernel/qcoreapplication.cpp:955
#16 0x00007ffff6101ccb in QCoreApplication::sendEvent (event=<optimized out>, receiver=<optimized out>)
    at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#17 QApplicationPrivate::sendMouseEvent (receiver=receiver@entry=0x555555babeb0, event=event@entry=0x7fffffffce30,
    alienWidget=alienWidget@entry=0x555555babeb0, nativeWidget=nativeWidget@entry=0x7fffffffd5d0,
    buttonDown=buttonDown@entry=0x7ffff6c21348 <qt_button_down>, lastMouseReceiver=..., spontaneous=true) at kernel/qapplication.cpp:3178
#18 0x00007ffff617d1a9 in QETWidget::translateMouseEvent (this=this@entry=0x7fffffffd5d0, event=event@entry=0x7fffffffd190)
    at kernel/qapplication_x11.cpp:4557
#19 0x00007ffff617bb5c in QApplication::x11ProcessEvent (this=0x7fffffffd6d0, event=event@entry=0x7fffffffd190) at kernel/qapplication_x11.cpp:3674
#20 0x00007ffff61a5502 in x11EventSourceDispatch (s=0x5555557925f0, callback=0x0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#21 0x00007ffff39b57f7 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#22 0x00007ffff39b5a60 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#23 0x00007ffff39b5b0c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#24 0x00007ffff5bff854 in QEventDispatcherGlib::processEvents (this=0x55555578ffa0, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#25 0x00007ffff61a55d6 in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#26 0x00007ffff5bcd7ef in QEventLoop::processEvents (this=this@entry=0x7fffffffd570, flags=...) at kernel/qeventloop.cpp:149
#27 0x00007ffff5bcdb55 in QEventLoop::exec (this=this@entry=0x7fffffffd570, flags=...) at kernel/qeventloop.cpp:204
#28 0x00007ffff5bd3bd9 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1227
#29 0x00005555555583f8 in main (argc=1, argv=0x7fffffffd818) at main.cpp:387

I am planning to stop supporting Qt4 builds from the next version (4.12.0)
Please repeat the test with a Qt5 build. Same for #1068

Hm, I assumed QT4 was still the default, based on the fact that the normal Ubuntu .deb release uses qt4. I tested with QT5 (both my own git master build and the OpenSuse Ubuntu build of 4.11.2), and that seems to work fine... Oh well :-)

You assumed right (for Linux) but it's time to move on as Qt4 is getting really old.
On Windows and macOS QLC+ is on Qt5 since a long time now.


Outpipe opts not defined

There is my code:
onchange "**/*/*.scss" "**/*/*.css" -o "> task/css.txt" -- echo {{changed}}

in v4.0.0 is working, but in v5.0.0 still error
const cmd = this.outpipe(opts)
                         ^

ReferenceError: opts is not defined
    at Job.start (E:\Snow.Huang\project\dev\CampaignBuildTool\node_modules\onchange\index.js:29:32)
    at dequeue (E:\Snow.Huang\project\dev\CampaignBuildTool\node_modules\onchange\index.js:131:10)
    at enqueue (E:\Snow.Huang\project\dev\CampaignBuildTool\node_modules\onchange\index.js:155:12)
    at FSWatcher.watcher.on (E:\Snow.Huang\project\dev\CampaignBuildTool\node_modules\onchange\index.js:168:14)
    at FSWatcher.emit (events.js:182:13)
    at FSWatcher.<anonymous> (E:\Snow.Huang\project\dev\CampaignBuildTool\node_modules\chokidar\index.js:200:38)
    at FSWatcher._emit (E:\Snow.Huang\project\dev\CampaignBuildTool\node_modules\chokidar\index.js:241:5)
    at FSWatcher.<anonymous> (E:\Snow.Huang\project\dev\CampaignBuildTool\node_modules\chokidar\lib\nodefs-handler.js:267:16)
    at FSReqWrap.oncomplete (fs.js:155:5)

Thanks for the report! Should be fixed with the next release.


odysee channel appears in feed even though not following and blocked

odysee ios version 0.6.11
iphone se
ios 15.7.1
I have odysee channel blocked and not followed (my reasons).
It still occasionally appears in my followed feed on the iphone (even after refresh)
at the same time, on the desktop browser it does not appear (event after refresh)
this leads me to think it's a problem on the ios side rather than the server side
attached link to video: https://odysee.com/@socialfishi:1/RPReplay_Final1668580821:e
compare electroboom state (followed and not blocked), and odysee state (unfollowed and blocked)
on a related note, i tried to setup the environment on osx to build the app to try and help debug it. failed. if somebody wants to help me set it up i can try and look at things.

Thanks for following this bug, and sorry to hear about the trouble. We'll get this looked into.
If it's showing the broken heart, this means it's actually followed still -you'd want to click that to unfollow. We need to make this clearer. But I bet IOS does not take into account the scenario of blocked + followed like the web does.

Shouldnt this scenario be handled server side ? Sent from Proton Mail for iOS On Wed, Nov 30, 2022 at 20:47, Thomas Zarebczan @.***> wrote:
Thanks for following this bug, and sorry to hear about the trouble. We'll get this looked into.
If it's showing the broken heart, this means it's actually followed still -you'd want to click that to unfollow. We need to make this clearer. But I bet IOS does not take into account the scenario of blocked + followed like the web does.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>

Those are two different apis, but yes, it should handle it..just trying to explain why it's happening - since you're still following it. It's also not typical to follow + block.


Fails to run tests

[info] Total for specification ErrorOnTemperatureSpikeTest
[info] Finished in 42 seconds, 994 ms
[info] 11 examples, 0 failure, 0 error
[info]
2018-02-04 16:51:36:642 [pool-4-thread-7] INFO Temperature spikes greater than +/-30% will not be recorded
Non-200 body was:
\/-(Unable to parse content as JSON [1.1] failure: string matching regex `\d{4}' expected but `E' found

Error: Could not find or load main class bad.robot.temperature.client.Client
^)

If the log starts with
Error: Could not find or load main class bad.robot.temperature.client.Client
2018-02-04 18:41:56:087 [main] INFO Initialising client 'bedroom1' (with 2 of a maximum of 5 sensors)...
2018-02-04 18:41:56:087 [main] INFO Initialising client 'bedroom1' (with 2 of a maximum of 5 sensors)...
2018-02-04 18:41:56:740 [main] INFO Sending ping request to /<IP_ADDRESS>

It won't be parsed as JSON and you get the error above.
You can delete the ~/.temperature/temperature-machine.log and have another go...

On startup, the shell scripts used to startup the app have gone back to deleting the old log so I'm closing this.


Auto-tags for common issues

There are some issues that come up in help channels that are usually solved by just sending a tag, the person reads it, and the problem is solved.
For example: 'python' is not recognized as an internal or external command. This problem is answered by the windows-path tag, but you need to wait for someone to come to the channel and type the command for it.
It would also be useful for if, say, someone mentions youtube-dl in their question, to automatically send the ytdl tag. This one might not work that well, because someone might say it outside of a question, but it would still be useful.
It would be useful if the bot could read the message, and send the tag itself, based off the error or problem that is given.

Going to transfer this to meta for discussion.


Did not find KDE Plasma Clipboard Manager

Describe your issue in detail (expected behavior and how the actual behavior differs)
Did not find KDE Plasmas own Clipboard Manager

Include which clipboard manager you are using
The one included in KDE

Include complete logs running ulauncher with ulauncher -v
2023-09-12 17:34:31,778 | INFO | ulauncher: main() | Ulauncher version 5.15.3
2023-09-12 17:34:31,778 | INFO | ulauncher: main() | Extension API version 2.0.0
2023-09-12 17:34:31,778 | INFO | ulauncher: main() | GTK+ 3.24.38
2023-09-12 17:34:31,778 | INFO | ulauncher: main() | Is Wayland: True
2023-09-12 17:34:31,779 | INFO | ulauncher: main() | Wayland compatibility: on
2023-09-12 17:34:31,797 | DEBUG | ulauncher.ui.windows.Builder: init() | consider using a pythonic name instead of design name 'input-box'
2023-09-12 17:34:31,799 | DEBUG | ulauncher.ui.windows.Builder: do_connect() | connect builder by name 'ulauncher_window','destroy', 'on_destroy'
2023-09-12 17:34:31,799 | DEBUG | ulauncher.ui.windows.Builder: do_connect() | connect builder by name 'ulauncher_window','focus_in_event', 'on_focus_in_event'
2023-09-12 17:34:31,799 | DEBUG | ulauncher.ui.windows.Builder: do_connect() | connect builder by name 'ulauncher_window','focus_out_event', 'on_focus_out_event'
2023-09-12 17:34:31,800 | DEBUG | ulauncher.ui.windows.Builder: do_connect() | connect builder by name 'input','key_press_event', 'on_input_key_press_event'
2023-09-12 17:34:31,801 | DEBUG | ulauncher.ui.windows.Builder: log_unconnected_functions() | Not connected to builder 'on_input_changed'
2023-09-12 17:34:31,801 | DEBUG | ulauncher.ui.windows.Builder: log_unconnected_functions() | Not connected to builder 'on_mnu_about_activate'
2023-09-12 17:34:31,801 | DEBUG | ulauncher.ui.windows.Builder: log_unconnected_functions() | Not connected to builder 'on_mnu_close_activate'
2023-09-12 17:34:31,801 | DEBUG | ulauncher.ui.windows.Builder: log_unconnected_functions() | Not connected to builder 'on_mnu_preferences_activate'
2023-09-12 17:34:31,801 | DEBUG | ulauncher.ui.windows.Builder: log_unconnected_functions() | Not connected to builder 'on_preferences_dialog_destroyed'
2023-09-12 17:34:31,802 | DEBUG | ulauncher.utils.display: get_screens() | Found 1 monitor(s)
2023-09-12 17:34:31,802 | DEBUG | ulauncher.utils.display: get_screens() |   Monitor 0 - X: 0, Y: 0, W: 1745, H: 982
2023-09-12 17:34:31,808 | DEBUG | ulauncher.ui.windows.UlauncherWindow: show_results() | render 0 results
2023-09-12 17:34:31,809 | INFO | ulauncher.api.server.ExtensionServer: _start_thread() | Starting WS server on port 5054
2023-09-12 17:34:31,809 | INFO | ulauncher.search.apps.app_watcher: start() | Started scanning desktop dirs
2023-09-12 17:34:31,825 | INFO | ulauncher.utils.desktop.reader: find_apps_cached() | Found 60 apps in cache
2023-09-12 17:34:31,826 | INFO | ulauncher.utils.desktop.reader: read_desktop_file() | Could not read "/usr/share/applications/org.kde.mobile.okular_fb.desktop": constructor returned NULL
2023-09-12 17:34:31,827 | INFO | ulauncher.utils.desktop.reader: read_desktop_file() | Could not read "/usr/share/applications/org.kde.mobile.okular_djvu.desktop": constructor returned NULL
2023-09-12 17:34:31,829 | INFO | ulauncher.utils.desktop.reader: read_desktop_file() | Could not read "/usr/share/applications/org.kde.mobile.okular_mobi.desktop": constructor returned NULL
2023-09-12 17:34:31,832 | INFO | ulauncher.utils.desktop.reader: read_desktop_file() | Could not read "/usr/share/applications/org.kde.mobile.okular_xps.desktop": constructor returned NULL
2023-09-12 17:34:31,832 | INFO | ulauncher.utils.desktop.reader: read_desktop_file() | Could not read "/usr/share/applications/org.kde.mobile.okular_dvi.desktop": constructor returned NULL
2023-09-12 17:34:31,834 | INFO | ulauncher.utils.desktop.reader: read_desktop_file() | Could not read "/usr/share/applications/org.kde.mobile.okular_epub.desktop": constructor returned NULL
2023-09-12 17:34:31,835 | INFO | ulauncher.utils.desktop.reader: read_desktop_file() | Could not read "/usr/share/applications/org.kde.mobile.okular_chm.desktop": constructor returned NULL
2023-09-12 17:34:31,835 | INFO | ulauncher.utils.desktop.reader: read_desktop_file() | Could not read "/usr/share/applications/org.kde.mobile.okular_ghostview.desktop": constructor returned NULL
2023-09-12 17:34:31,839 | INFO | ulauncher.utils.desktop.reader: read_desktop_file() | Could not read "/usr/share/applications/org.kde.mobile.okular_pdf.desktop": constructor returned NULL
2023-09-12 17:34:31,841 | INFO | ulauncher.utils.desktop.reader: read_desktop_file() | Could not read "/usr/share/applications/org.kde.mobile.okular_txt.desktop": constructor returned NULL
2023-09-12 17:34:31,843 | INFO | ulauncher.utils.desktop.reader: read_desktop_file() | Could not read "/usr/share/applications/org.kde.kwin_rules_dialog.desktop": constructor returned NULL
2023-09-12 17:34:31,843 | INFO | ulauncher.utils.desktop.reader: read_desktop_file() | Could not read "/usr/share/applications/org.kde.mobile.okular_tiff.desktop": constructor returned NULL
2023-09-12 17:34:31,846 | INFO | ulauncher.utils.desktop.reader: read_desktop_file() | Could not read "/usr/share/applications/org.kde.kded5.desktop": constructor returned NULL
2023-09-12 17:34:31,848 | INFO | ulauncher.utils.desktop.reader: read_desktop_file() | Could not read "/usr/share/applications/org.kde.mobile.okular_comicbook.desktop": constructor returned NULL
2023-09-12 17:34:31,848 | INFO | ulauncher.utils.desktop.reader: read_desktop_file() | Could not read "/usr/share/applications/org.kde.mobile.okular_plucker.desktop": constructor returned NULL
2023-09-12 17:34:31,851 | INFO | ulauncher.utils.desktop.reader: read_desktop_file() | Could not read "/usr/share/applications/org.kde.mobile.okular_fax.desktop": constructor returned NULL
2023-09-12 17:34:31,853 | INFO | ulauncher.utils.desktop.reader: read_desktop_file() | Could not read "/usr/share/applications/org.kde.mobile.okular_md.desktop": constructor returned NULL
2023-09-12 17:34:31,854 | INFO | ulauncher.utils.desktop.reader: read_desktop_file() | Could not read "/usr/share/applications/org.kde.mobile.okular_kimgio.desktop": constructor returned NULL
2023-09-12 17:34:31,857 | INFO | ulauncher.utils.desktop.reader: find_apps_cached() | Found 60 apps in the system
2023-09-12 17:34:31,857 | INFO | ulauncher.search.apps.app_watcher: start() | Scanned desktop dirs in 0.05 seconds
2023-09-12 17:34:31,862 | DEBUG | ulauncher.search.apps.app_watcher: start() | Start watching desktop files...

If you want it, make a PR

Sorry, I do not know how to code this :-(

Hi,
I'd love to have this as well.
Thanks


A homebrew tap (as goreleaser supports it)

The config for it is somewhat involved, tho :O
https://goreleaser.com/customization/homebrew/

tbh goreleaser support for this looks patchy.

Looks like a super basic config (see lazygit) can work.

Took a lot of messing about with untidy commit :/ but it works! (i think) :D


Support for React Router

See discussion on #68 for what should change. See #69 for parts of this.

Implemented in https://github.com/shakacode/react_on_rails/pull/68


Why no triplet circle loss?

Only softmax-circle is provided, but in Circle Loss paper there is both softmax-circle loss and triplet-circle loss.

You mean pair-wise circle loss?
You can check here
https://github.com/JDAI-CV/fast-reid/blob/master/fastreid/modeling/losses/circle_loss.py


Error: Cannot instantiate implementation type 'HotChocolate.Fetching.IBatchDispatcher' for service type

Hi,
I'm using .NET Core 5 and HotChocolate 11.0.9 and I'm trying to test my code as described here: https://chillicream.com/blog/2019/04/11/integration-tests
Then when I run my test, I get the following error:
  Message:
    System.ArgumentException : Cannot instantiate implementation type 'HotChocolate.Fetching.IBatchDispatcher' for service type 'HotChocolate.Fetching.IBatchDispatcher'.
  Stack Trace:
    CallSiteFactory.Populate()
    CallSiteFactory.ctor(IEnumerable`1 descriptors)
    ServiceProviderEngine.ctor(IEnumerable`1 serviceDescriptors)
    CompiledServiceProviderEngine.ctor(IEnumerable`1 serviceDescriptors)
    ServiceCollectionContainerBuilderExtensions.BuildServiceProvider(IServiceCollection services, ServiceProviderOptions options)
    ServiceCollectionContainerBuilderExtensions.BuildServiceProvider(IServiceCollection services)
    MyProjectQueryIntegrationTests.TestCreateProjectAsync() line 40
    --- End of stack trace from previous location ---

What am I doing wrong? I'm new to HotChocolate.

I think that post is a bit outdated. This is how I usually implement the tests
using HotChocolate;
using HotChocolate.Execution;
using Microsoft.Extensions.DependencyInjection;
using System.Threading.Tasks;
using Xunit;

public class Tests
{
    [Fact]
    public async Task Test()
    {
        var services = new ServiceCollection();

        var executor =
            await services
            .AddGraphQLServer()
            .AddQueryType<Query>()
            .BuildRequestExecutorAsync();

        var result = await executor.ExecuteAsync(QueryRequestBuilder
            .New()
            .SetQuery("{ sayHello }")
            .Create());

        Assert.Equal("{\r\n  \"data\": {\r\n    \"sayHello\": \"Hello\"\r\n  }\r\n}", result.ToJson());
    }
}

public class Query
{
    public string SayHello() => "Hello";
}

It is outdated @gojanpaolo is right.


Call back whenever table is updated

Is there any way to trigger callback  in this library whenever table is row is updated from out side ?
if there is functionality kindly guide me how can i use it. I don't wan't to install new library in my node application Thanks

@yahyaoffroad you can use binlog tailer library such as https://github.com/nevill/zongji


Bulk editing one component in a Break Rule also replaces the other

Bulk editing break requests or frequency constraints will overwrite both fields, setting the edited one to the new value and clearing the property that wasn't edited.

As Break Rules are nested fields and bulk editing does not support editing the individual components of a nested field, this is working as intended.


Make InlineTableDict inherit from OrderedDict

References my review comment from #75.
I first looked at creating an analog to _dict, that I was thinking to call _InlineTableDict. However, while I was doing that it became apparent that it would end up as a pretty infectious change, which would require change to at around 4 method signatures and 8 call sites. _dict is only a parameter for load and loads, so that just didn't seem like the best approach.
My thinking with this pull request is that there is a complexity trade-off from choosing to make InlineTableDict overridable, and that's it's not worth what it costs. OrderedDict has good performance characteristics, and Python 3.6 has even made the default dict order-preserving. Combined with the relatively limited use we'd expect to see with InlineTableDict over our standard use of dict, it seemed to me to be a reasonable choice.
If you disagree with my assessment, I'm willing to open another pull request with the required changes to add an _InlineTableDict parameter to load and loads for comparison.

Also included in this patch is the removal of the specialized __init__ method, which I think is both unnecessary, and quite possibly unwise given it's incompatibility with the normal dict signature.

Hi Ryan,
Thanks for the patch. I am leaning towards accepting it but I would like to get @nateprewitt's thoughts on it since he has an actual use case for the feature that this affects (per #74).
-Will

Thanks for taking the time to pull me in @uiri. I meant to respond to your original comments @ryanhiebert but that somehow slipped off the checklist.
So I completely agree with the removal of the __init__ declaration that was an oversight.
As for using an OrderedDict for _InlineTableDict, this current implementation doesn't work with Python 2.6. We're maintaining support for 2.6 for the immediate future in pipenv unfortunately, so if this is merged, we'll either need to fork or find another solution for toml parsing.
This is also adding functionality, which is probably fine, but will change how this library has operated for most of its existence. I'm not entirely convinced that OrderedDict is a superior choice over dict when the user can pass any custom Mapping class to _dict.
I think if toml wants to support custom mappings for Inline Tables, the ideal option here is to have InlineTableDict inherit from the value of _dict. That's a much more complicated patch though, but would be consistent. Otherwise, this makes a breaking change to move from one static type to another, lesser used, static type.
That's just my 2 cents though, feel free to do what you feel is best for the library and we'll cope. Thanks for your work @uiri and @ryanhiebert!

we'll either need to fork

I certainly don't want that.
What would you think about adding a dependency on ordereddict for Python 2.6? If I were the one to have designed this library (though it's likely a good thing I wasn't) I would have just done OrderedDict everywhere. Because we expect TOML files to be edited by humans, it's a fact of life that the order of the keys does matter, at least to the human. We can dictate that it doesn't matter, and can force it on computers, but humans do care when their files change in useless ways.
If you think adding the dependency is unwise, then I'd be inclined to pursue creating a dynamic subclass using _dict as a base. It feels a bit hacky to me, and I think it'd still be pretty infectious, but I can see the merit over adding another function argument.
One possible wrench in that idea is whether we see InlineTableDict as an interface to the library. I'm inclined to think it is, rather than just being a detail of how things work when a toml file is opened and written both by this library. Overall, I just don't care for all the subclassing, and would rather eliminate the need for it (except internally. I don't see a better way then the sentinel InlineTableDict class for that purpose).

As for using an OrderedDict for _InlineTableDict, this current implementation doesn't work with Python 2.6.

I want to maintain as much backwards compatibility as is reasonable. I have modified the .travis.yml file to that end.
Ryan, I rebased your PR commit as 48657a9 and, predictably, it fails on Python 2.6

What would you think about adding a dependency on ordereddict for Python 2.6?

I would rather avoid that if possible. Currently, the library has no dependencies outside of the Python standard library and I would prefer to keep it that way.
Using _dict as a base seems ideal (see 797caaa). The use of {} instead of _dict in _load_value was originally an oversight on my part when the code for inline tables was added. It is better to fix it and pass _dict throughout the code related to loads for consistency's sake.
Thank you Ryan for pointing out the issues with the existing InlineTableDict class and for your efforts to improve the code.

I'll work under the assumption that you already know it, but to be sure, I want to clarify that the dependency would only affect Python 2.6. It would not be installed for any other version.
What I'm thinking, then, is that InlineTableDict will end up being more of an abstract base class (not really, since it'll be fine for 3rd parties to use it directly, but we won't), and we'll use a dynamically created subclass of both _dict and InlineTableDict for inline tables. InlineTableDict needs to be a public interface, or else the power of InlineTableDict is only available to this library internally, which I think is less than ideal. It'll be a bit of a messy change, but it's certainly doable.
I'll pull out the uncontroversial fixup for InlineTableDict.__init__ method into a separate pull request.

What I'm thinking, then, is that InlineTableDict will end up being more of an abstract base class (not really, since it'll be fine for 3rd parties to use it directly, but we won't), and we'll use a dynamically created subclass of both _dict and InlineTableDict for inline tables.

Just to note, I already made the changes relating to dynamic subclassing that you have suggested (in a separate branch).

InlineTableDict needs to be a public interface, or else the power of InlineTableDict is only available to this library internally, which I think is less than ideal.

My comments below reflect my understanding of what you mean by "the power of InlineTableDict" but any clarifications are most welcome.
I'm not really sure that InlineTableDict is (or needs to be) a public interface. I view it as an implementation detail of the preserve flag. We could just as easily dynamically subclass _dict to add an is_inline method which returns True/False accordingly. The details don't particularly matter so long as toml.dumps(toml.load(file_obj), True) faithfully prints out inline tables as they existed in the original TOML file.
I do think that downstream users of the library may wish to know whether or not a given dictionary is an inline table, but that exposing that in the form of internal implementation details (in this case, a sentinel class) is less than ideal. I'm not sure what the best way to expose it is. I would prefer to take a more functional approach but I'm also concerned about extensibility beyond simply exposing information about inline tables. #77 comes to mind as something which would be better handled on an as-needed basis by a user of the library.
The API exposed by the library right now is rather simple and functional (in the sense of not particularly object oriented): load, loads, dump and dumps. Just like the TomlDecodeError and TomlTz classes,  the InlineTableDict class is an interface to the library only insofar as the library may expose these classes to its users as part of a returned value (or in raising an Exception). As a toml user, I would not rely too much on anything that exists in those classes but not their respective parent classes.
To take a cue from Python's json library, I think that creating TOMLEncoder and TOMLDecoder classes is one option to provide the flexibility that some users may need from this library. However, I think that such a change should be very well thought out. This is most likely outside of the scope of this particular PR.

The approach that I saw in that branch looks good to me. I'd recommend leaving dict as the base class, unless you have something specific driving the choice to make it something else.
In functional programming you'll tend to really good uses of data types. I think that InlineTableDict as a sentinel subclass is a good example of that. I think that I'd use something similar if I were writing this in Haskell, for example.
If this is not a public interface, then consumers of this library are not able to write a new toml file, without reading an old one, and have it use any inline tables. I think that there should be a way for users that don't need load or loads at all to still be able to make inline tables with dump and dumps. From there, it seems natural to expose InlineTableDict as the way for users to do it.
I like the functional approach, so the Encoder/Decoder classes don't jive well with my own thoughts. However, I've not used the json equivalents except in the most trivial of ways (just copy-pasting, basically), so I may not be a good judge of whether they are indeed the better approach.
I think at this point this particular PR is dead, and your work on that other branch should be how we implement what this desires, so I'm gonna go ahead and close it.

The approach that I saw in that branch looks good to me. I'd recommend leaving dict as the base class, unless you have something specific driving the choice to make it something else.

Oh, and even if you decide that you have valid case for not inheriting from dict, make sure it at least inherits from object, to ensure we're using a new-style class there in Python 2.


Cleanup Option<Arc<AtomicBool>> in network.

A small fix that replaces an uncommon edge cases with a default (the key being absent), which in both cases evaluates to false, this version results in simpler code though.

bors r+


having duplication in the added libraries to the generated code

Consider the following example:
class PaperDistribution{
  depend java.util.*;
  String[] data;
}

In the generated code, we will have two times the library import java.util.* imported.
These cases must be detected and one time the library needs to be added.

One depend is created by default; the other is created by the depend. When depend is used, there should be a check to see if it is going to be created by default anywhere. Alternatively the code generator should look for duplicates before outputting.


refactor: abstract common logic and makes the controller independent

Signed-off-by: Aylei<EMAIL_ADDRESS>What type of PR is this?

[ ] API-change
[ ] BUG
[ ] Improvement
[ ] Documentation
[ ] Feature
[ ] Test and CI
[x] Code Refactoring

Which issue(s) this PR fixes:
This PR refactor current code base to improve maintainability.
What this PR does / why we need it:

Abstract failover logic to common package;
Add an FileSystem shared storage provider for the following scenarios:

when there is no shared storage available and one wants to test the distributed deployment for demonstration purpose, without long term storage and scale-out ability;
when there is a shared file-system (like NFS), user can mount a shared NFS directory to each instance and configure FileSystem shared storage provider to the mounted path;

Eliminate dependency between controller packages, all controllers should be independent and only communicate with api-server, i.e. CRDs
Refine the structure of common package and move out some knowledge that is dedicated to certain controller.
Add test cases and refine existing test cases to cover the above change.

Special notes for your reviewer:
Not Available
Additional documentation (e.g. design docs, usage docs, etc.):
Not Available

@wanglei4687 @DanielZhangQD PTAL


Measure execution time of functions

My friends and I like to ~measure d*cks~ compare the execution times of our AoC solutions.
I'd like to see the execution time of the functions I write in millis or nanos with a flag to run like --exec-time or -E

I think it could always be there in the output.

i'm not against adding this, and i agree with @kwando that if added it would probably always be present


Update basic documentation describing the main intention of this project

Done ,

Waiting for conflicts to be resolved .

@charithsoori @99xt Aren't application.h and directory HttpClient missing?

Through the WebIDE it will be added :)


How do I create the static site if I modify the web site code?

@dondi, if I make changes to the code for my web site, how do I make the static page so I can deploy it on myweb?

As far as I can tell based on the file layout, upon changing the code (presumably you are editing what is in the /site folder), you need to run Jekyll within that folder. Windows installation is documented at http://jekyllrb.com/docs/windows/#installation —this takes multiple steps because Jekyll relies on multiple packages, but the basic requirement is Ruby. There are steps for enabling syntax-highlighting, but I don’t think you’ll need those for the Lab website, so I would suggest skipping those unless the subsequent Jekyll command does not work.
Jekyll, upon running (specific command: jekyll build), will generate the website in the /site/_static_site folder. It is the contents of this folder that mirrors the myweb site; this can then be FTP'ed as-is to the myweb server.

@dondi, I have made all of the changes to the site I want to do for now and have merged them into the master branch.  It is ready for you to run Jekyll at your convenience.  Thanks.
I don't really have a good way to preview the site to see if I messed anything up, so I'm hoping it looks OK.

I regenerated the files under _static_site and gave them a quick eyeball before committing and pushing. No issues stuck out to me, but admittedly this was a quick click-through.
If you pull or download the latest copy of this repository, then upload _static_site to myweb, then this should update things over there.
I deemed it safe to commit and push directly to master because the only change was to have Jekyll regenerate the static files based on the existing source.

Thank you.  I deployed the static site.  It looks OK, but there are some minor formatting issues (bold, centering, etc.) that I messed up.  I'll have to fix them later and ask you to redo the Jekyll.  It's not urgent so it may be a while before I get to it again.  For the moment, I'll close this issue.


Use-after-free bug?

I cannot for the life of me find the source of this, so I'll go ahead and post the warnings here:
src/link/script.c:177:3: warning: Use of memory after it is freed
                err(1, "%s(%u): Unexpected error in %s", linkerScriptName,
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/extern/err.h:27:13: note: expanded from macro 'err'
#define err rgbds_err
            ^
src/link/script.c:223:5: warning: Use of memory after it is freed
                                errx(1, "%s(%u): Unterminated string",
                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/extern/err.h:29:14: note: expanded from macro 'errx'
#define errx rgbds_errx
             ^
2 warnings generated.

The issue is linkerScriptName. It seems to be used after it is freed.
Install clang-tools and run scan-build make to see yourself.

Interesting... investigating.

The analyzer's HTML reports label "memory is released" at free(token.attr.string);, but that's not the case? Sounds like a false positive? (That's the case for both, too)

Is it possible that linkerScriptName could end up in token.attr.string? I doubt it, but we could put a check in place just so it's ignored.

I'm positive that it's impossible. The opposite, though...
By looking at it further, I may have found the culprit.
This line directly assigns the pointer. This is called only from here, which directly passes a string token's contents! Those do get freed right after.
Possible fixes are to either strdup the string passed to pushFile, or to detach the string from the token.
Both would generate a memory leak as-is (popFile should free its pointer), and I prefer the latter as it avoids a memory allocation, and would fail fast if a patch introduces manipulation of the string's contents.
What do you think?

The latter sounds fine to me.


Started to refactor Rpm class

Part of #440

Corrected AstoChecksumAndName class to calculate checksums only for rpm storage items, test was corrected accordingly
started to refactor Rpm class with remaking incremental update method. Tests with invalid packages are disabled now for incremental update, I'll fix it in the next PR.

When the refactoring will be fully complete, there will be no difference between usual update and incremental update.

@g4s8 you mean doesNotTouchMetadataIfInvalidRpmIsSent test? It seems to me, that it's better to compare metadata by xmls, not as byte arrays. Thus, if smth is wrong, mismatch will be human-readable, contain the xmls, and it would be easy to understand where is the problem.


Explain the ability to distinguish between internal, partner and public use of APIs via Audit Logs

Description:
Document: Working with Audit Logs
Please explain the ability to distinguish between internal, partner and public use of APIs via Audit Logs
Suggested Labels:
Type/Docs
Severity/Major
Priority/High
Suggested Assignees:
N/A
Affected Product Version:
apim2xx docs

Could you please explain the issue further?