Assigned type (Class) doesn't match the function argument's type (Class)

Godot 3.2 beta2
I am getting a strange error with typed GDScript, where it finds incompatibility between argument type and parameter type... while they are actually the same.
SCRIPT ERROR: GDScript::reload: Parse Error: At "update_episode_data_from_file()" call, argument 1. Assigned type (Project) doesn't match the function argument's type (Project).
          At: res://main.gd:294

I have a script_data.gd file with a Project class inside.
I also have a script_parser.gd file which const-imports the previous one, in order to define the following function:
const ScriptData = preload("./script_data.gd")
   ...
static func update_episode_data_from_file(project: ScriptData.Project, path: String) -> Array:
   ...

Then I const-imported both scripts inside main.gd, in which I have the following:
const ScriptData = preload("./script_data.gd")
const ScriptParser = preload("./script_parser.gd")
    ...
var _project : ScriptData.Project = null
    ...
func _open_project(fpath: String):
    ...
	var dir := fpath.get_base_dir()
	for ep_file_rpath in data.episode_files:
		var path := dir.plus_file(ep_file_rpath) as String
		ScriptParser.update_episode_data_from_file(_project, path)

This code works fine, but recently I've been getting this typing error in the editor, and it obscures any error happening elsewhere after this  line...
So far the only thing that fixes it is to close the editor and reopen it. Then a few hours later, it reappeared again.
I tried to repro in a simpler project, but could not find a pattern yet...

Can confirm. Had it in 3.1.1, updated to 3.1.2 in hopes it would go away, it didn't and is present in 3.1.2 as well.
I have script A that I preload into a constant in script B and from there I call a function that's defined in A. It returns a class instance and puts it into a variable in B whose type matches the func's return type, and that's where the errors shows up (it says the return type and the var's type don't match although they clearly do).
In my case, though, I remove a symbol from A, type it back, save the script, and the error goes away until something else happens that brings it back that I haven't figured out yet.

I'm experiencing a similar problem when using class_name (which should preload under the hood IIRC).
This problem seems to be specifically tied to inner classes.
Attached the minimum reproduction project: proj_gdstatic.zip
Or simply create those 2 files:
# ClassOne.gd
extends Reference
class_name ClassOne

class SubClass:

	func _init():
		return

static func create_subclass():
	return SubClass.new()

static func create_subclass_with_type() -> SubClass:
	return create_subclass()

# Control.gd (main scene)
extends Control

var my_var : ClassOne.SubClass

func _ready():
	assert(ClassOne.SubClass.new() is ClassOne.SubClass)
	assert(ClassOne.create_subclass() is ClassOne.SubClass)
	my_var = ClassOne.create_subclass() # Okay
	my_var = ClassOne.SubClass.new() # Error!
	my_var = ClassOne.create_subclass_with_type() # Error!

Maybe related to #30557

Although it's marked as fixed, I'm getting the error again on 3.2. Should I make a new issue?

@katoneko please provide a minimal reproduction project.

I haven't dug into the exact scenario under which the bug reveals itself yet. As soon as I can output a solid MPR, I'll upload it here!

@vnen
MRP: class_bug_test.zip

Open the project, the error shouldn't be there yet.
Open and edit inner_class_here.gd in some way. Erase a character, add another class, write a func, anything goes.
Save the changes.
Open use_inner_class.gd. Depending on your configured Idle Parse Delay, after the script is re-parsed, the error The assigned value's type (InnerClass) doesn't match the variable's type (InnerClass) should appear without intervention.
Navigate to return_inner_func.gd. Edit it in the same way described in step 2.
Save the changes.
Go back to use_inner_class.gd. After the script is re-parsed, the error should go away on its own.

Go to step 2 if you want to repeat the cycle.

Can confirm this is still a problem in 3.2.2 stable.
Though even editing like described here doesn't "solve" the problem for me - no matter what I do, even at runtime GDScript claims a type is not compatible with itself - which is a bit silly ;)
So far the only workaround I found is to not assign the inner class type, which of course defeats the purpose of being typed in the first place.

Another workaround that does the job for me:
If this produces the error:
func doSomethingFunction(argument :MyInnerClass)
    var instance :MyInnerClass = argument # Doesn't match variable's type error

This solves it for me, via using a temporary typeless variable:
func doSomethingFunction(argument :MyInnerClass)
    var temp = argument
    var instance :MyInnerClass = temp # No error, works fine

Just tested my own MRP and the issue's still present in 3.2.3, just in case. But in my case though, editing does make the issue go away temporarily and doesn't affect runtime.

This seems to still be an issue on 3.3.2

Still an issue in 3.4.2
I don't use inner classes, but I do use class_name, which seems to cause this as well. It happens at seemingly random places. Quitting and reopening the project often makes the error disappear.
At other times I've had problems with inheritance. For example when class Child extends Parent and there's a function that expects Parent, but I'm passing in Child, which should be fine, but Godot complains with Assigned type (Child) doesn't match the function argument's type (Parent).

"I don't use inner classes, but I do use class_name, which seems to cause this as well. It happens at seemingly random places."
Confirming. It just pops up for seemingly no reason in places. It doesn't cause runtime problems so I've learned to just ignore it and live with it, but it's annoying.

It still happens on the 3.5 language server. Like @WarrenMarshall said, works fine during runtime, it's just an annoying false positive.

I believe this still happens in 4.1, as I just ran into this absurd error:

Godot seemingly thinks the Enum I'm giving to new() is different from the one in my class

@Azagwen are you sure this is the same error? Orientation is a global enum, does this happen if you name it something different?

@AThousandShips
The engine has given me no indication that Orientation was a global enum, it would even direct me to my own Enum when I would CTRL click on it 🤔
I guess that explains it tho, and it also makes the error I was getting incorrect for my case, even tho it is similar to the one this issue is reporting

That seems to be a bug in the shadowing warnings, please open a new issue for this, as the code works fine (minus the fact that you can't make the const variables) once you fix that part

@Azagwen are you sure this is the same error? Orientation is a global enum, does this happen if you name it something different?
Edit: Confirmed, this is caused by the fact that Orientation is already defined, this should probably instead be an error when defining an Enum that shadows a global name

Are you sure Orientation is a global enum? or am I mis-undersstanding?
I can't seem to access it at all from my project, which if it is a global enum explains why I didn't notice it.

Yes: here

Yes: here, not the one in PlaneMesh

I see, then it being unaccessible is also a bug I guess 🤔

I believe this still happens in 4.1, as I just ran into this absurd error:  Godot seemingly thinks the Enum I'm giving to new() is different from the one in my class

issue created for this at #81460 Hope I provided enough info

Just hit this in 3.5.2.stable. No inner classes, no inheritance, nothing like that. The most complex thing I'm doing is defining class_name and that's it. I have a World scene that instantiates and sets up various other entities, usually kickstarted via a signal. I started seeing errors that (Thing) does not match the expected type of (Thing). If I remove the type annotations in my method, it seems to go away, but I like having the auto complete. If I edit the Thing script in some trivial way (add a newline for example), then the World script doesn't complain anymore. 🤷♀


Wrong menu items order with accentuated characters

Hugo Static Site Generator v0.65.3/extended windows/amd64 BuildDate: unknown
For example, É is ordered after Z instead of being ordered after E.

This is a duplicate of #2180


Iconwrapper.md file does not exist

Describe the bug / expected behavior
What are the steps to reproduce?

Go to Icons.md
Click on https://github.com/etn-ccis/blui-react-native-component-library/blob/master/docs/IconWrapper.md , in Icon as a prop section
IconWrapper.md file does not exist

Screenshots / Screen recording
Code snippet / Link to minimum reproduction example

CODE HERE

Your environment information

Suggested fix

Anything else to add?

We can remove the link as we no longer support using IconWrapper


Question | How does Panilla deal with custom skulls?

My question is how Panilla deals with custom skulls on creative mode on strictness "Average"?

Other Plugins like this removes the texture completely. So my builders can't build.
  https://github.com/2LStudios-MC/ExploitFixer

If this plugin works for this, I would buy the Jar for my server.
Sorry for my bad English.

You can check how it works at mc.ruinscraft.com, The server where it was developed, And if you want to buy it, it's here https://www.spigotmc.org/resources/panilla-prevent-hacked-items.65694/

custom skulls

Hi, by custom skulls, are you referring to "HD" heads? Meaning skulls with high resolution textures?
There is a configurable option for disabling these regardless of the strictness level. https://github.com/Ruinscraft/Panilla/blob/master/bukkit/src/main/resources/config.yml#L27
(We don't enable this on mc.ruinscraft.com)

Hi, by custom skulls, are you referring to "HD" heads? Meaning skulls with high resolution textures?

I mean this heads: https://minecraft-heads.com/custom-heads


Atomic bridge initiator Move module

Summary
Atomic bridge initiator Move module
Changelog
Adds atomic_bridge_initiator module, with functions:

init_module (creates BridgeTransferStore and BridgeConfig resources and moves them to deployer)
initiate_bridge_transfer (initiator transfers some amount of MovETH to atomic bridge, new bridge transfer is created, bridge transfer store is updated)
complete_bridge_transfer (equal amount of MovETH is burned, transfer state is updated)
refund_bridge_transfer (equal amount of MovETH is transferred back to initiator, transfer state is updated)

as well as a helper function get_bridge_transfer_index.
Constants for error codes and bridge transfer states are included.
This module is designed for consistency with existing bridge modules and contracts.
Testing
To run unit tests:

Navigate to protocol-units/bridge/move-modules
Run aptos init (Press Enter or input yes at all prompts.)
Update relevant addresses in Move.toml with your address generated in the aptos init step. Currently Move.toml uses 0x4143f27fd7c76ed9e191968ebfe7f2a46ec188f815776678a8a4b80ccf4ffa45 as an example address:

[addresses]
atomic_bridge = "0x4143f27fd7c76ed9e191968ebfe7f2a46ec188f815776678a8a4b80ccf4ffa45"
moveth = "0x4143f27fd7c76ed9e191968ebfe7f2a46ec188f815776678a8a4b80ccf4ffa45"
master_minter = "0x4143f27fd7c76ed9e191968ebfe7f2a46ec188f815776678a8a4b80ccf4ffa45"
minter = "0x4143f27fd7c76ed9e191968ebfe7f2a46ec188f815776678a8a4b80ccf4ffa45"
admin = "0x4143f27fd7c76ed9e191968ebfe7f2a46ec188f815776678a8a4b80ccf4ffa45"

Run aptos move test

Note: tests with the #[expected_failure] attribute pass if the test aborts. To verify that the test aborts in the specific expected manner, comment out the #[expected_failure] line, re-run aptos move test and check that when the test fails the expected error code is thrown.
The following unit tests are included:

test_initialize
test_initiate_bridge_transfer
test_initiate_bridge_transfer_no_moveth (expected failure)
test_complete_bridge_transfer
test_complete_bridge_transfer_wrong_preimage (expected failure)
test_refund_bridge_transfer (marked with expected failure in unit tests for now due to issue https://github.com/movementlabsxyz/movement/issues/272)
test_refund_completed_transfer (expected failure)

All tests pass. The logic should be reviewed to ensure tests are aligned with bridge requirements.
Outstanding issues

It would be good for all modules and contracts to align on naming conventions and what addresses are needed; for example, is the atomic_bridge going to be the same address as the master_minter in practice? If so, those can potentially be combined, along with creator and other names for the same address.
Tests are repetitive with a lot of redundant boilerplate; I could potentially reuse test_initiate_bridge_transfer in the other tests but unless anyone thinks that refactor is important, I think it's fine to leave as is for now.
Move.toml addresses should be configured for deploying under a resource account.

In the testing steps could you leave instructions for how Move.toml needs to be edited in order to get the tests to pass? I think it's something along the lines of.

run aptos init
copy address generated there.
replace that address for values ..
etc.

This will be helpful for other reviewers too.
I think we will need a script to do this for us, so that eventually we can run all our move tests in CI. But that's for later.

In the testing steps could you leave instructions for how Move.toml needs to be edited in order to get the tests to pass? I think it's something along the lines of.

run aptos init
copy address generated there.
replace that address for values ..
etc.

This will be helpful for other reviewers too.
I think we will need a script to do this for us, so that eventually we can run all our move tests in CI. But that's for later.

Yep, updated testing steps.

We must revisit our strategy for managing bridge transfers, as the current approach involves maintaining comprehensive records, thereby creating a substantial data vector. It is unreasonable to expect end users to incur high gas fees for processing this entire vector. We need to identify an alternative method to handle this efficiently.

I changed from vectors to smart tables for lists of transfers, which should be more efficient.
I also added the drop ability to the BridgeTransfer struct and made it so after refunding or completing a bridge transfer, the transfer is removed from the smart table.
So, there could still be congestion if tens of thousands of transfers are simultaneously initiated. It would be good to tests the practical upper bounds for number of initiated transfers.
Because events are emitted whenever transfers are initiated, completed or refunded, those events can potentially be used as a historical record.

Looking good! I think your suggestion about removing the repeating boilerplate logic is a good one. Let's add that in as it will reduce bloat here. There's a lot of repeating logic in the tests that obfuscates the core thing that's being tested

I've added an init_test function to eliminate much of the repetitive upfront boilerplate in tests. I don't seem to be able to compose the test functions by, say passing the output of one in as the input to another, so this might be as streamlined as I can make the tests given the multi-step nature of the tests that refund or complete bridge transfers.

I believe I have made all requested changes @cde8 @0xmovses

The only thing are the questions on the master minter.

I eliminated master minter in favor of only using the atomic_bridge address. Yes, anyone can call complete_bridge_transfer and make it execute successfully provided the right pre-image is provided.
After it's verified that the pre-image is correct, then the caller is made a minter. Now that you mention it, though, I'm not sure that's necessary. Right now we have in complete_bridge_transfer:
        moveth::add_minter(atomic_bridge, signer::address_of(account));
        moveth::burn(account, @atomic_bridge, bridge_transfer.amount);
        moveth::remove_minter(atomic_bridge, signer::address_of(account));

But why not just have the atomic bridge as a minter do the burning:
         moveth::burn(atomic_bridge, @atomic_bridge, bridge_transfer.amount);

I just updated it to do this instead as it seems more efficient to me.
As long as the caller passes in the correct pre-image value, it seems to me that it's fine for the atomic bridge to do the minting. If the atomic bridge is published under a resource account, then there will be no key to expose; callers will simply pay transaction fees and the atomic bridge will mint or burn as needed provided that the the function parameters and assertions are satisfied.


Handle OMP_THREAD_LIMIT in environment.

Fixes R win builder.
cc @hetong007
Details, OMP_THREAD_LIMIT is an environment variable defined by OpenMP standard.  Users can set it to limit the number of threads in each thread group.  However, the omp_get_max_threads() function used by XGBoost is not affected by this env var.  So when the env var is set, XGBoost naively thought it can obtain omp_get_max_threads() number of threads, while the received number of threads is much smaller.
I ran it on win builder for a quick test https://win-builder.r-project.org/vCrjkrlXZE0l/00check.log we should run it again after backporting to 1.5 branch.

Also, the cause of https://github.com/dmlc/xgboost/issues/7156 is now known.  This would be proper fix.

cc @hcho3 I feel like I just did the impossible.  Please review. ;-)

Nicely done!

Hmm, msvc doesn't implement this environment variable.


Test for Default FSx Configuration

Signed-off-by: Sean Smith<EMAIL_ADDRESS>By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report

Merging #1665 into develop will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           develop    #1665   +/-   ##
========================================
  Coverage    51.95%   51.95%
========================================
  Files           24       24
  Lines         3948     3948
========================================
  Hits          2051     2051
  Misses        1897     1897

Continue to review full report at Codecov.

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


Use ISO func instead of FUNCTION

gcc5 complains about FUNCTION.

@andrelucas Thank you for your contribution. Unfortunately, I cannot merge this PR as-is: it would fail to compile on Windows (it compiles ok for me on Mac OS/X and Ubuntu).
However, what you could do is replace references of __func__ in this file with __NATS_FUNCTION__, add #include "natsp.h" and in src/include/n-unix.h add #define __NATS_FUNCTION__  __func__ and in src/include/n-win.h add #define __NATS_FUNCTION__   __FUNCTION__.
We could do all that directly in err.h, but doing the way I describe makes this available to other source files where we may need to have access to __func__/__FUNCTION__ in the future.
Let me know if you would like to make those changes, or I can do it if you prefer.

I'll gladly do that, thanks for the crystal-clear explanation.

@andrelucas All good! Thanks again for the contribution.


Hard breaks aren't reflected in output

Description
See full issue here https://github.com/apple/swift-docc/issues/477
After https://github.com/apple/swift-docc/pull/633, swift-docc will emit LineBreak from swift-markdown into "\n". But swift-docc-render still does not treat the new line correctly.

Checklist

[X] If possible, I've reproduced the issue using the main branch of this package.
[X] This issue hasn't been addressed in an existing GitHub issue.

Expected Behavior
{
  "inlineContent": [
    {
      "text": "This text should",
      "type": "text"
    },
    {
      "text": "\n",
      "type": "text"
    },
    {
      "text": "appear on two lines.",
      "type": "text"
    }
  ],
  "type": "paragraph"
}

Render text in 2 lines
Actual behavior
Render text in 1 line
Steps To Reproduce

Use the following markdown input

let source = #"""
This text should\
appear on two lines.

This text should
appear on two lines.

This is the second paragraph.
"""#

Use this version of docc https://github.com/apple/swift-docc/pull/633
Set VUE_APP_DEV_SERVER_PROXY to the corresponding .docc-build folder

Swift-DocC-Render Version Information
No response

I can help look into this. I'm thinking we would probably just want to map the inline text nodes with newline characters into <br> HTML elements.
I'll need to play with the DocC PR to see if we can rely on the newline always being in its own individual text node or if it could possibly be interspersed with other text.


How to update to the latest version of this plugin?

I tried to uninstall and reinstall this plugin "plugin.google.maps 1.2.4" but it didn't work. Kindly help me out.

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/20052133-how-to-update-to-the-latest-version-of-this-plugin?utm_campaign=plugin&utm_content=tracker%2F637500&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F637500&utm_medium=issues&utm_source=github).

If you remove and then install this plugin back, it should be working fine. Alternatively you could just specify the exact version you want to pull in.


Do we need controller.compile?

Hi Florian,
Thanks for your great code! I have a question though:
Do we really need this line of code (line 81):
controller.compile(loss='binary_crossentropy', optimizer=sgd, metrics = ['binary_accuracy'], sample_weight_mode="temporal")
from https://github.com/flomlo/ntm_keras/blob/master/main.py ?
I don't really think we need this. If we do need this, it would really confuse me. We already specify (line 43):
model.compile(loss='binary_crossentropy', optimizer=sgd, metrics = ['binary_accuracy'], sample_weight_mode="temporal")

from https://github.com/flomlo/ntm_keras/blob/master/model_ntm.py
controller is just a part of the NTM, and we should specific the ``compile" part only at NTM model. Am I correct?
I hope I made my question clear. Again, thanks a lot for your great work!
Best,
Cuong

Hello and thank you for your interest!
I think that back then, when I wrote the code, it was necessary as
compiling the controller allowed to refer to something ... input/output
of the controller, maybe? Or some internal state? I dont remember
anymore, havent touched neither this code nor keras for almost a year.
I am also not sure if compiling is "recursive" in this particular case.
It could very well be however that this process in keras has changed. As
I said, I haven't followed keras development.
You may try it without this line, and if it works, I would merge the
respective patch :)
Otherwise: If you really need to understand that line perfectly I will
have a look at it, but not right now, as my master thesis is due in 4
days :|
Best,
Florian
On 9/19/18 5:29 AM, Hoang Cuong wrote:

Hi Florian,
Thanks for your great code! I have a question though:
Do we really need this line of code (line 81):
controller.compile(loss='binary_crossentropy', optimizer=sgd, metrics =
['binary_accuracy'], sample_weight_mode="temporal")
from https://github.com/flomlo/ntm_keras/blob/master/main.py ?
I don't really think we need this. If we do need this, it would really
confuse me. We already specify (line 43):
|model.compile(loss='binary_crossentropy', optimizer=sgd, metrics =
['binary_accuracy'], sample_weight_mode="temporal") |
from https://github.com/flomlo/ntm_keras/blob/master/model_ntm.py
controller is just a part of the NTM, and we should specific the
``compile" part only at NTM model. Am I correct?
I hope I made my question clear. Again, thanks a lot for your great work!
Best,
Cuong
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/flomlo/ntm_keras/issues/7, or mute the thread
https://github.com/notifications/unsubscribe-auth/AGaa-4CBx3mpmh1N3rznwL5qvluz1qrEks5ucbopgaJpZM4WvWNU.

Thanks Florian for your quick response!
I don't know what your master thesis is about. But given your deep understanding of this advanced topic, I know the thesis is really awesome! :-P
Good luck!
Best,
Cuong.


import firebase error

Hello,
I the firebase docs there's a section about reducing bundle size by only importing/requiring the parts that you need e.g.:
const firebase = require('firebase/app');
require('firebase/auth');

which works perfectly fine on e.g. create-react-app.
On next.js i get an
{ [Error: The XMLHttpRequest compatibility library was not found.]   code: 'auth/internal-error',   message: 'The XMLHttpRequest compatibility library was not found.' } error
Someone has an idea where this comes from?
I assume it has sth to do with not using webpack on the server-side and so running in some ssr issues?
Using
const firebase = require('firebase');

on the other hand works perfectly fine.

What firebase action are you trying to do? Or is this error thrown when trying to initilize the app?

@Ehesp i only initialize the app, but even if i comment it out it seems like adding the two require lines above is enough to let the server crash.

@sakulstra I guess that's an issue.
May be you could try to mock the Node.js environment with the our custom server API and try to add what firebase is looking for.
Since firebase is not open source, that can be quite tricky. May be we could try to read the source code at node_modules

Could you try const firebase = require('firebase') as stated here https://firebase.google.com/docs/web/setup that's the way to call on the node.js side of things. I'm not sure if it will run in a browser. But with dynamic imports coming 🔜 that could be resolved.

@timneutkens this will most properly work as it's basically equivalent to:
import firebase from 'firebase' which also works, but like your require approach this increases build size a lot (with unnecessary things like messaging and database if you e.g. only need auth).
@arunoda i'll try to figure things out, but my hopes are low as it's not important enough to waste a lot of time with this :)

@sakulstra I do the general import, also does't work with specific importing.
On a side note with Firebase, just remember you can't do authentication with the client SDK on the server, or anything which requires user specific requests.

@Ehesp with regards to your comment, do you know where I might learn more about server-side limitations of Firebase related to auth and ssr?
It's unclear to me what is/is not possible (e.g. this repo 'shows firebase auth on server and client, and protected routes' ). Thank you .

Same problem here, only solution using a general import (with unnecessary services in the final bundle) 🙁


1049 Embed font size adjustment & add font mixin

fine by me

Not trying to be nitpicky, but is this resolved? The font of the list still looks pretty big on my embeds / takes up a good deal of space. ;-)

From my understanding, it was "responsiveness adjustments" which usually sits within the realm of tablet and mobile, so I adjusted the font sizes of these accordingly and not the desktop view, i'll adjust this next week, thanks.

Thanks so much Eik!
Toby
--
Tobias Deml
+1<PHONE_NUMBER>
Co-Founder & Producer/DP
www.prodigium.pictures
1601 Vine Street, Hollywood, 90028 CA
Co-Founder & Editor in Chief
www.cinemaofchange.com
On Fri, Jun 19, 2020, 11:04 AM Eik Hunter<EMAIL_ADDRESS>wrote:

From my understanding, it was "responsiveness adjustments" which usually
sits within the realm of tablet and mobile, so I adjusted the font sizes of
these accordingly and not the desktop view, i'll adjust this next week,
thanks.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/findthemasks/findthemasks/pull/1064#issuecomment-646796298,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AP64YDNDIODTCHSPN6QH6ZTRXOR7TANCNFSM4N7XES2A
.


refactor: change InvertedIndexWriter method signature to offsets to f…

…acilliate caching
I hereby agree to the terms of the GreptimeDB CLA.
Refer to a related PR or issue link (optional)
What's changed and what's your intention?
Change methods signatures of InvertedIndexWriter to offset/size so that we can add a cache layer from arguments provided.
Checklist

[x] I have written the necessary rustdoc comments.
[x] I have added the necessary unit tests and integration tests.
[ ] This PR requires documentation updates.

Summary by CodeRabbit

Refactor

Updated parameter handling in fst and bitmap methods to improve performance by using direct offsets and sizes instead of metadata references.

Tests

Adjusted test cases to align with the updated method parameters, ensuring consistent and accurate testing of the new method signatures.

@coderabbitai pause

@zhongzc PTAL


Improve the experience for generated delarations

Today Razor doesn't have a good way to map lines for declarations (model type, class declaration, @inject'ed properties).
The effect of this is that errors in declarations (such as missing a using) won't map to a line in the original source code. Clicking on the error in the error list won't take you to the source file.
We have a pretty good experience and coverage for errors in expressions and code blocks, but we haven't needed to solve this problem before for declarations.

We need to come up with a strategy for improving the test coverage of this area first, so we can use our existing integration tests, and know which cases where the user typed code that doesn't get line-mapped. All of these are potential errors that don't take you to the source file.

This was done as part of the find-all-references work.


feat: ictx + transfer with limited sudo call #NTRN-85

In order to prevent malicious contract to overuse ibc sudo call, and run heavy computing at relayer's expense, we run sudo call with certain amount of gas(dao controlled) - SudoCallLimit
We run sudo call with cacheCtx with limited amount of gas
_, err = im.ContractManagerKeeper.SudoTimeout(cacheCtx, senderAddress, packet)
If the contract tries to consume more gas than allowed with SudoCallLimit, then panic is initiated by wasmvm
We converts the out of gas panic(and only this), and process it later as general error returned from the contract, i.e. suppress the error, save failure to the storage, pay fees to relayer.
In case of any other kind of panic, we treat it as relayers fault, do not recover it. Transaction aborted.
test run: https://github.com/neutron-org/neutron-tests/actions/runs/5939595766

https://github.com/neutron-org/neutron-tests/actions/runs/6010032342

https://github.com/neutron-org/neutron-tests/actions/runs/6039808703

https://github.com/neutron-org/neutron-tests/actions/runs/6046723887

also please:

respect the linter errors re files formatting;
create a PR to the neutron-docs repo because these changes are definitely one of those we don't want to forget about to reflect there.

also please:

respect the linter errors re files formatting;
create a PR to the neutron-docs repo because these changes are definitely one of those we don't want to forget about to reflect there.

I want to fix the linter errors after merge all major PRs into update-sdk47 branch, cause now linter create too much noise with "deprecated" errors, which should be fixed in corresponding PRs
will do

https://github.com/neutron-org/neutron-tests/actions/runs/6236180528

https://github.com/neutron-org/neutron-tests/actions/runs/6237857634


dx-data-grid Angular2 pagination VERY LOW performance

devextreme-angular2 16.1.7
angular2 2.0.1
When loading a big amount of registers on dx-data-grid, (>40K or 50K) the pagination is very very slow, about 3~4 second for displaying another results page with pagesize of 5 to 50 registers tested.
Using custom datasource JSON array.
Same test in angular 1 working fine

Fixed in 16.2.1-alpha.2


Using abc with vercel-deno

Is there an example of using abc?

The problem (and it seems a lot of Deno frameworks are guilty of this) with abc is that it implements the for…of loop of the HTTP server and does not expose a function to handle a single HTTP request.
abc needs to be adjusted to expose a function that can handle a single HTTP request, so that it can be exported by the serverless function file. Similar to this PR which made oak framework be compatible.

Gonna close since this isn't an issue with vercel-deno itself. Happy to add an example for abc to the api directory if/when they add a single request handler function.


Sync issue in create outgoing facetime?

tell application "System Events"
tell process "FaceTime"
--Click the "New FaceTime" button
set createButton to button 2 of window 1
click createButton
DO YOU NEED A DELAY OR CHECK FOR EXIST HERE?
 THE SHEET MAY NOT YET EXIST WHEN YOU TRY TO GET IT.
--Get the sheet
set createSheet to sheet 1 of window 1
		--Focus the input field
		set inputField to text field 1 of createSheet
		set focused of inputField to true

Have you run into an issue where the input field is not available when the script tries to access it?
My understanding is that in most cases AppleScript calls will block until the UI interaction goes through, but this may not be the case.

That would be nice but you have delay statements all over. Leads me to believe you were dealing with those issues and seems to be the error messages people are getting where resources don't exist when your next call happens. Although the call to click a bottom blocks until the action is complete, it may not block for creation of the next window object that the click creates. Just my thoughts.

Alpha 8 is more reliable. If you still get reports on this issue, try including the menu click at the top inside the repeat loop.
click menu item 1 of menu of linkButton

I really think the following statement needs to be inside the repeat loop to copy the ft link:
click menu item 1 of menu of linkButton
Otherwise the repeat loop does nothing but repeatedly check for a clicked link that was missed and will never be clicked again. I'm getting this error on the timeout.

Thank you for helping to troubleshoot this! I understand where you're coming from with the delay statements, though I can't recreate this issue in this specific case.
I've created this script that opens the menu and immediately copies the link, then displays a dialog message that says whether the menu was present. Can you open it in Script Editor and run it on your machine and let me know if it works?
Please note that this script requires macOS 12.4.
copylink.applescript
tell application "System Events"
	tell process "FaceTime"
		set linkButton to button 1 of window 1
		click linkButton
		if menu of linkButton is {} then
			display dialog "is empty"
		else
			click menu item 1 of menu of linkButton
			display dialog "is not empty"
		end if
	end tell
end tell

Great idea. I'll mess with the script and see what I can do to get some fails for the whole sequence. That requires no functioning coding environment except Applescript. One of my Macs is dead slow so that will be perfect also as the lowest common denominator for people using old macs.

Well I think the issue is Facetime gets left in peculiar states, sometimes half way through the automation. Sometimes requests get stacked up and then they all flood in. It seems to be a MacOS/FT issue of some sort. Maybe closing FT after every call will help alleviate the problem. I ran the scripts and messed with variations of it, but they generally work as intended. When AM does it, sometimes a menu gets stuck. Eventually I could no longer receive FT calls on the phone and can only start them. Airmessage was not relaying the notification despite restarting all devices. I'll keep experimenting... I've never gotten FT to work from a browser.


Move ActiveJob adapter to delayed_job

Implements adapter for ActiveJob inside the gem. This adapter is defined only if rails version is >=8, for earlier rails versions adapter is defined inside the Rails itself.
I'm not supper familiar with delayed_job internals, this is just a draft if you are interested in doing this I can finish the work on this PR.
This is connected to the discussion here https://github.com/rails/rails/issues/52929
❤

@albus522 I've moved adapter from Rails and added the tests. Let me know what do you think about this approach


WMCore training plans for 2024-Q1/Q2

Impact of the new feature
WMCore in general
Is your feature request related to a problem? Please describe.
Outreach and sharing knowledge such that the team is uniformly capable ot work across areas of the workload management realm. Not only the team, but also any CompOps and graduate enthusiasts!
Describe the solution you'd like
The solution is to provide a documentation on each of the topics we have identified and present it over Zoom to the core team and anyone else interested in CMS Workload Management.
For the documentation, if it already exists, we only need to review it and make sure it's good enough. If it does not exist, we should create it and base the presentation on that (no need to create separate slides).
Presentation is supposed to be recorded to facilitate future training.
For the moment, we have identified the following 10 topics that deserve a dedicated training session:

[ ] WMAgent deployment and draining
[ ] Data flow/acquisition in WM
[ ] Services and job logs
[ ] Monitoring used - directly and indirectly - in WM
[ ] Standard WM debugging
[ ] Interactive grid job execution
[ ] Microservices
[ ] Request Manager and its CherryPy threads
[ ] WMStats and its CherryPy threads
[ ] Global WorkQueue and its CherryPy threads
[ ] Advanced Debugging I (topics TBD)
[ ] Advanced Debugging II (topics TBD)

Describe alternatives you've considered
None
Additional context
We plan to allocate 2 persons for each of this subject, one being considerably new to the project. Said that, it would potentially be a mix up of Alan/Todor/Kenyi with Dennis/Valentin/Andrea.

Considering that @vkuznet mentioned the CouchDB and MongoDB debugging the Q1/2024 straw-person plan, maybe could be interesting to have training for interacting/using CouchDB and MongoDB, if it is useful to this part of the debugging

Copied from @vkuznet's comment in the Google Doc.

We may easily add the following:

MS debugging
low/high load in a system, i.e. why there are low number of workflows and how to address this. Does the system is over stressed with large number of workflows in a system and how to ease this situation
CouchDB debugging
MariaDB debugging and its queries
WMA errors codes explanation and how to navigate them
How to submit test workflow and debug its execution
WMA state transition debugging

These list can be expanded further by looking into data-ops/PnR issues they posted on MM and seeking issue resolution. I only posted a few which came up last year.

@vkuznet and all:  I think the above is a good list, but I'm worried that it's too fine grained to dedicate one session to each bullet point.  As a compromise, I've added two "Advanced Debugging" sessions to the list above, topics TBD later.  We can always expand further, but I think it would be nice to set the scope at something achievable, complete it, and then evaluate the next target.

Another suggestions would be decide which tool set to use for tutorials. We had so many wrappers around plain HTTP protocol that many believes that without such tools we can't work with service APIs. A typical example is DBS, where many users relies on dbsClient while it is much simpler to use curl and avoid complicated dependencies. Said that, may I suggest to have dedicated topic for tools and their usage. My vote will go to use curl for almost everything in CMS WEB/Services universe and only complement it with wrapper tools. This suggestion also applies to working with CouchDB (and its views) and possible MongoDB (if we run server with http mode). It also will teach users to understand protocol and headers and work across many OSes rather specific tool/specific OS.

Even though I agree that using curl as a general HTTP tool for interacting with (external) services, I think this should be left up to the discretion of the person that will be carrying out the training. There is no really right tool and/or right way of debugging things and each person can and should be free to perform that as they see fit.
I will soon start creating WMCore issues for each of those 12 tasks/topics that we have identified so far.

Even though I agree that using curl as a general HTTP tool for interacting with (external) services, I think this should be left up to the discretion of the person that will be carrying out the training. There is no really right tool and/or right way of debugging things and each person can and should be free to perform that as they see fit.
I will soon start creating WMCore issues for each of those 12 tasks/topics that we have identified so far.

Alan, the main difference is a choice of OS, with CMS tools you always stuck with the same tools which a-priory are not required to be used with HTTP, with curl you always free with choice of OS. And, as I said you gain better understanding of protocol, headers, etc. But I agree it is a choice of person who will carry the training. I only provided my feedback rather then asking to enforce it.


Consider indicating that custom connectors are not compatible with dataflows

The documentation currently does not address the limitation that dataflows do not support Custom Connectors. Please consider adding this known limitation to the official documentation.

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

ID: 305e8837-917d-43d4-4d09-a180082f3ab8
Version Independent ID: b43bfaf7-d7e1-a715-1ffa-e1f9e78371e8
Content: Using dataflows with on-premises data sources - Power BI
Content Source: powerbi-docs/transform-model/service-dataflows-on-premises-gateways.md
Service: powerbi
Sub-service: powerbi-service
GitHub Login: @davidiseminger
Microsoft Alias: davidi

Thanks for your comment. The dataflows documentation is going through an update soon, and we'll be sure to include this information. Thanks!


Issue put on other part, since this is not currently active one..!_read_xdf error with Shimmer3 recording data

I have trouble using read_xdf function with my physiological data recorded with Shimmer3, and saved with LabRecorder.
With LSL4Unity only recording files, read_xdf worked fine. but when I try to open shimmer3 only recording file or combined recording file with LSL4Unity, both show error message as 1).
I tried various numbers with upsample and fillmissing options, and both did not work.

Thank you!

Error message

My signal(32 channel) in sigviewer

Current ECLShimmerCapture Configuration + sampling rate of LSL is 100Hz

+When opened with sigviewer, it showed the warning message, but did not let me control sampling rate.

can you attach an example of the problematic file?


PROBLEMS tab shows include errors

I am able to compile project with west build task but I assume that vscode uses some other build configuration to detect errors, like include, etc.
For the simplest hello_world app it shows errors like:
#include errors detected based on information provided by the configurationProvider setting. Squiggles are disabled for this translation unit (<mypath>/zephyrproject/zephyr/samples/hello_world/src/main.c).

cannot open source file "zephyr/zephyr.h"

Do I need to disable this smart analyzer or change build config?

Hello,
Thank you for using my work. I hope it will help you to go forward and be productive.
Well, this kind of errors were expected from me. The reason for that is currently missed proper configuration for Zephyr's binding into workspace. Thus please ignore it. I am using C++ Intellisense extension in VSCode for code navigation. It seems to be enough.
Please do not hesitate to provide a pull request if you'd like to solve this issue.
Best regards,
Alexander Kozhinov

Hello @finikorg Your problem should be fixed by PR #4  now.

Approved to work


Fix some documentation issues found in Scrutinizer

Fixed some of the issues found in Scrutinizer:

PHPDoc for read-only properties
Defined protected properties for some dynamically defined properties.

Thanks for the PR but as long as nobody fixes the build (=the tests for the current phpunit version), nothing will get merged :(

Totally agree, I'm going to attempt to figure out why it's failing and fix
it in a separate pr.  For starters, it passes on my laptop with the same
versions of everything.
On May 8, 2016 3:25 AM, "Julian Seeger"<EMAIL_ADDRESS>wrote:

Thanks for the PR but as long as nobody fixes the build (=the tests for
the current phpunit version), nothing will get merged :(
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/brianium/paratest/pull/203#issuecomment-217700164

Now that build is green (or will be after a rebase/merge), most of this PR looks pretty redundant to me (especially the @package annotation and the Class DocBlock, I mean seriously ^^) but if it satisfies some IDEs and probably won't hurt anyone.
Just out of interest: which IDEs have problems with autocompletion of real methods when a magic method is present?

@julianseeger you're right about 'Class' and '@package', those really aren't needed so I'll take them out. Basically what I was going by was the Scrutinizer job. I think all that stuff can be customized maybe to turn certain features off. Still, for things like @property-read I think it does actually make sense. I'm using PHPStorm for the record.
I also added protected $variable statements which I think is definitely the most important thing to add. It's bad practice in PHP to define variables on the fly like $this->foo inside a constructor or anywhere, without having an explicit private/protected/public definition in the class.

ok, no idea why the build is failing for mostly just comment PHPdoc changes. will look into it later.

Closing until further notice.


⚠ ClamAV has degraded performance

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

HTTP code: 200
Response time: 172 ms

Resolved: ClamAV performance has improved in 35f517e.


Server error, status code: 400, error code: 170005, message: App staging failed in the buildpack release phase

Connected, dumping recent logs for app *** in org *** / space development as ***...

2015-05-01T14:37:46.78+0200 [API/4]      OUT Created app with guid feb4c4da-7684-4a12-9198-ee9dff27cbed
2015-05-01T14:37:48.57+0200 [API/3]      OUT Updated app with guid feb4c4da-7684-4a12-9198-ee9dff27cbed ({"route"=>"cc52
6f0c-9f0a-41c3-8425-a9126b0831f7"})
2015-05-01T14:38:00.53+0200 [API/3]      OUT Updated app with guid feb4c4da-7684-4a12-9198-ee9dff27cbed ({"state"=>"STAR
TED"})
2015-05-01T14:38:00.64+0200 [STG/22]     OUT -----> Downloaded app package (4.0K)
2015-05-01T14:38:04.27+0200 [STG/0]      ERR     Cloning into '/tmp/buildpacks/.net-buildpack'...
2015-05-01T14:38:04.27+0200 [STG/0]      OUT     -----> Downloading Mono runtime 3.4.0_full from http://ci-labs-buildpack-downloads.s3.amazonaws.com/mono/lucid/x86_64/mono-3.4.0_full.tar.gz (1.3s)
2015-05-01T14:38:04.78+0200 [STG/0]      OUT        expanding Mono to vendor/mono (1.9s)
2015-05-01T14:38:06.98+0200 [STG/0]      OUT -----> Installing Mozilla certificate data to .config/.mono/certs (2.1s)
2015-05-01T14:38:07.08+0200 [STG/0]      OUT -----> Detected console app to be run using '$HOME/vendor/mono/bin/mono --server ***.exe'
2015-05-01T14:38:07.19+0200 [STG/0]      OUT -----> Preparing AppSettingsAutoReconfiguration.exe (0.0s)
2015-05-01T14:38:07.90+0200 [STG/0]      ERR Permission denied - /tmp/staged/app/start.sh
2015-05-01T14:38:07.91+0200 [STG/0]      OUT Staging failed: Release info failed:
2015-05-01T14:38:07.91+0200 [STG/0]      OUT "#<Errno::EACCES: Permission denied - /tmp/staged/app/start.sh>"
2015-05-01T14:38:07.91+0200 [STG/0]      OUT ["/tmp/buildpacks/.net-buildpack/lib/net_buildpack/runtime/mono.rb:119:in `
initialize'",
2015-05-01T14:38:07.91+0200 [STG/0]      OUT  "/tmp/buildpacks/.net-buildpack/lib/net_buildpack/runtime/mono.rb:119:in `
create_start_script'",
2015-05-01T14:38:07.91+0200 [STG/0]      OUT  "/tmp/buildpacks/.net-buildpack/lib/net_buildpack/runtime/mono.rb:75:in `r
elease'",
2015-05-01T14:38:07.91+0200 [STG/0]      OUT  "/tmp/buildpacks/.net-buildpack/lib/net_buildpack/buildpack.rb:133:in `rel
ease'",
2015-05-01T14:38:07.91+0200 [STG/0]      OUT  "/tmp/buildpacks/.net-buildpack/bin/release:27:in `<main>'"]
2015-05-01T14:38:07.91+0200 [STG/0]      OUT Release failed with exception #<IO:0x00000001d032b0>, #<IO:0x00000001d032b0
>
2015-05-01T14:38:08.06+0200 [API/3]      ERR encountered error: App staging failed in the buildpack release phase

See also
https://groups.google.com/a/cloudfoundry.org/forum/?utm_medium=email&utm_source=footer#!msg/vcap-dev/Gfpj70hca8A/rJnijUSb-vUJ

Im also having this same issue.

ERR Permission denied - /tmp/staged/app/start.sh
OUT "Errno::EACCES: Permission denied - /tmp/staged/app/start.sh"
Leads me to believe this could be a permisions issue.

I think I found the permission issue and submitted a PR


Standalone Monocle Layout

Main reason is to view status bars. Fullscreen provides a monocle experience but in the process takes over the space for status bars.
Moving eww over to the overlay layer keeps it shown everywhere, but it no longer reserves any space even with :exclusive.
I do not think any window rule allows this to happen (preserve reserved space by other windows in fullscreen).

You'll want to try using "hyprctl dispatch fullscreen 1" on a floating window and it should keep the status bar visible while remaining in fullscreen mode. I just verified it now using qutebrowser (once made floating) but it didn't seem to affect it when tiled.

Nice, that gets it closer. Introduces a problem when you actually try to enter fullscreen though, i.e. on a video player.
I rather think that is actually a bug instead of actually working like that.
I'll eventually look at the codebase to give it a stab at implementing myself since this is a layout I do quite need to go about... just a couple few windows of a browser but just sticking it out there in case it is easy to implement (though I'm not sure how intertwined layouts are in wayland given that there are only 2 still).

no_gaps_when_only + one group?

One group will provide a standalone monocle layout. It is not compatible with cyclenext and swapnext (with changegroupactive being a replacement for cyclenext and swapnext not having any equivalent from the dispatchers).
If I am interpreting the custom reserved area correctly, that will mean it will still be reserved when I really want fullscreen, i.e. watching a movie.
For my intents togglegroup will be enough to mimic my daily workflow from Xorg tiling managers (should be covered by monocle and dwindle), I will not be mixing groups with non-monocle layouts so binding changegroupactive to the same action I have for cyclenext should work without issue.
I'm still looking into the docs to figure out the best way to move all windows in the workspace into or out of a group but it should be possible whether I have to define a plugin or invoke hyprctl.

If I am interpreting the custom reserved area correctly, that will mean it will still be reserved when I really want fullscreen, i.e. watching a movie.

No. It works like a bar, but for bars that don't do that by themselves.

I will not be mixing groups with non-monocle layouts so binding changegroupactive to the same action I have for cyclenext should work without issue.

You can write a simple script for this

This is the only feature that I'm using on dwm that's missing, everything else is there. fullscreen, 1 is not the same.

This is the only feature that is keeping me from switching from awesome wm. I'd love to have a native hyprland monocle implementation.

absolutely, this is feature that is essential for most of my workflows

I miss the different margin values for monocle mode from my BSPWM days. I want a larger margin for monocle mode
Also, if we're doing feature requests, I would also like something like the Stage Manager feature from MacOS where the non-visible windows are "minimized" to the side or bottom when we're in this monocle mode with small thumbnails. It is sort of like a master layout with the master centered but the slave windows don't resize (resizing messes up the content rendering within the window).

@vaxerski sorry for pinging, any thoughts about implementing this?

my thoughts? “No, should I write a plugin?”

all tiled WMs I worked with before using DWL (DWM, Xmonad) have Monocle mode (in Haskell's full screen mode). IMHO, this behavior should be added to the main mode and given the opportunity to choose.
I use many monitors every day, one in the center is always in Monocle, the rest switch to the Tile layout.
At home, I use one large 60-inch monitor with customizable workspaces set to Monocle or Tile mode (if I need to see more than one window). And this workplace is widespread among my friends...

why not make a windowrule to maximize every tiled window? would behave the same I believe

why not make a windowrule to maximize every tiled window? would behave the same I believe

Do you have an example of these settings? I'll try to compare the user experience with Hypr and, for example, DWM with Monocle.

Just realized I never posted what I use, I'm not sure if this all the configuration but it looks right by this comment I left there, the following works in 99% of cases - the most glaring issue is that it is still virtually tiled, so switching windows always imposes a resize operation - which is an sometimes an annoying delay to wait for.
Full screen should be able to take over any reserved space.
# Reset the layouts on the current workspace to default (monocle-ish)
bind = $mainMod SHIFT, space, exec, hyprctl dispatch fullscreen 1
bind = $mainMod SHIFT, space, exec, togglegroup

the most glaring issue is that it is still virtually tiled, so switching windows always imposes a resize operation - which is an sometimes an annoying delay to wait for.

Yes... the animation when switching "fullscreen 1" windows is annoying, specially because it actually does make some windows change the content/internal layout as they are being resized.
I was expecting to be able to get rid of this form of animation tweaking the Animations configuration, but I did not manage to find which setting would I need to set to disable this. Does anybody know?
This is all a very awkward workaround. A monocle style layout being properly supported would be best.

I made a monocle layout: https://github.com/zakk4223/hyprlandMonocle
The layout sets all windows to the monitor/workspace size, honoring reserved space.
The currently focused window is set to maximized. This is to work around the fact you cannot have overlapping tiled windows in Hyprland without introducing focus issues.
Setting the window sizes to the maximized size should prevent resizing apps on window switching.
You can navigate between windows using Hyprland's standard cyclenext or movefocus dispatchers.
If you want to run monocle only on one workspace/monitor, see: https://github.com/zakk4223/hyprWorkspaceLayouts

looks like a fullscreen group with extra steps

Using a group for this has issues:

windows in groups cannot be navigated with the normal dispatchers (cyclenext, etc). You have to switch to the group navigation ones. I guess you could do some submap twiddling, but now you have to track which layout is active, you have to deal with the active workspace being changed etc.

if you want to gather all windows on the current workspace into a group you have to...I guess write a shell script?

Either of these are probably manageable if you're using stock Hyprland, but if you're using extra layouts, per workspace/monitor layouts etc it's not going to be as easy to do.
You can dynamically switch to this monocle layout if you use my workspacelayout plugin and bind a key to send the 'layoutmsg setlayout monocle' dispatch. (I think I have some ideas to make layout switching better in that plugin too...). However you still have the window order issue...
I don't think the 'preserving window order' thing is doable in Hyprland without each individual layout being forced to implement monocle themselves. Layouts can have an internal concept of window order. They can manipulate hyprland's window order to some degree but none of them currently do this.

I also want the monocle layout to be implemented in hyprland, but since configuration options such as new_window_takes_over_fullscreen and exit_window_retains_fullscreen have been added, the behavior of monocle can be easily emulated with a simple script. The disadvantage of this is that the windows change size when switching
#!/bin/bash

fullscreenstatus=$(hyprctl activewindow | grep fullscreenClient | awk '{print $2}')
if [ $fullscreenstatus != 1 ]; then
    hyprctl keyword misc:new_window_takes_over_fullscreen 1
    hyprctl keyword misc:exit_window_retains_fullscreen true
    hyprctl dispatch fullscreen 1
else
    hyprctl keyword misc:new_window_takes_over_fullscreen 2
    hyprctl keyword misc:exit_window_retains_fullscreen false
    hyprctl dispatch fullscreen 1
fi

Just adding a comment to bump up this request. Monocle mode is really useful for my workflow as well, and has several use cases when it makes things a lot more efficient. I did see some options where one can use things like pypr to change into monocle mode, but it is not easy to get back to a neatly tiled form. Can anyone mention if there is any technical difficulty in storing the tiled layout and applying it again when switching out of monocle mode? I am not sure I understand what makes this challenging here, as it is implemented in many other tiling managers.

You can use fullscreen,1 and cyclenext for a more-or-less monocle mode. For more advanced, you can write your own script or plugin.

The fullscreen thing works ok but it causes resize events when windows swap in and out of focus, which some people would like to avoid.
I've tried to do it with a layout that keeps all the windows the same size, but hyprland reacts poorly to tiled layouts with overlapping windows.  I think that's probably fixable with hooking a few functions but I hate maintaining plugins that hook really deep+important functions because now that's one more thing I have to pay attention to.
Even with a plugin you probably need an additional plugin for per monitor/workspace layouts. But even then there's no sane way to have a workflow where you have a tiled workspace, then switch it to monocle and then switch back to the tiled workspace with all state preserved. Switching layouts 'removes' windows from the existing layout and thus destroys any state.
If you're ok with windows getting resized on focus change, then just do the fullscreen+cyclenext thing. Otherwise there's no real solution at the moment.

the resizing is a separate issue that some people want "fixed" anyways.
Why not ->setHidden() for windows not visible? I think that would fix most of the problems.

hidden windows get skipped by cycleNext etc.

myMonoclePlugin:cycleNext

Oh hmm, I'll try the narnia thing.
Eh, custom dispatchers for layout window management are annoying, I'd rather use the global one and have it work sanely everywhere if possible. I actually use multiple layouts so having different binds is bleh.
Could it just be changed so layouts get the ability to override get(Prev|Next)WindowOnWorkspace? Like just move that from the compositor to IHyprLayout? It looks like the only things that use those functions are cycle and swap anyways.
That or make g_pCompositor:m_vWindows exclusively for rendering and have another window list for swap/cycle window stack manipulation. Right now anything that uses changeWindowZOrder completely messes up window cycle order


[MM-41710] Implement pluggable Call button in channel header

Summary
PR reworks the existing pluggable call button implementation by @larkox and moves it back to the channel header. I purposely tried to keep the logic as much as possible on the plugin's side as the component should allow for display changes based on the state of a call.
Plugin wise this is technically a breaking change but was agreed that the impact should be minimal. Please let me know if there are concerns.
/cc @matthewbirtch @aaronrothschild for visibility.
Sample registration
const callButton = (
  <button className="style--none call-button">
    <i style={{ color: "#2D8CFF" }} className={`CompassIcon icon-brand-zoom`} />
    {"Start Zoom meeting"}
  </button>
);
const dropdownButton = (
  <button className={"style--none call-button-dropdown"}>
    <i style={{ color: "#2D8CFF" }} className={`CompassIcon icon-brand-zoom`} />

      {"Start Zoom meeting"}
      {"In this channel"}

  </button>
);
registry.registerCallButtonAction(callButton, dropdownButton, (channel: Channel) => {
  // do something
});

Ticket Link
https://mattermost.atlassian.net/browse/MM-41710
Design Link
https://www.figma.com/file/U6MKDiNZ6kgW6eV4loXP9K/Audio-rooms?node-id=1208%3A321692
Release Note
Updated plugin registry's registerCallButtonAction method to allow for displaying custom calls buttons in the channel header.

Screenshots
Single registration (Calls plugin)

Not in call

In call

With plugins

Multiple registrations

Not in call

In call

With plugins

Love this! Thanks for tackling it @streamer45. I'll let @abhijit-singh review this, but this is a great addition to the product.

Functionally it looks great! @justinegeffen may be able to help us out with grammar ie Start a call vs Start call and Join call vs Join the call. It needs to be considered with the subtext in this channel, which is also totally open to change - I look to hers and @abhijit-singh's input.

In the Figma mock-up we refer to "Start a call", "Join call", "End call". If we work on the understanding that there can be multiple calls happening on the server simultaneously but only one per channel, then I think that works.

Note that we have an existing issue where if the user clicks the x on the RHS to close the RHS, the mouse is then positioned on the rightmost channel header button (which is now the call button), where the user may accidentally click again if the webapp is lagging a bit. This causes a call to be started by accident.
There is a hacky fix for this that disables the channel header buttons temporarily (500 ms) after the RHS has finished closing:
https://github.com/mattermost/mattermost-webapp/blob/9b93dab6651a5ecf5cb3e8f983142a37c58112ff/plugins/channel_header_plug/channel_header_plug.tsx#L135-L141
@matthewbirtch We have discussed this issue a few times, with the desire for a proper fix without the need for the timeout. Maybe we should consider adding the fix in this PR, possibly repositioning the call button to the left a bit? If we don't have a proper fix here, then we should add the hacky fix here as well.
A customer recently mentioned that this issue is still occurring for them on their server, even with the timeout. They also reported that they have a particularly laggy experience on their server, and we concluded that maybe the timeout needs to be increased. @matthewbirtch You suggested in their thread that we could bump the timeout to 1000ms-1500ms. I suggest we apply that here to avoid a similar issue with this component.
If we do apply the fix here, @streamer45 how would you feel about doing a drive-by fix in the existing channel header components to increase the timeout there as well? I'll create a separate PR for that if you'd like to keep the scope minimal here.

If we do apply the fix here, @streamer45 how would you feel about doing a drive-by fix in the existing channel header components to increase the timeout there as well? I'll create a separate PR for that if you'd like to keep the scope minimal here.

No objections from my side, happy to include any additional fix, once agreed.

@matthewbirtch We have discussed this issue a few times, with the desire for a proper fix without the need for the timeout. Maybe we should consider adding the fix in this PR, possibly repositioning the call button to the left a bit? If we don't have a proper fix here, then we should add the hacky fix here as well.
A customer recently mentioned that this issue is still occurring for them on their server, even with the timeout. They also reported that they have a particularly laggy experience on their server, and we concluded that maybe the timeout needs to be increased. @matthewbirtch You suggested in their thread that we could bump the timeout to 1000ms-1500ms. I suggest we apply that here to avoid a similar issue with this component.
If we do apply the fix here, @streamer45 how would you feel about doing a drive-by fix in the existing channel header components to increase the timeout there as well? I'll create a separate PR for that if you'd like to keep the scope minimal here.

Yes, let's apply the timeout fix for now. Moving the button isn't viable right now as that will cause misalignment and will look pretty strange.

@justinegeffen Applied your suggestions with the exception of changes that are unrelated to this PR (other icons). I think those can be addressed in a separate piece of work.

@DHaussermann Please let me know if you need help with this. I am guessing we could run e2e-tests as the changes should only affect the webapp if plugins are registering the provided action. I can also provide sample plugins making the registrations if needed.

Error trying to update the PR.
Please do it manually.

@streamer45 I can fire off the tests to possibly catch some regression but this tooling will not run the tests with the calls pluign enabled.
There is still value in doing this now. I can explore the option of me or an SDET possibly running the tests locally with Calls running in a channel header. I will follow up with @saturninoabril on this.

/e2e-test

@streamer45 I can fire off the tests to possibly catch some regression but this tooling will not run the tests with the calls pluign enabled. There is still value in doing this now. I can explore the option of me or an SDET possibly running the tests locally with Calls running in a channel header. I will follow up with @saturninoabril on this.

@DHaussermann  I think the main concern here is making sure webapp is not affected by the changes which shouldn't be the case. I think that testing the plugin itself can be deferred at this point unless it's something you guys can easily do. Let me know, happy to help providing a sample build.


[move-prover] Improving bytecode dump output + adding a modifies example

This improves the bytecode dump by marking in the generated code which opaque function calls have been expanded to pre/post conditions, plus a few more improvements. It also adds a further example to tests/xsources/design which illustrates how the modifies clause is compiled.
The change in bytecode dump leads to many baseline changes for the bytecode pipeline tests.
Motivation
Followup on feedback from presentation.
Test Plan
NA
Related PRs
NA

/land


doc fixes

clarify quickstart is for learning
fix indention in helm conf.

Codecov Report

Merging #929 (3092fcf) into master (148b8e8) will increase coverage by 0.03%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #929      +/-   ##
==========================================
+ Coverage   44.99%   45.03%   +0.03%
==========================================
  Files         143      143
  Lines       11185    11185
==========================================
+ Hits         5033     5037       +4
+ Misses       5530     5529       -1
+ Partials      622      619       -3

Impacted Files
Coverage Δ

catalog/cataloger_commit.go
79.71% <0.00%> (-2.90%)
:arrow_down:

stats/collector.go
59.77% <0.00%> (-2.30%)
:arrow_down:

catalog/cataloger_create_repository.go
62.96% <0.00%> (+3.70%)
:arrow_up:

catalog/cataloger_create_branch.go
88.67% <0.00%> (+3.77%)
:arrow_up:

catalog/cataloger_list_commits.go
84.00% <0.00%> (+4.00%)
:arrow_up:

catalog/cataloger_create_entry.go
100.00% <0.00%> (+5.26%)
:arrow_up:

Continue to review full report at Codecov.

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


Use 'best_loss' corresponding to avg valid loss for early stopping

I have verified this to be working as early stopping would be expected to work, by simply training a model.
The existing implementation stopped training after ~120k iterations, producing a BLEU of about 34 for my test set, whereas the new code trains for ~380k iterations, achieving 35.7 BLEU points.
For context and intuition behind the changes, see #509 which also links to corresponding fairseq ticket regarding the 'best_loss'.
If you agree with this change, I hope it can be released pretty fast, as I would consider this a pretty crucial bug.
Closes #509

@ecly
thank you very much for your investigation and your PR.
We will take into account asap.

Any update on including this? It should be crucial for reliable early stopping.

Any update on this? I don't think it's merged already.

@mzeidhassan indeed not merged yet sadly - despite the severity of this issue on the performance of early stopping

Hi @ecly,
I made the change on my local version of MMT.
Definitely, the training is taking longer, but I noticed this.

| epoch 002:  47100 / 52284 loss=3.640, nll_loss=1.930, ppl=3.81, wps=13663, ups=1, wpb=10578.160, bsz=448.517, num_updates=99385, lr=0.000100309, gnorm=0.602, clip=0.000, oom=0.000, wall=77162, train_wall=73805
| epoch 002:  47200 / 52284 loss=3.640, nll_loss=1.930, ppl=3.81, wps=13663, ups=1, wpb=10577.820, bsz=448.490, num_updates=99485, lr=0.000100258, gnorm=0.602, clip=0.000, oom=0.000, wall=77238, train_wall=73878
| epoch 002:  47300 / 52284 loss=3.640, nll_loss=1.930, ppl=3.81, wps=13664, ups=1, wpb=10577.692, bsz=448.465, num_updates=99585, lr=0.000100208, gnorm=0.602, clip=0.000, oom=0.000, wall=77313, train_wall=73952
| epoch 002:  47400 / 52284 loss=3.640, nll_loss=1.930, ppl=3.81, wps=13664, ups=1, wpb=10577.817, bsz=448.539, num_updates=99685, lr=0.000100158, gnorm=0.602, clip=0.000, oom=0.000, wall=77390, train_wall=74027
| epoch 002:  47500 / 52284 loss=3.640, nll_loss=1.930, ppl=3.81, wps=13665, ups=1, wpb=10577.717, bsz=448.481, num_updates=99785, lr=0.000100108, gnorm=0.602, clip=0.000, oom=0.000, wall=77465, train_wall=74101
| epoch 002:  47600 / 52284 loss=3.640, nll_loss=1.930, ppl=3.81, wps=13665, ups=1, wpb=10577.721, bsz=448.541, num_updates=99885, lr=0.000100058, gnorm=0.602, clip=0.000, oom=0.000, wall=77541, train_wall=74175
| epoch 002:  47700 / 52284 loss=3.640, nll_loss=1.929, ppl=3.81, wps=13666, ups=1, wpb=10577.651, bsz=448.504, num_updates=99985, lr=0.000100008, gnorm=0.602, clip=0.000, oom=0.000, wall=77617, train_wall=74249
| epoch 002 | valid on 'valid' subset | loss 3.446 | nll_loss 1.608 | ppl 3.05 | num_updates 100000 | best_loss 3.44052
2019-11-13 04:14:50,065 [INFO] - Stop criterion: current_loss = 3.449132, previous_loss = 3.451206
| saved checkpoint /home/mzeid/00_MMT_4/modernmt/runtime/transnat_base/tmp/training/_temp_train/nn_model/checkpoint_2_100000.pt (epoch 2 @ 100000 updates) (writing took 6.918522834777832 seconds)
| epoch 002:  47800 / 52284 loss=3.640, nll_loss=1.929, ppl=3.81, wps=13663, ups=1, wpb=10577.799, bsz=448.480, num_updates=100085, lr=9.99575e-05, gnorm=0.602, clip=0.000, oom=0.000, wall=77701, train_wall=74322
| epoch 002:  47900 / 52284 loss=3.640, nll_loss=1.929, ppl=3.81, wps=13664, ups=1, wpb=10577.669, bsz=448.564, num_updates=100185, lr=9.99076e-05, gnorm=0.602, clip=0.000, oom=0.000, wall=77777, train_wall=74397
| epoch 002:  48000 / 52284 loss=3.639, nll_loss=1.929, ppl=3.81, wps=13665, ups=1, wpb=10577.850, bsz=448.599, num_updates=100285, lr=9.98578e-05, gnorm=0.602, clip=0.000, oom=0.000, wall=77853, train_wall=74471
| epoch 002:  48100 / 52284 loss=3.639, nll_loss=1.929, ppl=3.81, wps=13665, ups=1, wpb=10578.175, bsz=448.693, num_updates=100385, lr=9.98081e-05, gnorm=0.602, clip=0.000, oom=0.000, wall=77930, train_wall=74546
| epoch 002:  48200 / 52284 loss=3.639, nll_loss=1.929, ppl=3.81, wps=13666, ups=1, wpb=10577.961, bsz=448.599, num_updates=100485, lr=9.97584e-05, gnorm=0.602, clip=0.000, oom=0.000, wall=78005, train_wall=74620
| epoch 002:  48300 / 52284 loss=3.639, nll_loss=1.929, ppl=3.81, wps=13667, ups=1, wpb=10577.992, bsz=448.545, num_updates=100585, lr=9.97088e-05, gnorm=0.602, clip=0.000, oom=0.000, wall=78080, train_wall=74693
| epoch 002:  48400 / 52284 loss=3.639, nll_loss=1.929, ppl=3.81, wps=13667, ups=1, wpb=10578.229, bsz=448.524, num_updates=100685, lr=9.96592e-05, gnorm=0.602, clip=0.000, oom=0.000, wall=78156, train_wall=74768
| epoch 002:  48500 / 52284 loss=3.639, nll_loss=1.929, ppl=3.81, wps=13668, ups=1, wpb=10578.280, bsz=448.484, num_updates=100785, lr=9.96098e-05, gnorm=0.602, clip=0.000, oom=0.000, wall=78233, train_wall=74843
| epoch 002:  48600 / 52284 loss=3.639, nll_loss=1.928, ppl=3.81, wps=13668, ups=1, wpb=10578.154, bsz=448.444, num_updates=100885, lr=9.95604e-05, gnorm=0.602, clip=0.000, oom=0.000, wall=78308, train_wall=74916
| epoch 002:  48700 / 52284 loss=3.639, nll_loss=1.928, ppl=3.81, wps=13669, ups=1, wpb=10578.137, bsz=448.509, num_updates=100985, lr=9.95111e-05, gnorm=0.602, clip=0.000, oom=0.000, wall=78384, train_wall=74990
| epoch 002 | valid on 'valid' subset | loss 3.444 | nll_loss 1.605 | ppl 3.04 | num_updates 101000 | best_loss 3.44052

Is it normal for the lr to jump from lr=0.000100008 to lr=9.95111e-05? Is this a side effect from that change?
Maybe, the change didn't trigger the stopping criteria set by MMT? Any idea?

It's worth-mentioning thought that the loss keeps decreasing in this line:
Stop criterion: current_loss = 3.384518, previous_loss = 3.385031
Same applies to best_loss values as well. Screen shots attached.

@mzeidhassan  I would certainly still wait. Your tensorboard looks fine, and still indicates steady progress. You should not worry about the validation loss being lower than your training loss, as this is expected due to the use of dropout. Dropout is enabled for training but not for validation, so you are bound to get better validation loss scores.

After the fix for early stopping, my models trained for about 2x as long as they did before, but also achieved much better scores, so it is worth the wait to let them train. Hopefully the first round of training will increase your confidence in the early stopping, such that you for future runs don't even need to monitor the loss, as the system just halts as soon as it reaches convergence.

Thanks @ecly for your advice. I appreciate it. I am keeping it running for now.
One last thing:
I assume MMT stopped automatically after it reaches convergence without your intervention, right? Or did you need to stop it manually?
Thanks again!

Actually, training has just completed.
Indeed, it took about 2x the time the previous training took.
I will check its quality compared to the previous engine and let you know if I have any issues.
Thanks again @ecly for your support.

@mzeidhassan yes indeed - the training will stop on its own! :-) Feel free to keep my updated on its performance!

I think the stop criterion of MMT is not a good one. On my conditions, it often stops way too early. I use to set the --train-steps parameter to enforce it to do at least 10 epochs.

@EtienneAb3d with the fixes in this PR, the stop criterion should be a good one. Without this fix, I agree that it is a bad one. It stops far too early.

@EtienneAb3d, I agree with you. Thanks to @ecly for the PR. My initial training stopped very early, even before finishing the second epoch. With the fix, it reached the 5th epoch, and I see improvement in the output quality.
I hope there is a solid formula that can tell how many training steps or epochs you should run for a specific word count for example, but I don't think there is anything like that yet. So, the stop criterion is a good way to go. Hope MMT team will look into this.

@mzeidhassan sadly there is no such formula, and I would say that some variation of early stopping should always be able to perform better on average. Loss based validation has some shortcomings, and it is possible that a BLEU based validation criterion could be more indicative. I have used something similar in the past for which I saw slight improvement over loss based early stopping.
Either way, I think it is fair to trust the early stopping from this PR, as being very reasonable when it comes to stopping the training. One future addition that would be nice is support for patience. It looks like fairseq will support both early stopping and patience in the near future, so it may be that we can start using their implementation instead of this somewhat hacky implementation instead.

@nicolabertoldi @davidecaroselli anything blocking this from being merged. If you're doing a release 4.2.1 this would be great to get in.

Hi @ecly
we wanted to run some internal tests with our very large training, and everything seems good now. I'm merging this PR and it will be part of next release.
Thanks!

@davidecaroselli all good - I understand. Thank you very much!


Token passing in URL

I would like to create URL which contains token.
So I would like to know if there is a way to do that by passing token as query parameters for example ?

Since JWT token is basically a password and should be treated as such, it is not the best idea to pass it in query string. This middleware currently supports only Bearer header and cookie. That said if there is interest I can also add support for query string.

Hi Tuupola! I also think it would be useful to have a way to pass tokens by query string. Not for production use, of course because of the same reasons you argue above, but for development I think it is kind of useful in some situations. Sometimes, I just want to test something in the browser, seeing results in the console or in the navigator itself, not using postman at all, but just accessing a JWT protected url in the browser directly.
Well, to overcome this situation, while slim-jwt-auth still does not support query string token, i did like this. In my Slim3 index.php public file, just before instantiating my \Slim\App or even my \Slim\Container I added these lines of code:

$token = (isset($_GET['token']) && !empty($_GET['token'])) ? trim($_GET['token']) : false;
if ($token){
    $_SERVER["HTTP_AUTHORIZATION"] = "Bearer ".$token;
}

Well, the first thing JwtAuthentication looks for is the environment variable HTTP_AUTHORIZATION, so, in this case, the variable will be set correctly.
Note: This should be done before instantiating the App and Container because, once I start my application, the $request->getServerParams() does not change anymore. If I try to change $_SERVER["HTTP_AUTHORIZATION"] from inside any middleware, container or etc, it just ignores that change.
Well, maybe it should be useful to have support for a query string token, but it could also have an option to disable it for production or security purposes.
;)

Hey, another point to allow passing the token as GET are users or companies that uses proxy servers that don´t support Authorization headers. Compare to the method override for RESTful Apis:

Sometimes this is because of a browser or client limitaton, sometimes it's a really tense corporate firewall. They wanted to know what they could do.

@mateuslopes I just tested and with the following middleware you can pass token in the query string. It looks for GET parameter named token. If it exists it adds an Authorization: Bearer header based on that token. Note that you need to add this middleware after adding slim-jwt-auth or it will not work.
$app = new \Slim\App();

$app->add(new \Slim\Middleware\JwtAuthentication([
    "secret" => "supersecretkeyyoushouldnotcommittogithub"
]));

$app->add(function($request, $response, $next) {
    $token = $request->getQueryParams()["token"];
    if (false === empty($token)) {
        $request = $request->withHeader("Authorization", "Bearer {$token}");
    }
    return $next($request, $response);
});

We may need this to authtenciate request from websocket.

@tuupola Is there a way to adapt the snippet to work with SlimPHP V4? I tried to with the new handler interface but wasn't able to get any request to pass with the token in query string


Error: wrong number of arguments (1 for 0) while loading ...

I'm getting this error with any attempted install using cask.
$ brew cask install qlcolorcode
Error: wrong number of arguments (1 for 0) while loading '/usr/local/Library/Taps/caskroom/homebrew-cask/Casks/qlcolorcode.rb'
Please report this bug:
    https://github.com/caskroom/homebrew-cask/issues
<main>:5:in `name'
<main>:5:in `<class:Qlcolorcode>'
<main>:in `<main>'
/usr/local/Cellar/brew-cask/0.45.0/rubylib/cask/source/path_base.rb:55:in `eval'
/usr/local/Cellar/brew-cask/0.45.0/rubylib/cask/source/path_base.rb:55:in `rescue in load'
/usr/local/Cellar/brew-cask/0.45.0/rubylib/cask/source/path_base.rb:52:in `load'
/usr/local/Cellar/brew-cask/0.45.0/rubylib/cask/source/tapped.rb:28:in `load'
/usr/local/Cellar/brew-cask/0.45.0/rubylib/cask.rb:124:in `load'
/usr/local/Cellar/brew-cask/0.45.0/rubylib/cask/cli/install.rb:19:in `block in install_casks'
/usr/local/Cellar/brew-cask/0.45.0/rubylib/cask/cli/install.rb:17:in `each'
/usr/local/Cellar/brew-cask/0.45.0/rubylib/cask/cli/install.rb:17:in `install_casks'
/usr/local/Cellar/brew-cask/0.45.0/rubylib/cask/cli/install.rb:6:in `run'
/usr/local/Cellar/brew-cask/0.45.0/rubylib/cask/cli.rb:81:in `run_command'
/usr/local/Cellar/brew-cask/0.45.0/rubylib/cask/cli.rb:121:in `process'
/usr/local/bin/brew-cask.rb:42:in `<top (required)>'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/usr/local/Library/brew.rb:67:in `require?'
/usr/local/Library/brew.rb:155:in `<main>'

bah... upgrade caskroom to v0.54.1 fixed this


Error On startup Linux

Hello,
I am running my FiveM server on a Linux VPS with Ubuntu 18.04. On startup I get a whole line of errors, which has to do with mysql-async. Here are they:
    at PoolConnection.Connection._handleConnectTimeout (mysql-async.js:1004:13)
    at Object.onceWrapper (events.js:313:30)
    at emitNone (events.js:106:13)
    at Socket.emit (events.js:208:7)
    at Socket._onTimeout (net.js:422:8)
    at ontimeout (timers.js:498:11)
    at tryOnTimeout (timers.js:323:5)
    at Timer.listOnTimeout (timers.js:290:5)
    --------------------
    at Protocol._enqueue (mysql-async.js:6167:48)
    at Protocol.handshake (mysql-async.js:6074:23)
    at PoolConnection.connect (mysql-async.js:711:18)
    at Pool.getConnection (mysql-async.js:4753:16)
    at Pool.query (mysql-async.js:4907:8)
    at Promise (mysql-async.js:5146:12)
    at new Promise (<anonymous>)
    at execute (mysql-async.js:5143:26)
    at Object.global.exports [as callback] (mysql-async.js:5161:5)
    at citizen:/scripting/v8/main.js:96:41
Error: (node:7888) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
Error: (node:7888) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Error: (node:7888) UnhandledPromiseRejectionWarning: Error: Handshake inactivity timeout
    at Handshake.<anonymous> (mysql-async.js:6183:17)
    at emitNone (events.js:106:13)
    at Handshake.emit (events.js:208:7)
    at Handshake._onTimeout (mysql-async.js:316:8)
    at Timer._onTimeout (mysql-async.js:13221:23)
    at ontimeout (timers.js:498:11)
    at tryOnTimeout (timers.js:323:5)
    at Timer.listOnTimeout (timers.js:290:5)
    --------------------
    at Protocol._enqueue (mysql-async.js:6167:48)
    at Protocol.handshake (mysql-async.js:6074:23)
    at PoolConnection.connect (mysql-async.js:711:18)
    at Pool.getConnection (mysql-async.js:4753:16)
    at Pool.query (mysql-async.js:4907:8)
    at Promise (mysql-async.js:5146:12)
    at new Promise (<anonymous>)
    at execute (mysql-async.js:5143:26)
    at Object.global.exports [as callback] (mysql-async.js:5169:5)
    at citizen:/scripting/v8/main.js:96:41
Error: (node:7888) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
Error: (node:7888) UnhandledPromiseRejectionWarning: Error: Handshake inactivity timeout
    at Handshake.<anonymous> (mysql-async.js:6183:17)
    at emitNone (events.js:106:13)
    at Handshake.emit (events.js:208:7)
    at Handshake._onTimeout (mysql-async.js:316:8)
    at Timer._onTimeout (mysql-async.js:13221:23)
    at ontimeout (timers.js:498:11)
    at tryOnTimeout (timers.js:323:5)
    at Timer.listOnTimeout (timers.js:290:5)
    --------------------
    at Protocol._enqueue (mysql-async.js:6167:48)
    at Protocol.handshake (mysql-async.js:6074:23)
    at PoolConnection.connect (mysql-async.js:711:18)
    at Pool.getConnection (mysql-async.js:4753:16)
    at Pool.query (mysql-async.js:4907:8)
    at Promise (mysql-async.js:5146:12)
    at new Promise (<anonymous>)
    at execute (mysql-async.js:5143:26)
    at Object.global.exports [as callback] (mysql-async.js:5169:5)
    at citizen:/scripting/v8/main.js:96:41
Error: (node:7888) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 3)
Error: (node:7888) UnhandledPromiseRejectionWarning: Error: Handshake inactivity timeout
    at Handshake.<anonymous> (mysql-async.js:6183:17)
    at emitNone (events.js:106:13)
    at Handshake.emit (events.js:208:7)
    at Handshake._onTimeout (mysql-async.js:316:8)
    at Timer._onTimeout (mysql-async.js:13221:23)
    at ontimeout (timers.js:498:11)
    at tryOnTimeout (timers.js:323:5)
    at Timer.listOnTimeout (timers.js:290:5)
    --------------------
    at Protocol._enqueue (mysql-async.js:6167:48)
    at Protocol.handshake (mysql-async.js:6074:23)
    at PoolConnection.connect (mysql-async.js:711:18)
    at Pool.getConnection (mysql-async.js:4753:16)
    at Pool.query (mysql-async.js:4907:8)
    at Promise (mysql-async.js:5146:12)
    at new Promise (<anonymous>)
    at execute (mysql-async.js:5143:26)
    at Object.global.exports [as callback] (mysql-async.js:5169:5)
    at citizen:/scripting/v8/main.js:96:41
Error: (node:7888) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 4)
Error: (node:7888) UnhandledPromiseRejectionWarning: Error: Handshake inactivity timeout
    at Handshake.<anonymous> (mysql-async.js:6183:17)
    at emitNone (events.js:106:13)
    at Handshake.emit (events.js:208:7)
    at Handshake._onTimeout (mysql-async.js:316:8)
    at Timer._onTimeout (mysql-async.js:13221:23)
    at ontimeout (timers.js:498:11)
    at tryOnTimeout (timers.js:323:5)
    at Timer.listOnTimeout (timers.js:290:5)
    --------------------
    at Protocol._enqueue (mysql-async.js:6167:48)
    at Protocol.handshake (mysql-async.js:6074:23)
    at PoolConnection.connect (mysql-async.js:711:18)
    at Pool.getConnection (mysql-async.js:4753:16)
    at Pool.query (mysql-async.js:4907:8)
    at Promise (mysql-async.js:5146:12)
    at new Promise (<anonymous>)
    at execute (mysql-async.js:5143:26)
    at Object.global.exports [as callback] (mysql-async.js:5169:5)
    at citizen:/scripting/v8/main.js:96:41
Error: (node:7888) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 5)
Error: (node:7888) UnhandledPromiseRejectionWarning: Error: Handshake inactivity timeout
    at Handshake.<anonymous> (mysql-async.js:6183:17)
    at emitNone (events.js:106:13)
    at Handshake.emit (events.js:208:7)
    at Handshake._onTimeout (mysql-async.js:316:8)
    at Timer._onTimeout (mysql-async.js:13221:23)
    at ontimeout (timers.js:498:11)
    at tryOnTimeout (timers.js:323:5)
    at Timer.listOnTimeout (timers.js:290:5)
    --------------------
    at Protocol._enqueue (mysql-async.js:6167:48)
    at Protocol.handshake (mysql-async.js:6074:23)
    at PoolConnection.connect (mysql-async.js:711:18)
    at Pool.getConnection (mysql-async.js:4753:16)
    at Pool.query (mysql-async.js:4907:8)
    at Promise (mysql-async.js:5146:12)
    at new Promise (<anonymous>)
    at execute (mysql-async.js:5143:26)
    at Object.global.exports [as callback] (mysql-async.js:5161:5)
    at citizen:/scripting/v8/main.js:96:41
Error: (node:7888) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 6)
Error: (node:7888) UnhandledPromiseRejectionWarning: Error: Handshake inactivity timeout
    at Handshake.<anonymous> (mysql-async.js:6183:17)
    at emitNone (events.js:106:13)
    at Handshake.emit (events.js:208:7)
    at Handshake._onTimeout (mysql-async.js:316:8)
    at Timer._onTimeout (mysql-async.js:13221:23)
    at ontimeout (timers.js:498:11)
    at tryOnTimeout (timers.js:323:5)
    at Timer.listOnTimeout (timers.js:290:5)
    --------------------
    at Protocol._enqueue (mysql-async.js:6167:48)
    at Protocol.handshake (mysql-async.js:6074:23)
    at PoolConnection.connect (mysql-async.js:711:18)
    at Pool.getConnection (mysql-async.js:4753:16)
    at Pool.query (mysql-async.js:4907:8)
    at Promise (mysql-async.js:5146:12)
    at new Promise (<anonymous>)
    at execute (mysql-async.js:5143:26)
    at Object.global.exports [as callback] (mysql-async.js:5169:5)
    at citizen:/scripting/v8/main.js:96:41
Error: (node:7888) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 7)
Error: (node:7888) UnhandledPromiseRejectionWarning: Error: Handshake inactivity timeout
    at Handshake.<anonymous> (mysql-async.js:6183:17)
    at emitNone (events.js:106:13)
    at Handshake.emit (events.js:208:7)
    at Handshake._onTimeout (mysql-async.js:316:8)
    at Timer._onTimeout (mysql-async.js:13221:23)
    at ontimeout (timers.js:498:11)
    at tryOnTimeout (timers.js:323:5)
    at Timer.listOnTimeout (timers.js:290:5)
    --------------------
    at Protocol._enqueue (mysql-async.js:6167:48)
    at Protocol.handshake (mysql-async.js:6074:23)
    at PoolConnection.connect (mysql-async.js:711:18)
    at Pool.getConnection (mysql-async.js:4753:16)
    at Pool.query (mysql-async.js:4907:8)
    at Promise (mysql-async.js:5146:12)
    at new Promise (<anonymous>)
    at execute (mysql-async.js:5143:26)
    at Object.global.exports [as callback] (mysql-async.js:5169:5)
    at citizen:/scripting/v8/main.js:96:41
Error: (node:7888) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 8)
Error: (node:7888) UnhandledPromiseRejectionWarning: Error: Handshake inactivity timeout
    at Handshake.<anonymous> (mysql-async.js:6183:17)
    at emitNone (events.js:106:13)
    at Handshake.emit (events.js:208:7)
    at Handshake._onTimeout (mysql-async.js:316:8)
    at Timer._onTimeout (mysql-async.js:13221:23)
    at ontimeout (timers.js:498:11)
    at tryOnTimeout (timers.js:323:5)
    at Timer.listOnTimeout (timers.js:290:5)
    --------------------
    at Protocol._enqueue (mysql-async.js:6167:48)
    at Protocol.handshake (mysql-async.js:6074:23)
    at PoolConnection.connect (mysql-async.js:711:18)
    at Pool.getConnection (mysql-async.js:4753:16)
    at Pool.query (mysql-async.js:4907:8)
    at Promise (mysql-async.js:5146:12)
    at new Promise (<anonymous>)
    at execute (mysql-async.js:5143:26)
    at Object.global.exports [as callback] (mysql-async.js:5169:5)
    at citizen:/scripting/v8/main.js:96:41
Error: (node:7888) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 9)
Error: (node:7888) UnhandledPromiseRejectionWarning: Error: Handshake inactivity timeout
    at Handshake.<anonymous> (mysql-async.js:6183:17)
    at emitNone (events.js:106:13)
    at Handshake.emit (events.js:208:7)
    at Handshake._onTimeout (mysql-async.js:316:8)
    at Timer._onTimeout (mysql-async.js:13221:23)
    at ontimeout (timers.js:498:11)
    at tryOnTimeout (timers.js:323:5)
    at Timer.listOnTimeout (timers.js:290:5)
    --------------------
    at Protocol._enqueue (mysql-async.js:6167:48)
    at Protocol.handshake (mysql-async.js:6074:23)
    at PoolConnection.connect (mysql-async.js:711:18)
    at Pool.getConnection (mysql-async.js:4753:16)
    at Pool.query (mysql-async.js:4907:8)
    at Promise (mysql-async.js:5146:12)
    at new Promise (<anonymous>)
    at execute (mysql-async.js:5143:26)
    at Object.global.exports [as callback] (mysql-async.js:5169:5)
    at citizen:/scripting/v8/main.js:96:41
Error: (node:7888) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 10)```

Hopefully anyone can help me with this.

Thanks,
Jorrit

Would you mind posting the first error that happens and not just the trace?

I think that the whole error will help better tracking the issue

Duplicate?

Duplicate of #64

But this this gonna get resolved?

Unlikely in #64, you will need to provide maybe a full log.
./run.sh +exec server.cfg > output.log to create a log.

output.log
It looks like the error has changed, still weird error though since my string is totally fine

Error: (node:10331) UnhandledPromiseRejectionWarning: Error: Empty mysql_connection_string detected.
How about you properly use set mysql_connection_string To connect to mysql?

As I said I have property set it, for some reason the issue changed. I'll send you the string

set mysql_connection_string "server=<IP_ADDRESS>;uid=fivem;password=CENSORED;database=essentialmode"

try and set it before you call the resources. Somehow it says it is empty.

It's the first line of the server.cfg

try and delete the cache folder.

Alright one second

No startup errors, let me login to the server

Suddently it wasn't done yet.
output.log
Also got 2 errors ingame

Is it possible that my server.cfg is corrupt or anything? Also the option es_enablecustomdata from essentialmode does nothing

[91mError: (node:10481) UnhandledPromiseRejectionWarning: Error: Empty mysql_connection_string detected.
still the empty connection string, but there are a few more errors.

Maybe get support on the forums for it.

I will this errors f***** up my whole playerbase. First night we had 32 players online. Next day the server went down and it haven't been up for several days. I will create a topic

i have the same issue too
im using linux and updated to latest version..

at Protocol._parsePacket (mysql-async.js:6326:23)
at Parser._parsePacket (mysql-async.js:6937:10)
at Parser.write (mysql-async.js:6547:10)
at Protocol.write (mysql-async.js:6073:16)
at Socket. (mysql-async.js:683:28)
at Socket. (mysql-async.js:1117:10)
at emitOne (events.js:116:13)
at Socket.emit (events.js:211:7)
--------------------
at Protocol._enqueue (mysql-async.js:6179:48)
at Protocol.handshake (mysql-async.js:6086:23)
at PoolConnection.connect (mysql-async.js:711:18)
at Pool.getConnection (mysql-async.js:4753:16)
at Pool.releaseConnection (mysql-async.js:4862:10)
at Pool._removeConnection (mysql-async.js:4982:8)
at Pool._purgeConnection (mysql-async.js:4963:8)
at Handshake.onConnect (mysql-async.js:4762:14)
at Handshake. (mysql-async.js:1117:10)
at Handshake._callback (mysql-async.js:1083:16)
Error: (node:28263) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 19)

@LySoon I fixed all mine. Contact me on discord Jorrit#0001 it has nothing todo with MySQL async

Request Sent ❤


Allow specifying default gateway on RHEL/Centos

Signed-off-by: Tom Doherty<EMAIL_ADDRESS>Description
Allow specifying default gateway on RHEL/Centos
Issues Resolved
https://github.com/chef/chef/issues/2243
Check List

[ ] New functionality includes tests
[ ] All tests pass
[ ] RELEASE_NOTES.md, has been updated if required (not required for bugfixes, required for API changes)
[ ] All commits have been signed-off for the Developer Certificate of Origin. See https://github.com/chef/chef/blob/master/CONTRIBUTING.md#developer-certification-of-origin-dco

Thanks, Tom!