The GLContextPresent cost too much time on iOS

@liyuqian  Hi，we found that ListView is very easy to drop frames on iOS, even for a very sample demo, like this:
import "package:flutter/material.dart";

void main() => runApp(new MyApp());

class MyApp extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      home: Scaffold(
        body: ListPage(),
      ),
    );
  }
}

class ListPage extends StatelessWidget {

  Widget build(BuildContext context) {
    return ListView.builder(
      itemBuilder: (BuildContext context, int index) {
        return Container(
          child: Column(
            children: <Widget>[
              Text(index.toString())
            ],
          ),
        );
      },
    );
  }
}

The GLContextPresent function cost more than 40 ms sometimes.

So what could be the reason? It really confused us !
devices: iPhone 5s, iOS 12.4.
flutter doctor -v:
[✓] Flutter (Channel unknown, v1.13.5, on Mac OS X 10.14.6 18G103, locale en-CN)
    • Flutter version 1.13.5 at /Users/wangying/Desktop/flutter/flutter
    • Framework revision 41a911099b (10 days ago), 2019-12-19 13:48:02 -0800
    • Engine revision 0f90e6546b
    • Dart version 2.8.0 (build 2.8.0-dev.0.0 aa6709974d)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at /Users/wangying/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-29, build-tools 29.0.2
    • ANDROID_HOME = /Users/wangying/Library/Android/sdk
    • Java binary at: /Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/bin/java
    • Java version Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
    • All Android licenses accepted.

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

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

[✓] Android Studio (version 3.4)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 39.0.1
    • Dart plugin version 183.6270
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)

[!] Android Studio
    • Android Studio at /Applications/Android/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    ✗ Android Studio not found at /Applications/Android/Contents
    • Try updating or re-installing Android Studio.

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

[✓] Connected device (3 available)
    • linxuebin’s iPhone • 480ff3125e7e1420a8fa4087677c5c3d14524678 • ios            • iOS 12.4
    • Chrome     • chrome           • web-javascript • Google Chrome 79.0.3945.88
    • Web Server • web-server       • web-javascript • Flutter Tools

@liyuqian  hi, yuqian.  If you have time, help us analysis this issues?
cc @zoeyfan

Hi @wangying3426
Please follow up on that issue
I'm closing the current one as duplicate.
If you disagree please write in the comments
and I will reopen it.
Thank you

Hi @wangying3426
Please follow up on that issue
I'm closing the current one as duplicate.
If you disagree please write in the comments
and I will reopen it.
Thank you

It's seems OK.
All of them belong to thread waiting.
By the way, this problem is more serious, especially on iOS，while #47946 is occurs on both Android and iOS, and less serious.

Thank you @wangying3426 for bringing this to our attention! I did find some performance regressions on our 32-bit iOS tests which use devices similar to the iPhone 5s of this issue (https://flutter-dashboard.appspot.com/benchmarks.html):

flutter_gallery_ios32__transition_perf worst_frame_rasterizer_time_millis, 90ms to 300ms
flutter_gallery_ios32__transition_perf 99th_percentile_frame_rasterizer_time_millis, 30ms to 60ms

The regressions started from a seemingly unrelated commit: https://github.com/flutter/flutter/commit/261594e78578db4b37ea03006932f51095fdf229
Unfortunately, as those two benchmarks are archived, we didn't notice those regressions.
@flar : can you please take a look at this while I'm out-of-office?

This commit (https://github.com/flutter/flutter/commit/3c65463f890636ce687bbbaf5bcd19dee930cce6) results for which are still showing in the benchmark history on appspot is also suspicious. Before the commit the worst_frame benchmark was usually around 300ms, and after that commit it is now usually more than 1200ms.
But, that is a newer issue than the previous regression that @liyuqian reported going from 90->300ms. I'll continue to do some regression analysis.

I confirmed the regression in commit (https://github.com/flutter/flutter/commit/261594e78578db4b37ea03006932f51095fdf229). On my iPhone 6s the worst frame went from around 17ms to around 70ms and I tried 3 runs on each to make sure it wasn't a flake. I added a comment to PR https://github.com/flutter/flutter/pull/43677 to get some ideas on what might be the cause.

This looks a lot like the graph I'm seeing here: https://github.com/flutter/flutter/issues/24133#issuecomment-732743357. The GLContextPresent events seem to be delayed by a second or more! It seems to happen entirely at random in my "game loop", which consists of regular rebuilds. I'm using an OpenGL version of Flutter because of the jank problems Metal builds currently have.
Did you ever find a solution?


feat(notification): add fds-notification component

:tada: This issue has been resolved in version 0.19.0 :tada:
The release is available on:

GitHub release
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:


Coredump when importing pyhanko in pdfarranger

I'm trying to include signing features in pdfarranger using pyhanko, but on my first import of pyhanko modules the application coredumps. This is the very specific line which causes the coredump: https://github.com/plenaerts/pdfarranger/blob/a96db16096ca80e2af01be4f151c5e41fc58b1a6/pdfarranger/signer.py#L104
I tested using the pyhanko API in this script but once I try reusing this code in the gtk application I don't get to import pyhanko modules.
I don't have a clue where to start looking what causes this. Anyone else?

I tried using gdb to debug the python process. I got that idea here: https://stackoverflow.com/a/46228627
So, I started gdb using gdb python3 in my activated venv and loaded the GTK application.
At importing pyhanko I get this:
Thread 1 "python3" received signal SIGSEGV, Segmentation fault.
0x00007fffafab98ea in load_fribidi () from /home/pieter/src/pdfarranger/venv/lib/python3.8/site-packages/PIL/_imagingft.cpython-38-x86_64-linux-gnu.so

So, I'm guessing PIL is where I should look. Potentially PIL getting imported twice?

Interesting... I'm also assuming that PIL is the culprit here. I have no idea how PIL / Pillow is structured internally, but there was a relatively recent change to PIL that changed the way FriBiDi is loaded, which may or may not be related: https://github.com/python-pillow/Pillow/pull/5062.
Which version of PIL are you running? My dev environment is on 8.1.0, for what it's worth.
Second question: do you actually need bitmap image support? Because if not, I could try to lazify the PIL import so that at least it won't cause segfaults in unrelated code. PyHanko only depends on PIL for importing background images, basically.

I updated Pillow to 8.2.0, but I'm not seeing the behaviour you're reporting on my end. According to my logs, the last CI run also used 8.2.0, and so far I'm not seeing anything there.
I'm just guessing here, but it could be that the GTK version you use depends on a version of FriBiDi that's binary incompatible with the one that this version of Pillow expects, probably because the latter is more recent. Perhaps combing through the dependencies with ldd would shed some light here? I haven't tested pyHanko with pre-8.x versions of Pillow, but there's a good chance that pyHanko doesn't care if you downgrade Pillow.
Again, if you don't need the image support, I'm happy to restructure my imports to make sure that PIL only gets imported on-demand as opposed to automatically :)

Could you check if the commit I just pushed fixes your issue? Or at least delays the segfault until you try to use an image / QR code ;)
Thanks!

Its in the imports! I put the same import line at the very beginning of the
pdfarranger module and then I did not get the segfault.
I will get back with something working, but I think its important to find
out why we see this. You dont want N dependencies all claiming they want to
be imported first...
Op wo 14 apr. 2021 18:21 schreef Matthias Valvekens <
@.***>:

I updated Pillow to 8.2.0, but I'm not seeing the behaviour you're
reporting on my end. According to my logs, the last CI run also used 8.2.0,
and so far I'm not seeing anything there.
I'm just guessing here, but it could be that the GTK version you use
depends on a version of FriBiDi that's binary incompatible with the one
that this version of Pillow expects, probably because the latter is more
recent. Perhaps combing through the dependencies with ldd would shed some
light here? I haven't tested pyHanko with pre-8.x versions of Pillow, but
there's a good chance that pyHanko doesn't care if you downgrade Pillow.
Again, if you don't need the image support, I'm happy to restructure my
imports to make sure that PIL only gets imported on-demand as opposed to
automatically :)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/MatthiasValvekens/pyHanko/issues/13#issuecomment-819646089,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADNFRLUBPQBRP2ZRVAXDVNTTIW6JJANCNFSM4243SKXQ
.

I agree, but if I'm not mistaken, the fix I just pushed should at least make it so that importing pyHanko doesn't crash the interpreter.
Could you paste your Python version and the output of pip freeze here? Then I could also try my hand at reproducing the issue you're seeing :)

Sorry, last comments crossed :-)
Your commit delaying the import of PIL seems to fix my issue at first sight, but :-)
There may be scenario's where we still run into the same?
I had to fiddle a bit to get a clean requirements list because of pdfarranger depencies on DistUtilsExtra, gi and cairo, which I've not installed via pip. (I don't know if that even works.)
But, I have:
$ dpkg -l python3-gi python3-gi-cairo python3-distutils-extra
Gevraagd=(U)onbekend/(I)nstalleren/ve(R)wijderen/(P)wissen/(H)ouden
| Status=Niet/Inst/Conf/Uitgep/halF-geconf/Halfgeïnst/verWacht-trig/Trig-bezig
|/ Fout?=(geen)/heRinst. nodig/ (Status,Fout: hoofdletter=ernstig)
||/ Naam                    Versie       Architectuur Omschrijving
+++-=======================-============-============-=====================================================
ii  python3-distutils-extra 2.45         all          enhancements to the Python3 build system
ii  python3-gi              3.38.0-1     amd64        Python 3 bindings for gobject-introspection libraries
ii  python3-gi-cairo        3.38.0-1     amd64        Python 3 Cairo bindings for the GObject library

and
$ pip freeze
asn1crypto==1.4.0
cached-property==1.5.2
certifi==2020.12.5
cffi==1.14.5
chardet==4.0.0
click==7.1.2
cryptography==3.4.7
fonttools==4.22.0
idna==2.10
lxml==4.6.3
oscrypto==1.2.1
pdfarranger==1.7.1
pikepdf==2.11.1
Pillow==8.2.0
pycparser==2.20
pyHanko==0.6.0.dev1
pyhanko-certvalidator==0.14.1
python-barcode==0.13.1
python-dateutil==2.8.1
python-pkcs11==0.7.0
pytz==2021.1
PyYAML==5.4.1
qrcode==6.1
requests==2.25.1
six==1.15.0
tzlocal==2.1
urllib3==1.26.4

So, I think there may be scenario's where the loading of PIL first by pdfarranger vs first by pyhanko may be an issue?

My code works now in https://github.com/plenaerts/pdfarranger/commit/7aa54a010774d592b6570cd9c47fc12d718e9430 . Very rudimentary at the moment, but I've got a signature :+1:
I bet if we add an image to a pdf first, which should trigger loading PIL in pdfarranger first, we'll get to the same segfault...

OK, great! I can probably find the time to do some digging tomorrow, but I think you're on the right track here. Especially gi-cairo looks suspicious... The immediate cause of the crash was PIL's loading of FriBiDi (an implementation of the Unicode bidirectional algorithm), and I'm fairly sure that a graphics rendering lib like cairo also has that as a dependency. Given that you installed PIL/Pillow through pip and python3-gi-cairo through your system package manager, I wouldn't be surprised if there's a binary compatibility issue with the FriBiDi library there.
Let me know if you encounter any other clues.

I've got my very basic flow working in pdfarranger since https://github.com/plenaerts/pdfarranger/commit/34e57ed9b60d02b2ac6dd56bdbcbdb95c0307988 ; without segfault. So. I've no clue if that means the beid signer with stamp is simply not using PIL?
Not sure how I can check if we're safe from segfaults :-) Something tells me endusers will run into them unless they use their package managers.

I've no clue if that means the beid signer with stamp is simply not using PIL?

That would be correct. I forgot to mention it yesterday, but the PDF graphics operators to render the default background are actually hardcoded in the source: https://github.com/MatthiasValvekens/pyHanko/blob/95d9cad23a502443f5ab05e5b8b01ba1edc1be88/pyhanko/stamp.py#L649-L675
You'll only run into issues with PIL in the following situations:

Using a bitmap image in a signature appearance. Here, pyHanko directly uses PIL to read image data and dump it in a format that PDF viewers expect.
Using barcodes and/or QR codes in signatures. I actually also implemented all of that functionality using "raw" PDF drawing operations that don't require PIL, but the libraries I import to do the actual barcode-related calculations apparently always import PIL in the background. Unfortunately there's no easy way out of that :/

So, bottom line, you should be safe as long as you don't explicitly use either of the above two features.

I played with a couple of options but they all come to issues on Ubuntu.
1. Import early
If I move the import of the pyHanko modules to the top of all code like here in this line in this commit, then all goes well. But then again, this can result in package developers all staking their claim on the first lines for their imports.
2. Import late
This code does the import late, when we first use pyHanko logic.
2.1 Avoid system site packages
Trying to install as much as possible of the dependencies in a venv still results in the segfault. Per instructions on https://pygobject.readthedocs.io/en/latest/getting_started.html#ubuntu-getting-started we still need package manager installed cairo and gtk stuff. That may deliver the issue.
2.2 Maximize system site packages
Trying to install as much as possible using system site packages from ubuntu packages still installs Pillow locally as ubuntu provides python3-pil at 7.2.0 but pyHanko wants at least 8.0.1. Keeping the version requirement at 8.0.1 results in the segfault.
If I remove the pyHanko dependency on Pillow 8.0.1 and reuse the system site package at 7.2.0, then I don't get the segfault. Not sure if you really need PIL 8.0.1? This might be the "best" solution for ubuntu users assuming you don't really need features in 8.0.1. I understand that is not an optimal condition.
Conclusion based on my limited views
I propose you explain to re-users of pyHanko what the catch 22 is, how they should install and how they should import.
Thanks a lot for your help! I learned a lot :+1:
I'm not going to spend significantly more time on this as my problem at this moment is fixed: the code to put the sig today does not use PIL. I don't think I'll want to build fancy stamp configurations soon. I'll now focus on getting the user to choose stamp coordinates in an acceptable way in pdfarranger.

Thanks for the in-depth report! I'll look into downgrading the Pillow dependency then, since as you say, it's highly likely that I don't actually need any of the new 8.x features, so if there are no breaking API changes in the parts of Pillow that I'm using, we can relax that requirement.
In the end, it probably boils down to a binary incompatibility issue, and those are very hard to avoid when combining multiple package management systems (pip and the system package manager in this case). Ubuntu/debian often lag behind package versions on PyPI (sometimes with good reason), so I'm sure that you won't be the last person to run into a problem of this nature :). I'll make a note in the documentation somewhere.
If you don't mind, I'll close this issue now. Thanks again for the investigation!

:+1: My pleasure! Thanks for pyHanko ;-)

FYI, Pillow 8.3.2 from two weeks ago should fix this issue: https://github.com/python-pillow/Pillow/issues/5697

Thanks! I'm going to keep the lower bound on Pillow as-is for now (since it doesn't really matter for the features that we need here), but it's good to know that this issue has been fixed upstream.


Add support for circuits.

This change is

crates/blockifier/feature_contracts/cairo1/test_contract.cairo line 552 at r1 (raw file):
Previously, dorimedini-starkware wrote…
why the (x,) single-tuple? non-blocking

yes, it's a tuple with a single value.
A circuit is defined using a tuple of outputs.
(out1, out2, out3, ...)

crates/blockifier/src/execution/entry_point_test.rs line 560 at r1 (raw file):
Previously, dorimedini-starkware wrote…
is there a formula for this number?
asking because upgrading the compiler and recompiling cairo1 contracts is painful because of magic numbers like these; every one needs to be manually updated to get tests to pass. if the number is a function of some other maintainable numbers / named values that would help...

I can remove it and leave just the account test.
There are other places where we have such costs:
https://github.com/starkware-libs/blockifier/blob/b22fb076a7db5e0fcdd2048a6fb579b0b1d25561/crates/blockifier/src/execution/syscalls/syscalls_test.rs#L132
You do want to make sure that those costs don't change without changes to the compiler.
maybe we need a consts file and a fix script?

crates/blockifier/src/transaction/account_transactions_test.rs line 70 at r1 (raw file):
Previously, dorimedini-starkware wrote…
replace this with resource_bounds, this is a v3 transaction.
test is currently passing because resource bounds are zero, i.e. fee is ignored

should I use?
Code snippet:
l1_resource_bounds(u64::from(!zero_bounds), DEFAULT_STRK_L1_GAS_PRICE)

crates/blockifier/src/transaction/account_transactions_test.rs line 70 at r1 (raw file):
Previously, ilyalesokhin-starkware wrote…
should I use?

why is it called l1_resource_bounds?

crates/blockifier/src/transaction/account_transactions_test.rs line 108 at r2 (raw file):

    eprint!("tx_execution_info: {:?}", tx_execution_info.revert_error);
    assert!(tx_execution_info.revert_error.is_none());

this fails with:
tx_execution_info: Some("Insufficient max L1 gas: max amount: 5537, actual used: 6175.")thread 'transaction::account_transaction::test::test_circuit' panicked at crates/blockifier/src/transaction/account_transactions_test.rs:108:5:
How am I supposed to get the resource_bound?
Code quote:
assert!(tx_execution_info.revert_error.is_none());

crates/blockifier/src/transaction/account_transactions_test.rs line 70 at r1 (raw file):
Previously, dorimedini-starkware wrote…
because it creates a ResourceBounds instance without L2 bounds, only L1 bounds.
And please use a non-zero bound on the amount, so fee limits aren;t ignored (the average-case usage of execution layer)

What do you mean by "use a non-zero bound on the amount"?

crates/blockifier/src/blockifier/config.rs line 8 at r5 (raw file):
Previously, dorimedini-starkware wrote…
why this change?
@noaov1 PTAL

I was unable to compile the code without it.

crates/blockifier/src/execution/entry_point_execution.rs line 167 at r1 (raw file):
Previously, noaov1 (Noa Oved) wrote…
What is the range_check96 builtin? We only have mul and add (sub and inverse are obtained from those?)?
Do you need to add it here as well?

range_check96 is a 96bit rangecheck instead of 128.
yes, the only builtins are mul and add.
I guess I should add the builtins in the place you suggested.

crates/blockifier/src/transaction/account_transactions_test.rs line 54 at r5 (raw file):
Previously, noaov1 (Noa Oved) wrote…
Why do we need to test it in a context of an account transaction?
(just curious)

I don't mind removing it, @dorimedini-starkware  said that this is a better testing framework.

crates/blockifier/src/blockifier/config.rs line 8 at r5 (raw file):
Previously, noaov1 (Noa Oved) wrote…
Can you please explain?

When I press run test in vscode, I get the error below.
Maybe it's a vscode only error.
Code snippet:
error[E0599]: no function or associated item named `create_for_testing` found for struct `ConcurrencyConfig` in the current scope
  --> crates/blockifier/src/blockifier/config.rs:7:55
   |
7  |         Self { concurrency_config: ConcurrencyConfig::create_for_testing() }
   |                                                       ^^^^^^^^^^^^^^^^^^ function or associated item not found in `ConcurrencyConfig`

crates/blockifier/resources/versioned_constants.json line 560 at r8 (raw file):

            16,
            100
        ],

What do I put here and in the older versions?
Code quote:
        "add_mod_builtin": [
            16,
            100
        ],

crates/blockifier/src/transaction/account_transactions_test.rs line 54 at r5 (raw file):
Previously, ilyalesokhin-starkware wrote…
I don't mind removing it, @dorimedini-starkware  said that this is a better testing framework.

@dorimedini-starkware  what test do you think we should keep?

crates/blockifier/src/fee/fee_utils.rs line 50 at r11 (raw file):
Previously, dorimedini-starkware wrote…
what's this change?

debugging, I'll revet it.


Specifying output_shape is not working in tf.keras Lambda Layer

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Ubuntu 18.04
TensorFlow installed from (source or binary): binary
TensorFlow version (use command below): 2.0.0
Python version: 3.7.3
CUDA/cuDNN version: 10.0/7

Describe the current behavior
When creating a keras Model using a lambda function with specified output shape, the shape is not assigned to the resulting tensor:
dense_net from the example below:
<tf.Tensor 'lambda_6/Identity:0' shape=(None, None, None) dtype=float32>
If used before another layer like Dense the error appears:
ValueError: The last dimension of the inputs to Denseshould be defined. FoundNone.
Describe the expected behavior
dense_net should have shape information:
<tf.Tensor 'lambda_6/Identity:0' shape=(None, 10, 5) dtype=float32>
Code to reproduce the issue
from tensorflow.keras.layers import Input, Dense, Lambda
from tensorflow.keras.models import Model
from tensorflow.keras.backend import to_dense

test_input = Input((10, 5), sparse=True)
dense_net = Lambda(to_dense, output_shape=(10, 5))(test_input)
test_net = Dense(50)(dense_net)

Edit: Found a workaround:
from tensorflow.keras.layers import Input, Dense, Lambda, Layer, Reshape
from tensorflow.keras.models import Model
from tensorflow.keras.backend import to_dense

test_input = Input((10, 5), sparse=True)
dense_net = Lambda(to_dense)(test_input)
reshape_net = Reshape((10, 5))(dense_net)
test_net = Dense(50)(reshape_net)

Bug still remains though.

Issue replicating for TF-2.0, please find the gist for the same.Thanks!

Trying a custom Layer instead of the Lambda Layer results in the same error:
class ToDenseLayer(Layer):
    def __init__(self, out_shape: int):
        super(ToDenseLayer, self).__init__()
        self.out_shape = out_shape

    def call(self, inputs, **kwargs):
        return tf.sparse.to_dense(inputs)

    def compute_output_shape(self, input_shape):
        return None, None, self.out_shape

output_shape in the Lambda Layer  is used to help Keras do shape inference when in eager execution (or otherwise when shape information is not available), but it does not override TF shape inference on tensors, so it does not affect the tensor.shape attribute of the outputs.
To set the shape of a symbolic tensor with partial shape information, you should use the set_shape method.

Received this error in TF 2.4.1. Used keras Lambda with tf.squeeze and output_shape defined, but got the error within next layer which is Dense. I checked internals of sequential model, it did not infer output shape of the Lambda layer (output_tensor is
<KerasTensor: shape=<unknown> dtype=float32 (created by layer 'lambda')>). Now I look for "clean" solution not to speak about the workarounds.
My question - when output_shape is defined, and inference for output shape is unsuccessful, can the output_shape defined by user be used?


Load Reactome summations from their public API

At this time, Reactome does not provide an OBO format and I did not have access to the OWL/RDF Protégé file, so I opted onto parsing their flat file formats. However, those files are missing pathway definitions (known as summations).
Upon discussing with people at Reactome, it turns out that these summations can be retrieved from their public API at https://reactome.org/ContentService/#/query/findByIds given stable IDs (which we already have!).
I'm not exactly thrilled by the idea of having custom code to support Reactome. If we can get them to supply an OBO format, or add an OWL/RDF importer (see #180) to RDP, then we could simply remove that code.
This is related to #162 and the implementation will probably be part of #164.

The implementation is complete now.


overpass: 3.0.3 -> 3.0.4

Motivation for this change
line height issues fixed
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Notify maintainers
cc @rycee

Works well, thanks for the fix! Rebased to master in 6d7145b96666e828d868d3b226f0141c44e89849.


mkpr

Applied mkpr on package.json
sed s/"leveldown": "^.*"/"leveldown": "^5.3.0"/

Coverage remained the same at 98.4% when pulling 56a8673dc4a8c3d259b3d1e170fa33b84ba28105 on mkpr/1 into f5f0f5592d4fcac4a6018d5059e6fb48198d0c20 on master.

:tada: This PR is included in version 2.1.10 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Why can't I gamma correct an image created from a text object?

Question about an existing feature
What are you trying to achieve?
I'm wondering why gamma correction applied to a text image doesn't work, but it works after the text image has been composited onto a blank image.
When you searched for similar issues, what did you find that might be related?
Nothing.
Please provide a minimal, standalone code sample, without other dependencies, that demonstrates this question
let image = sharp({ create: {
	width: 100, height: 100, channels: 4, background: { r: 255, g: 255, b: 255, alpha: 1 }
} });

let text = sharp({ text: { text: 'Hello world', font: 'Arial 12', rgba: true, } });

text = sharp(await text.png({compressionLevel: 0}).toBuffer());

// text.gamma(2.2); // <--- uncommenting this has no effect

text = await text.png({compressionLevel: 0}).toBuffer();

image = image.composite([{input: text, left: 10, top: 10}]);

image = sharp(await image.png({compressionLevel: 0}).toBuffer());

// image.gamma(2.2); // <--- uncommenting this does have an effect

image.threshold(128, { grayscale: false });

image.jpeg({ quality: 100, chromaSubsampling: '4:4:4' }).toFile('test.jpg');

Please provide sample image(s) that help explain this question
No gamma() calls:

First gamma() call uncommented:

Second gamma call uncommented:

In your first example you're not applying any other operations in the same pipeline so gamma correction is essentially a no-op. In the second example you're applying a threshold on the gamma-corrected image, hence the difference.
Perhaps you meant to set a different value for gammaOut? https://sharp.pixelplumbing.com/api-operation#gamma

I hope this information helped. Please feel free to re-open with more details if further assistance is required.

I think I have a misconception about what .gamma() does.
I was assuming it just applies the gamma formula (out value = in value ^2.something) to every pixel's color values.
But instead it seems to set some parameter for other operations in the pipeline?


Optimize environment access for transitive functions

In the current solution, transitive functions used an additional function parameter environment that contained the variables accessed by the transitive function from the outer scope. This approach has the benefit to be stateless, however, requires that this additional argument is added for every call. As its not possible to identify all call sites of a transitive function without a very sophisticated data flow analysis, a wrapper has been introduced that adds the additional environment variable (fix function declaration instead of identifing the call sites). This requires that the arguments for every call are copied into a new array into which also the environment variable is pushed what has a significant --- negative --- impact on performance. Besides, it also may break functions that uses arguments to identify if an optional argument is present or not.
The new approach uses module-globals for the variables used inside of parallel-functions from the outer scope. These variables are initialized in the entry function (the one that is called from parallel) and reset to undefined when the function completed (successful or not). This requires less code rewriting and has a significant better performance than the existing approach (mandelbrot computed in 24s instead of 33s)

Coverage increased (+1.1%) to 93.75% when pulling e029393af31046ddd795011eb264743d44459d34 on optimize-environment-access-of-transitive-functions into fee26f8dc4818b569e214a15e5b754faabd9c8b4 on master.


NextUI default styles are overwriting my tailwindcss

NextUI Version
2
Describe the bug
I want to use NextUI components in my app, but at certain places I want to use normal tailwindcss. Many of the tailwind css classes are not working at all. I came across an old issue that mentioned something similar -> https://github.com/nextui-org/nextui/discussions/397 , but this only works in NextUI v1. In NextUI v2, NextUIProvider doesn't even have disableBaseline prop? How to handle this? Running on a hard deadline, would appreciate the help.
Your Example Website or App
No response
Steps to Reproduce the Bug or Issue
Create a NextUI Vite app using the cli as mentioned in the offical NextUI docs.
Expected behavior
Many tailwind class are not working as NextUI is overwriting my tailwind css.
Screenshots or Videos
No response
Operating System Version
macOS Sonama 14.1
Browser
Chrome

Could you share more like your tailwindcss config and code?

@arneesh
Could you provide a minimal reproducible example with a link to Stackblitz?

@arneesh  I tried Tailwind using custom Tailwind CSS and thing are working fine.
I would like to help you if you provide sandbox/stackblitz showing the error
Maybe you just need to update to the latest version to solve your issue.

Closing - inactivity.


https by default

Thanks @krausefx. Although I have automatic redirect from http to https, so I don't serve my website from http anymore :)

I do know that, but that means the initial request is sent via HTTP, and your server responds with a redirect in unencrypted http, which is already a point of attack to redirect the user to a malicious site

I think the DNS takes care of that, so unless that's compromised, it shouldn't make a difference. AFAIK, I might be wrong. Definitely thanks for the PR :)


Support YouTube instead of Twitch, or in addition to

I've been asked by some community members to support YouTube. I have some reservations about this. While streamers do multi-stream to YouTube and Twitch simultaneously; it gets weird when someone redeems to ask a question on one platform or the other. Since YouTube doesn't really have redeems, we need to have some type of chat trigger for it. It's also kind of weird for one platform to see the response to a question asked on the other platform. I can see where some people might want us to support YouTube just in general, outside of these multi-stream issues. I'm opening this ticket, to understand how the community thinks such a feature should be developed.

As someone who streams on YouTube and won't sign a contract for Twitch Affiliate again, I find support for YouTube and any support to given to features not hidden behind the Twitch Affiliate contract (channel points, redeems, subs, and bits) very appealing.


Unable to install Magento 2

I tried to install magento2 with your docker-compose file, but got following error:
Why it's happened? Any ideas how to fix it? Looks like this issue related to https://github.com/magento/magento2-community-edition/issues/15
phpunit/phpunit suggests installing phpunit/php-invoker (~1.1)
symfony/dependency-injection suggests installing symfony/proxy-manager-bridge (Generate service proxies to lazy load them)
sjparkinson/static-review suggests installing sensiolabs/security-checker (Required for ComposerSecurityReview.)
lusitanian/oauth suggests installing symfony/http-foundation (Allows using the Symfony Session storage backend.)
lusitanian/oauth suggests installing predis/predis (Allows using the Redis storage backend.)
Writing lock file
Generating autoload files

  [ErrorException]
  file_get_contents(app/etc/NonComposerComponentRegistration.php): failed to open stream: No such file or directory

create-project [-s|--stability STABILITY] [--prefer-source] [--prefer-dist] [--repository-url REPOSITORY-URL] [--dev] [--no-dev] [--no-plugins] [--no-custom-installers] [--no-scripts] [--no-progress] [--keep-vcs] [--no-install] [--ignore-platform-reqs] [--] [<package>] [<directory>] [<version>]

chmod: cannot access '/src/bin/magento': No such file or directory
Installing composer dependencies...
/usr/local/bin/m2setup.sh: 11: /usr/local/bin/m2setup.sh: /src/bin/magento: not found
Ignore the above error (bug in Magento), fixing with 'composer update'...
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Generating autoload files

  [ErrorException]
  file_get_contents(app/etc/NonComposerComponentRegistration.php): failed to open stream: No such file or directory

update [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--lock] [--no-plugins] [--no-custom-installers] [--no-autoloader] [--no-scripts] [--no-progress] [--with-dependencies] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--] [<packages>]...

Running Magento 2 setup script...
/usr/local/bin/m2setup.sh: 27: /usr/local/bin/m2setup.sh: /src/bin/magento: not found
Reindexing all indexes...
/usr/local/bin/m2setup.sh: 41: /usr/local/bin/m2setup.sh: /src/bin/magento: not found
The setup script has completed execution.

Also I tried replace image to mageinferno/magento2-setup:2.0.0 but get following error:
ocker-compose run --rm setup
Starting test_dbdata_1
Pulling setup (mageinferno/magento2-setup:2.0.0)...
2.0.0: Pulling from mageinferno/magento2-setup
5bac9e9b1edc: Pull complete
1e676c810de2: Pull complete
a02b4754c021: Pull complete
f192cde5963d: Pull complete
Digest: sha256:6afcfe7c4ae4ae4a466ed68d69c920a3a59cbffcaf29a2dd8afc85c22cc9e5a7
Status: Downloaded newer image for mageinferno/magento2-setup:2.0.0
Initializing setup...

gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
chmod: cannot access '/src/bin/magento': No such file or directory
Running Magento 2 setup script...
/usr/local/bin/m2setup.sh: 15: /usr/local/bin/m2setup.sh: /src/bin/magento: not found
Reindexing all indexes...
/usr/local/bin/m2setup.sh: 28: /usr/local/bin/m2setup.sh: /src/bin/magento: not found
The setup script has completed execution.```

The first is a bug with Magento -- see link you posted for more info.
The second error is a bug. I opened a ticket under the setup repo, since issue is in that repo. https://github.com/mageinferno/docker-magento2-setup/issues/2 -- working on it :)

@ihor-sviziev FYI I applied a patch to 2.0 so the composer docker install should now work until Magento fixes the issue.

Hi @markoshust now looks like it installed, but when I trying to run application - it doesnt work.
I've executed following command:
docker-compose run --rm app

Then in docker PS I have following situation:
docker ps
CONTAINER ID        IMAGE                              COMMAND                  CREATED              STATUS              PORTS                    NAMES
a004682cdeb3        mageinferno/magento2-nginx:1.9     "nginx -g 'daemon off"   About a minute ago   Up About a minute   80/tcp, 443/tcp          test_app_run_4
7b1b9918bacc        mageinferno/magento2-php:5.6-fpm   "php-fpm"                12 minutes ago       Up About a minute   9000/tcp                 test_php-fpm_1
c2a4f40f0b54        mariadb:10.0                       "/docker-entrypoint.s"   35 minutes ago       Up About a minute   <IP_ADDRESS>:8001->3306/tcp   test_db_1```

Any Ideas how to fix it?

I'm confused -- it appears to be running?

@markoshust "setup" part works well, looks like it successfully executed, but "app" tells that container is running, but browser tells me that connection refused.
I also tried to use curl, but same situation.
Currently I'm using docker-machine with on Mac OS XX, and I used up address from that machine. I also tried to run another containers and them worked well.
Could you check that your magento nginx container works correctly on your env?
Thanks

Yea everything is good here. If you aren't using Dinghy, I can't vouch for any other setup at this time, however since it's Docker, it should all work. If you don't use Dinghy, you need to setup your own HTTP proxy and DNS resolver to get things to map correctly. See this article http://mageinferno.com/blog/magento-2-development-docker-os-x


Make resolveSite case insensitive

solved by commit 5b5d6b18698ad4e7bfd4b6b32e2275d61711f55d
too lazy to set up branches and stuff and it's 2am so


Feature/bmauer/fixes #1789

This is a hurry job to address #1789
If you have a non-climatology, allow gaps in the datasets, just set the whole bracket field to undef, then the pointer we are updating becomes undef entirely itself.
I added a function to test if a field is identically MAPL undef they can use  in GAAS to make the determination if data is available to perform the whatever it is GAAS does or not.
Added a new test, and did a bit of cleanup with the ExtData tests.
Starting to get ugly, needs some cleanup when there is time.

Description

Related Issue

Motivation and Context

How Has This Been Tested?

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Trivial change (affects only documentation or cleanup)

Checklist:

[X] I have tested this change with a run of GEOSgcm (if non-trivial)
[X] I have added one of the required labels (0 diff, 0 diff trivial, 0 diff structural, non 0-diff)
[X] I have updated the CHANGELOG.md accordingly following the style of Keep a Changelog

Looks like there is a name collision:
FAILED: gridcomps/ExtData2G/CMakeFiles/MAPL.ExtData2G.dir/ExtDataSimpleFileHandler.F90.o include/MAPL.ExtData2G/mapl_extdatasimplefilehandler.mod
/gcc/bin/g******* -I/root/project/MAPL/gridcomps/ExtData2G -I/root/project/MAPL/gridcomps/ExtData2G -I/root/project/workspace/build-MAPL/gridcomps/ExtData2G -I/root/project/workspace/build-MAPL/include/MAPL.ExtData2G -I/root/project/MAPL/include -I/root/project/MAPL/shared -I/root/project/workspace/build-MAPL/shared -I/root/project/workspace/build-MAPL/include/MAPL.shared -I/root/project/MAPL/shared/Constants -I/root/project/workspace/build-MAPL/shared/Constants -I/root/project/workspace/build-MAPL/include/MAPL.constants -I/root/project/MAPL/base -I/root/project/workspace/build-MAPL/base -I/root/project/workspace/build-MAPL/include/MAPL.base -I/root/project/MAPL/profiler -I/root/project/workspace/build-MAPL/profiler -I/root/project/workspace/build-MAPL/include/MAPL.profiler -I/root/project/MAPL/pfio -I/root/project/workspace/build-MAPL/pfio -I/root/project/workspace/build-MAPL/include/MAPL.pfio -I/root/project/MAPL/MAPL_cfio -I/root/project/workspace/build-MAPL/MAPL_cfio_r4 -I/root/project/workspace/build-MAPL/include/MAPL_cfio_r4 -I/root/project/MAPL/generic -I/root/project/workspace/build-MAPL/generic -I/root/project/workspace/build-MAPL/include/MAPL.generic -I/root/project/MAPL/oomph -I/root/project/workspace/build-MAPL/oomph -I/root/project/workspace/build-MAPL/include/MAPL.oomph -I/root/project/MAPL/griddedio -I/root/project/workspace/build-MAPL/griddedio -I/root/project/workspace/build-MAPL/include/MAPL.griddedio -I/baselibs/v7.5.0/gcc_12.1.0-openmpi_4.1.4/Linux/GFTL_SHARED-1.5/include/v1 -I/baselibs/v7.5.0/gcc_12.1.0-openmpi_4.1.4/Linux/GFTL-1.8/include/v1 -I/opt/openmpi-4.1.4/include -I/opt/openmpi-4.1.4/lib -I/baselibs/v7.5.0/gcc_12.1.0-openmpi_4.1.4/Linux/PFLOGGER-1.9/include -I/baselibs/v7.5.0/gcc_12.1.0-openmpi_4.1.4/Linux/YAFYAML-1.0/include -I/baselibs/v7.5.0/gcc_12.1.0-openmpi_4.1.4/Linux/GFTL-1.8/include/v2 -I/baselibs/v7.5.0/gcc_12.1.0-openmpi_4.1.4/Linux/GFTL_SHARED-1.5/include/v2 -I/baselibs/v7.5.0/gcc_12.1.0-openmpi_4.1.4/Linux/include/netcdf -I/baselibs/v7.5.0/gcc_12.1.0-openmpi_4.1.4/Linux/include/esmf -O0 -g -fcheck=all,no-array-temps -finit-real=snan -save-temps -ffree-line-length-none -fno-range-check -Wno-missing-include-dirs -fbacktrace -Wno-unused-dummy-argument -ffpe-trap=zero,overflow -fbacktrace -fallow-argument-mismatch -fallow-invalid-boz -falign-commons -Jinclude/MAPL.ExtData2G -fPIC -pthread -fpreprocessed -c gridcomps/ExtData2G/CMakeFiles/MAPL.ExtData2G.dir/ExtDataSimpleFileHandler.F90-pp.f90 -o gridcomps/ExtData2G/CMakeFiles/MAPL.ExtData2G.dir/ExtDataSimpleFileHandler.F90.o
/root/project/MAPL/gridcomps/ExtData2G/ExtDataSimpleFileHandler.F90:20:49:

   15 |    use MAPL_ExtDataConstants
      |       2
......
   20 |    character(len=14), parameter :: file_not_found = "file_not_found"
      |                                                 1
Error: Symbol 'file_not_found' at (1) conflicts with symbol from module 'mapl_extdataconstants', use-associated at (2)

I put a DNA on this PR. Realized when trying this with GAAS my test was incomplete in that I started the iteration of the driver that exercised ExtData while there was still data, then it ran through the time period that had the gap in the data.
But, if you start during that gap (which is what it would look like for GAAS in the DAS) I need to do additional work to find A file as I need the metadata from some file in sequence during initialization


Adopt http/special-headers/conditional-request from cadl ranch

Fixes https://github.com/microsoft/typespec/issues/3990
cherry picked from @nisha-bhatia 's PR for clarity.

API change check
API changes are not detected in this pull request.


Caddy ignores -https-port and breaks custom port mapping with recent change

1. What version of Caddy are you using (caddy -version)?
broken (latest master):
0b83014ff81b68b8fde21521662339396c277ab8
a working revision:
4f5df39bdd9ce05146da14bb60f5a17a163d5262
2. What are you trying to do?
Proper security by explicit port forwarding and explicitly limited capabilities.
3.  How did you run Caddy (give the full command and describe the execution environment)?
caddy -agree -http-port 8080 -https-port 8443 -conf /path/to/config/Caddyfile -log stdout

external port mapping from external ports 80 and 443 to internal 8080 and 8443 by SDN.

6. What did you expect to see?
Older versions including the "working" revision respect the flags and are able to request and and renew LE/ACME certificates fine with the config. At least the version defined as "broken" tries to bind to port 443 ignoring the given CLI flag.

If everyone could please use #2452 and help test it, and report back, that would be great.

works for me. test case https://github.com/rmoriz/caddy_example_issue_2407/tree/patch_2452

Great! We'll hopefully merge that very soon. Thanks.

Likewise worked for me.

Hello! I think the issue is still alive.
root@mattermost:~# cat kwm*

https://example.test.com:8443 {
    errors stderr
    log stdout

    tls<EMAIL_ADDRESS>
    root ./www

    # kwmserverd API v1 websocket
    proxy /api/v1/websocket <IP_ADDRESS>:8778 {
        websocket
    }

    # kwmserverd API v1 (full, including admin)
    proxy /api/v1 <IP_ADDRESS>:8778

    # kwmserverd API v2
    proxy /api/kwm/v2/ <IP_ADDRESS>:8778 {
        websocket
    }
}
root@mattermost:~# caddy -conf kwm*
Activating privacy features... done.
2019/02/14 14:01:21 Listen: listen tcp :80: bind: address already in use

root@mattermost:~# caddy -version
Caddy 0.11.3 (non-commercial use only)

@s1lviu that's a different issue. This was specifically related to the -https-port CLI flag.
For Let's Encrypt certificate issuance to work, port 80 needs to be available. See here: https://caddyserver.com/docs/automatic-https

@s1lviu If you cannot bind to port 80 and do your own mapping to be reachable on port 80 (using external, docker, iptables methods), you'll have to specify a non-tls part like in my example in this issues' opening post https://github.com/mholt/caddy/issues/2407#issue-393792153


Fix page header in CMS component pages

Currently the platform header is missing from component pages that are using the CMS. This brings it back so that users can switch platforms.

Here's an example of a page currently missing the header:
https://thumbprint.design/components/popover/usage/


Wind Type Design change

Based on the Client meeting, we need to show all the details in main page not in the pop up window for the wind shear type.

Completed


Add /operator redirect

Looks like the redirect shows a "Redirecting" page, which won't likely work with Helm.
Closing for now, we can revisit this using Ruby if we cannot find any other accommodations.


Enable native View Transition API

Allow optional use of View Transition API for navigation transitions.
PR incoming.

Hey @claytongulick do you have an example on how to use view transition with your PR?


add class EventCodeClient with function loadEventMaps, update Conditi…

…onCode data class, rename java folders to kotlin, add unit tests for RedisUtility and EventCodeClient, add resource directory event_codes and csv files for arbo-lyme and hep

I am going to create a new ticket to address changing this code to use Condition2MMGMapping class instead of ConditionCode class.


Issue #16 fix multithread build

Signed-off-by: Olivier Lamy<EMAIL_ADDRESS>

Adding ready to pull tag to start the process of testing this from google side. Do not merge manually.

git actions seem to be stuck on 8 and 17.... Why?

Sorry, our internal checks see 3 issues:
license content in the cmd file and the property file, please change to correct header as seen in other files with these types
and more important: we cannot import binary jar files anymore in our internal repository, so please also change to avoid adding a jar file in the PR.
Thanks!

Sorry, our internal checks see 3 issues: license content in the cmd file and the property file, please change to correct header as seen in other files with these types

those files have been generated using mvn --errors --batch-mode --show-version org.apache.maven.plugins:maven-wrapper-plugin:3.1.0:wrapper -Dmaven=3.8.6
Anyway I have restored the content from main branch.

and more important: we cannot import binary jar files anymore in our internal repository, so please also change to avoid adding a jar file in the PR. Thanks!

sure I have restored previous as new version of maven wrapper is now using a jar.


Installing on Windows 10

Hi!
I tried  to install it with pip install... and with the setup.py. I installed the vc++ package, but after that, i get this error:     _proj.c(240) : fatal error C1083: Cannot open include file: 'geodesic.h': No such file or directory
I found GeographicLib-1.46, but i have no idea how to install it. Can you please help me with that?

pyproj version <IP_ADDRESS> includes PROJ.4 in the "src" folder, which also includes GeographicLib.
Under Windows, your Visual C++ compiler version has to be the same version that was used to compile that version of Python.
What version of Python are you using and what Visual C++ did you install?

Python 2.7.12
and
C++ compile package for python 2.7 is <IP_ADDRESS>729

I've had success using Microsoft Visual C++ Compiler for Python 2.7.
Please provide more of the error message from the command C:\..> pip install pyproj , it could prove helpful.

This is what i see: blob:https%3A//snag.gy/410fa00c-5a3d-4005-8782-c18581d9692f

That screenshot was helpful.   It looks like you have set the PROJ_DIR environment set to an existing installation of the PROJ.4 library.  PROJ.4 version 4.9.0 or greater is required.
In order to use your existing PROJ.4 installed, you will also need to have the headers install. If that is a different location from PROJ_DIR under the "include" subdirectory, you can use the PROJ_INCDIR environment variable to point to the header files.  (PROJ_INCDIR has not been documented.)   There is a PROJ_LIBDIR to point to a path that the library file is located.  Otherwise, the default library directory is PROJ_DIR under the "lib" or "lib64" subdirectory.
Alternatively, pyproj includes the source code for PROJ.4 version after 4.9.2 (copy of late 2015 from github repo),  which pip will install.

Refer to #216


Update Calculator.java

Description
Added add, subtract, multiply and divide function in the class to perform calculation.
Additional Context
Below is the output of the problem statement calculator.java

Updated the Calculator.java problem with needed function.

Merged

This is an automated message from Fork, Commit, Merge [BOT].

Thank you for your contribution! Your pull request has been merged. The files have been reset for the next contributor.
What's next?
If you're looking for more ways to contribute, I invite you to check out my other projects. Just click here to find more. These projects contain real issues that you can help resolve. You can also check out the Influences section in the README to find more projects similar to this one.
Also please leave a star to this project if you feel it helped you, i would really appreciate it.
I look forward to seeing your contributions!


regularly crashed with general protection faults

Hi!
we are using memcached for quite a long time - several years now - on multiple servers without problems.
Since a week memcached started to crash on four or five servers regularly with the following to messages:
memcached[24554] general protection ip:416d26 sp:7fcb66bfce50 error:0 in memcached[400000+35000]
memcached[29375] general protection ip:41862c sp:7fb75bffee18 error:0 in memcached[400000+35000]
The first one is the most frequent error; about 20 times, the second one occurred 4-5 times.
All system run CentOS release 6.10 with memcached version 1.5.21.
At the time of the first crashes we ran with 1.5.20 and we upgraded to 1.5.21 just to have the most recent version.
I used addr2line to get the code lines:
addr2line -e /usr/lib/debug/usr/bin/memcached.debug 41862c
/usr/src/debug/memcached-1.5.21/items.c:462
446 static void do_item_unlink_q(item *it) {
447     item **head, **tail;
448     head = &heads[it->slabs_clsid];
449     tail = &tails[it->slabs_clsid];
450
451     if (*head == it) {
452         assert(it->prev == 0);
453         *head = it->next;
454     }
455     if (*tail == it) {
456         assert(it->next == 0);
457         *tail = it->prev;
458     }
459     assert(it->next != it);
460     assert(it->prev != it);
461
462     if (it->next) it->next->prev = it->prev;
463     if (it->prev) it->prev->next = it->next;
464     sizes[it->slabs_clsid]--;
465 #ifdef EXTSTORE
466     if (it->it_flags & ITEM_HDR) {
467         sizes_bytes[it->slabs_clsid] -= (ITEM_ntotal(it) - it->nbytes) + sizeof(item_hdr);
468     } else {
469         sizes_bytes[it->slabs_clsid] -= ITEM_ntotal(it);
470     }
471 #else
472     sizes_bytes[it->slabs_clsid] -= ITEM_ntotal(it);
473 #endif
474
475     return;
476 }
addr2line -e /usr/lib/debug/usr/bin/memcached.debug 416d26
/usr/src/debug/memcached-1.5.21/slabs.c:819
811 /* CALLED WITH slabs_lock HELD /
812 / detaches item/chunk from freelist. */
813 static void slab_rebalance_cut_free(slabclass_t *s_cls, item it) {
814     / Ensure this was on the freelist and nothing else. */
815     assert(it->it_flags == ITEM_SLABBED);
816     if (s_cls->slots == it) {
817         s_cls->slots = it->next;
818     }
819     if (it->next) it->next->prev = it->prev;
820     if (it->prev) it->prev->next = it->next;
821     s_cls->sl_curr--;
822 }
with kind regards,
Joerg

@smukil nolock is (should!) only ever be called when the particular LRU lock is already held. It's only called from lru_pull_tail (which always has the LRU lock held), and one of the crawler.c modules, which also holds the LRU lock.
do_item_unlink() always requires the item lock to be held, which I'm pretty sure is true? There are also no changes around unlink_nolock() lately. This seems like a new crash in .20, which most likely is due to that slab mover change... but need @joerg-mi to confirm if 1.5.19 was crash-free or not. Hopefully they speak up soon :(

I have a theory that the slab mover change from #524 is causing this. I just noticed (sigh) that the 'completed' code that was added to speed things up is a bit wrong. It should be advancing to the next offset if completed already before the slabs lock is called. Instead it's a redundant check with the ITEM_SLABBED|ITEM_FETCHED meta flag...
The offset is calculated with math, the theory is sometimes (somewhere/somehow/some platform) the offset calculated from there wouldn't be linear. If one slab chunk gets marked as completed, but the next offset resolves to the same number, and no other chunks were processed as busy during that loop, it could accidentally free the page with a linked item in it.
However, 1) usually that causes more varied crashes. 2) I wrote a test program to see if the calculated offset could ever be wrong in a few million scenarios and it passes on my platform at least.
I also ran a test with heavy slab reassignment for multiple weeks in december and didn't reproduce the crash. Not sure what the delta is here.
I'll fix the completed check to use a numeric instead of calculated offset and also properly skip the lock regardless, but would love a repro case or at least more information for this particular crash.

I think this isit: https://github.com/memcached/memcached/pull/608
I added some printf's and manual tests and was able to cause the chunk leaks. going to hold a bit before merge/releasing. Will have to rebase the next branch and will put this out just on top of master branch.
Might also fix (or temporarily remove/comment) the completed bits just in case those are also problematic. Best case, it doesn't do anything right now anyway.

Fix released in 1.5.22


Support for POSIX regular expression

What would you like to be added:
Hi, first of all let me say thank you to all of you that created this project. Definitely one of the best ones I've seen in years.
I'll soon be starting using this project for work, but we have an additional requirement: support for POSIX regular expression as described here (9.7.3): https://www.postgresql.org/docs/9.3/functions-matching.html
Why is this needed:
It can extend the support for pattern matching.
I'll be more than happy to work on a PR if this request gets approved.

Would love to have that feature added in. We have support for similar and not_similar adding posix regex should very similar you can jus follow that code path.

@dosco I'll take that as a yes then.
I'll start tomorrow.


Switch state regeneration metrics to use labelled counter

Description
Switch the storage_memory_states_tasks_requested, storage_memory_states_tasks_active, storage_memory_states_tasks_queued, storage_memory_checkpoint_states_tasks_requested, storage_memory_checkpoint_states_tasks_active and storage_memory_checkpoint_states_tasks_queued metrics to use a single labelled counter.

A couple of questions.

What about the tasks_total and the cache_size metrics, do we leave them as is?
Could I use a labelled double gauge instead of a labelled counter, to address decrementing of the counter value?
Would the nomenclature (_tasks => metric name ), (status` => label name) work?
If not picked already I could pick this issue

@arhamj yes, you can pick this.

Yes the tasks_total and cache_size metrics should remain separate.
Yes sorry, the title should have said labelled gauge not counter.
and yes I think that nomenclature works.  So we'd wind up with things like storage_memory_states_tasks{status=requested}

@ajsutton can you help review the PR?


Click anywhere on projects card that will redirect to the github repo.

Now when you click anywhere on the project card It will redirect you to that reposritory

instead what you can do is, keep this only for for mobile view


QueryFactory addOrdering - Support for Distance

At this time, it appears I have no way of creating a query that does the following:
SELECT Id, Name, MailingLatitude, MailingLongitude
FROM Contact
ORDER BY DISTANCE(MailingAddress, GEOLOCATION(40.7657, -73.9899), 'mi') ASC
Because DISTANCE is not a field, there is no way to call addOrdering to support the above. If this is possible, can someone help me out? If not, I'd like to propose an enhancement.
Thanks!

@tmowbrey Create a formula field if you are going to use the same geolcation coordinates

That's easy enough when managing your own org, but I'm using this for a managed package where I don't know the object that I'm querying before hand. I'm asking the end user to provide the compound address or geolocation fields as part of setup. I'd prefer that we determine if we can add an additional method to support distance and geolocation adds to the query factory, if possible.

So we want a generic enhancement to support soql functions in select/where/order by clauses. Sounds useful to me.
Marked as an enhancement request.


Can't seem to "Get out of" the GPS Time App

Hi,
I seem to be "stuck" at this screen, how do I get out of the app without resetting the watch?
Matt

You just long-press BTN3 (bottom right)? It's the way you normally get out of apps unless they have specifically dedicated a button to exiting.
Or does that not work for you?

Yep, BTN3 gets me out, although the screen says BTN2

Hi - yeah, the 'Set' by BTN2 means it'll set the system time to the GPS time you see there.
But I guess it does make sense to add another label and allow short-press to exit. I'll be making some changes to get this working nicely with other devices so I'll look at adding the functionality then

Many thanks!


Well-Known-Types Any support with JSON serialization and deserialization

I have a project where we have receive following proto message:
message Request {
    string requestId = 1;
    google.protobuf.Any payload = 2
}

The payload field can contain any proto message, for example:
package test;

message Foo {
    string data = 1;
    google.protobuf.Timestamp timestamp = 2;
}

The request message, with something like Foo packed in it as payload, can be received as binary, or as JSON. The JSON format would look as follows:
{
  "requestId": "message1",
  "payload": {
    "@type": "type.googleapis.com/test.Foo",
    "data": "Hello World!",
    "timestamp": "2019-11-29T02:11:40.066Z"
  }
}

To support this, the following needed to be added:

Support packing and unpacking of messages into an Any
Support binary serializing and deserializing of an Any
Support JSON serialization and deserialization of an Any

The changes in this commit add support for the above by using the typetag
and mopa crates.
To support JSON serialization and deserialization, a new include_serde
property needs to be set in the prost_build build.rs configuration:
fn main() {
    let mut prost_build = prost_build::Config::new();
    prost_build.include_serde();
    prost_build.compile_protos(&["src/frontend.proto", "src/backend.proto"],
                               &["src"]).unwrap();
}

This will then add the necessary macro properties for prost-derive to use
to enable Message serialization and deserialization with the serde
framework.
All Message structs can then be packed into an Any type, and correctly
serialized to JSON. Likewise they can also be deserialized again to an
Any struct, and the original message can be unpacked to either a
generic trait object, or the concrete struct.
This pull request does involve a lot of changes and requires two extra crates as
a dependency, but so far it works well in our project. Perhaps it can be useful
for others as well.

Closed in favour of #277.


Xia handler causing chunk reloading

As of VoidCraft-1.10.2-0.17.8.jar, forge reports 5% CPU time taken by Xia dimension when a player is inside it.
As observed with a profiler, it appears to be related to chunk loading, maybe the range involved in getEntitiesWithinAABB is too big?

This wouldn't be dealing with how chunks are loaded, it's just getting a list of entities with the aabb (which is a small radius), the locations would be in already loaded chunks anyway. the castle isnt very big and all 3 aabbs are pretty close

RFTools uses the same aabb based checks for their shield blocks, those would cause the same effect.

Actually, the profiler shows something different than chunkloading.

The image provided shows my call to world.getEntitiesWithinAABB() yea, but I'm not quite sure what I can do about it to improve performance.

I went ahead and made sure if I needed to check if the chunks were loaded or not and it turns out World#getEntitiesWithinAABB already does this check for me. So there's nothing more I can do here.

It's not chunkloading from getEntitiesWithinAABB(), my initial assumption was incorrect.
According to the profiler, it's lagging while scanning the chunks. I imagine several factors that could cause this:
1- we're checking too many chunks
2- there's too many chunks loaded already
3- the Handler is called several times per tick
I suppose the 3 checks are done but the bounding boxes are at most 37x23, so it's not the 1-.
XiaCastleLogicHandler is only instanciated once through the WorldProvider, and called through WorldProvided::onWorldUpdateEntities(). So 3- is possible in case of world leak. The latest would have to be pretty massive, or a forge bug so it doesn't seem right.
So we're down to 2-, which is too many chunks loaded.
The castle schematic seems reasonably sized, so that's not it. Something else would be loading chunks, but only impacts significantly Xia dimension, so it's off too.
so I guess, it'll require some logs and poking around to understand what's going on here.

On a side note, there's actually only 2 AABBs that are running on a fresh Xia dimension before the player does any progress. That would be these two: https://github.com/Tamaized/VoidCraft/blob/1.11.2/src/main/java/Tamaized/Voidcraft/xiaCastle/logic/XiaCastleLogicHandler.java#L75-L76
that's an area coverage of 10x2x6 for the first (we're using X by Y by Z in terms of distance order)
and an area of 8x2x20 for the second.

As for the possibility of a leak and more instances being created, well it's handled the same exact way as the DragonFightManager located in WorldProviderEnd meaning if there were some sort of leak, you'd most likely see it from that as well. So doubt it's that.

From a quick test in SMP, there's also lag from TheEnd when players are in it.
1 or 2 players in TheEnd, standing in god mode on top of pillar:

No player in TheEnd:

I'll have to confirm that in single player.
From a quick check, nothing specific shows up in the profiler.

Wouldn't be due to my mod, it may be safe to assume that loaded dimensions just use more processing power because of the now loaded chunks. But that's pretty normal.

I also want to point out, if your overall tick time is less than or equal to 50ms you have nothing at all to worry about. 1000ms to a second, 1000ms/20ticks is 50ms

Those measures are with a single IDLE player online with no tech mods. Having a total of 24ms in those circunstances is bad, especially when each added player increase that by 15+ms.

Well, no idea what to tell you. My mod doesn't touch anything in the end besides world gen for ores but that wouldn't cause tps issues.

Following check with and without VoidCraft in single player, lag in the end doesn't come from VoidCraft.
I'm running out of ideas on this one.

I believe it's just the game itself. Does it occur without mods.

I've tried removing mods in single player, measuring with /forge tps: it's inconclusive and lack details to move further.
It feels like too much chunks are loaded but at the same time they're not.
It feels like world objects are being "held" but dimensions are properly unloading.


Add files via upload

Added ccc edu

@gabplusplus First stage of verification passed, official domain for City College of Calamba is ccc.edu.ph as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

@gabplusplus Thank you for your patience while waiting for a review and processing your request. Pull request merged.


Fix error in Viewer.reset_view() with vispy 0.7

Description
This PR is a fix for an issue @sofroniewn found with vispy 0.7 #2875
In napari._vispy.vispy_camera.VispyCamera when setting zoom we get the camera width and height from the vispy viewbox. The cause of the issue is that the camera width and height become zero temporarily during a call to Viewer.reset_view() - below I've printed the canvas size and the scale on running examples/add_image.py
[800 600] [1. 1.]
[491 653] [0. 0.]
/Users/aburt/Programming/napari/napari/_vispy/vispy_camera.py:112: RuntimeWarning: divide by zero encountered in true_divide
  zoom = np.min(canvas_size / scale)
[491 653] [537.89473684<PHONE_NUMBER>4]

and the stack leading to the call

because the situation where the scale is 0 appears only temporarily during Viewer.reset_view() simply checking whether the scale values are zero and temporarily setting them both to 1 appears to be an acceptable workaround.
I'm not at all sure why the camera gets into this weird temporary state - @djhoese do you know what might have changed with the viewbox camera?

It depends what specific commit you're using from vispy. 6 days ago I merged https://github.com/vispy/vispy/pull/2100 which pointed out some important issues with the new grid solver code (missing an important method call on the solver). I would hope this solves this if it wasn't being included, but it is possible there are other issues if any GridWidgets are involved in the napari stuff (.add_grid) as that's where the solver was updated.

thanks for the info @djhoese - problem was present using master from today, we do have some grid things going on in napari but I'm not sure of specifics. Will try to have another dig

The grid solver we were using (cassowary) is no longer maintained as far as I understand it. One of the developers (I think) of kiwisolver which is based on cassowary made a PR with the starting point for replacing cassowary. I merged that PR as it seemed to do everything needed. That 2100 PR is the only direct fix I've found that was needed. Our other tests have passed, but there is also a good chance that although we are running the code we aren't verifying the exact same visual output for all the tests.


Feature Request:  Auto-balance materials/synths/etc...

This is very much on the nice to have list, but it'd be handy to just click a button and have it automatically distribute certain items evenly across all of your characters.  For class based materials, such as sapphire wire, it'd be great if it could just automatically move those to the correct class.

I wrote a feature like this for a different extension based off of DIM. I like your idea of automatically distributing the class materials, and wanted to poke in and say thanks for that.

follow along in #398


Add a health indicator for each package

Feature Request
Add a new column containing an indicator of the "health" of the individual packages using a similar scheme to the badge: less than 50%, 50% - 74%,  greater than 75%.
Expected Behaviour

Use emojis as a health indicator for each package. e.g.: ❌ / ☑ / ✅ or ❌ / ➖ / ✔ or 🔴 / 🟡 / 🟢
Add a parameter to enable, default true.

Additional Context
Linked To
#15 Add ability to change badge + health indicator thresholds

Using ❌ / ➖ / ✔ for accessibility.
Also added health indicator to summary & changed text output to be more like markdown output.


Add examples of space-evenly and gap

Since the creation of this game a few new properties and value have been added to flexbox. space-evenly is now an option for align and justify, and the gap can now be used to mark a specific sized gap between flex items. Both of these could use examples.

Thanks for the suggestion @jsnkuhn. For now I'm adding space-evenly to the popup docs, and I'll look to add levels for these in the future.

Added 1244eee5108e91dbc7e266f06e9be51b1e762135


Feature/presets and impulse responses

Ran into a merge conflict due to our recent changes (86 and 85) but resolved the conflicts with the kind help from @mattahorton . Merging should now be able be performed automatically, if approved. Let me briefly double-check if feature/PresetsANDImpulseResponses still works fine and get back to you in a sec

After double-checking all presets under feature/PresetsANDImpulseResponses, all works as expected. I believe we're good to go.

@mikedickey @dhing1024


Deprecate Wiki?

For those three short pages, doesn't feel like there's a good reason to have the Wiki tab.

We intentionally maintain those pages so that exiting hyperlinks on the web continue to work. They each simply reference the web page so that folks know where to go from there. I'd be open to other approaches as long as the URLs continue to help people get to where they want to go. Can you elaborate on the problem you would like to solve?

Could we just move the content in the wiki to the primary README in the main repo?

I'm wondering if maybe you are being served different content than me. For me, those three pages contain only a single sentence:

JSHint's documentation is maintained in a dedicated repository
(https://github.com/jshint/jshint.github.io) and published online at
http://jshint.com.

Moving this to the project's readme file would conflict with the intention I described above.
I still think I could be more helpful if I understood your goal--could you explain the problem you are trying to solve?

Just trying to reduce noise on the repo - if we can disable the Wiki tab then we'll see Code, PRs, and Insights, and all the documentation will live in the repo.

Got it. I'm no fan of noise, but I think a superfluous tab on GitHub.com is preferable to broken links out there on the web. Since those pages are simply pointers to the actual documentation (i.e. they don't contain duplicate or outdated content), I think we'll just leave them as is.

Fair enough - thanks!


Fix/1.2.0/userprofile (#661)

This Pull Request introduces a new filtering functionality to the userprofile page. The main objective of this update is to enhance the user experience by providing a more refined control over the visibility of posts.
Key Changes:

Filter Implementation for topData and listData: The topData and listData on the userprofile page have been updated with a filtering mechanism. This feature filters out 'unlisted' posts, ensuring that they are only visible to specific user roles.

Role-Based Visibility: The visibility of 'unlisted' posts is now restricted. These posts are only displayed to the Post author, Admin, and Moderator roles.

Testing:
The new filter functionality has been thoroughly tested to ensure it operates as intended across various scenarios. Tests included checking the visibility of posts for different user roles and verifying the correct functioning of the topData and listData filters.
Looking forward to your feedback and suggestions on this implementation.
Thank you for considering this Pull Request.
Related issue: #661

First of all thank you for your contribution!
A good solution should be to adjust the results returned by the corresponding API through token authentication! Calling the details API in batches through the list is not a good solution!
As developers, we should think more about whether the solution is reasonable! This is a very important concept!

Thank you very much for your guidance, I will revisit this issue !

Thank you very much for your guidance, I will revisit this issue !

This requires adjusting some logic on the backend. If you need technical support, you can contact @LinkinStars  for help.

if needed, I can help with the backend part. :)

if needed, I can help with the backend part. :)

Many thanks if you can provide any help.


Added CommandLineUtility

Description
Closes #3.
Added CommandLineUtility.
Author's Checklist

[x] These changes don't break existing dependants. If they do, and you suggest to proceed,
please explain why.

Reviewer's Checklist

[ ] All classes have documentation comments.
[ ] All methods have documentation comments.
[ ] No parameters are hardcoded. Should be loaded as properties instead. If there needs to be hardcoded properties, explain why.
[ ] All information to be logged/displayed to the user are internationalized. If not, explain why.
[ ] README.md has been updated if needed.

Assignee's Checklist

[ ] All GitHub action checks have passed.
[ ] All reviewers have approved.
[ ] Relevant documentation has been updated if needed.

Blocked by  padaiyal/jPopper#50.

Blocked by  padaiyal/jPopper#50.

No longer blocked.
Ready for review.

No longer blocked.
Ready for review.

Blocked by padaiyal/jPopper#50.

No longer blocked. Ready for review.

Blocked by padaiyal/jPopper#50.

No longer blocked. Ready for review.


Integrate WalletConnect to Dapp

To support non Metmask users, WalletConnect support has been provided
through this PR. This still lacks the proper UI and some minor issues
are still around. The core idea here is two things, first is to
implement EthereumProvider interface just like MetamaskProvider and
then adapt the different functions with the slight differnces between
Metamask and WalletConnect. The second thing, is proposing the store
persistor as it was manadatory for keeping the state of the connected
wallet (mainly for WalletConnect), so the user is kept connected even
after reloading the screen. pinia-plugin-persist has been used for
this goal, and in configuration, localStorage has been chosen as the
storage technology (API) for browser. A new store settings has been
added to keep the connection state and a unit test has been created
for it.
Testing should be added for the provider classes and the proper UI
should be applied before merging this, including the disconnect from
wallet feature. We have also and issue with showing the source chain
value in select box after changing because window reloads and the value
resets and is no longer available after that! A fix will be pushed
later for this.
Resolves:
#472

Few comments that are unresolved, but it's ready to review right now IMO!

Tested after rebase and works well! To the merge!

The change requests by Manuel are still blocking the merge. As Manuel only works 1.5 days a week, we can't wait for that. So I'll use my permissions to force merge.

:rocket: :fireworks: :wine_glass:


💡 [REQUEST] - Navbar hide & show

[x] I am from GSSoC23.
[x] I would like to be assigned this task.

Section
Description

Concise Description
As the navbar transparent after scrolling it shows below code and it does not give professional appearance

Solution Proposed
I would like provide hide transition to navbar for certain scroll and appear when scroll to top.

Alternative Solutions

Additional Context

Screenshots

Code of Conduct
By submitting this issue, you agree to follow our Code of Conduct.

[x] I follow the Contributing Guidelines of this project.
[x] I have checked the current issues for duplicate problems.
[x] I have read the readme of this repository.

I would like to work on this, Please assign it to me


use 'Unnamed park' for OSM parks that don't have a name

closing since this is confusing and looks like it was already done


Remove label

This is needed for a PR I want to send to jess.
Ping @crosbymichael

I tested the label removal and it works.

@crosbymichael I hope you saw the commit message, that it breaks your API :( I probably should have put it in the description.


Add Docstrings to Simulation, Normalization, Metrics, and Mesh Modules

Currently, the Simulation, Normalization, Metrics, and Mesh modules in our codebase lack docstrings. Docstrings are essential for documenting the purpose, inputs, outputs, and usage of functions and classes. They provide a quick reference for other developers to understand and use the code. Therefore, it's important to have docstrings for all public functions and classes in our modules.
This issue is to add numpy-style docstrings to the public functions and classes in the Simulation, Normalization, Metrics, and Mesh modules. The docstrings should follow the numpydoc format and include the following sections:

Summary: A brief one-line summary of the function/class.
Parameters: Description of each parameter with its type, name, and description.
Returns: Description of the return value with its type and description.
Raises: Description of the exceptions that can be raised.
Examples: Examples of how to use the function/class.

We need to add docstrings to the following modules:

[ ] Simulation
[ ] Normalization
[ ] Metrics
[ ] Mesh

Thank you for your contribution!

Hi @Joao-L-S-Almeida,

Can you check mesh module: https://github.com/IBM/simulai/commit/9d4823210dd36d704e09bc55a984051dddfeb3e7

That is alright, @TarikKaanKoc. Thank you.

@Joao-L-S-Almeida

Can you check simulation module: https://github.com/IBM/simulai/commit/c5cfa1cf0041dd79a512bad491810175fdfa0640


[OoB_5.8]: export to NUCLEO_F429ZI using uvision5 failure

mbed export -i uvision5 -m NUCLEO_F429ZI

open project file in uvision5 - error
Error: device not found
Device: STM32F429ZI
Vendor: STMicroelectronic

After I manually choose different device of "STM32F429ZITx" the linking failed with error
.\BUILD\mbed-os-example-sockets.axf: error: L6050U: The code size of this image (104240 bytes) exceeds the maximum allowed for this version of the linker.

@theotherjimmy .. bump!

@zvikas Get a license, and that'll fix your problem.

Thanks, issue solved.


Fixed a type in NearbyParentFragment.java where significantly was wri…

…tten instead of slightly while adding a log using Timber
Description (required)
Fixes #3429 Typo in NearbyParentFragment.java -> onLocationChangedSlightly() method.
What changes did you make and why?
Wrote slightly in place of significantly because otherwise when the location is changed slightly,  it will report as  Location changed significantly in the logs which can cause debugging problems in the future.
Tests performed (required)
None

Thanks for your first time contribution @Glitch101 :)

Glad I could help. This is rather very much fun :)


Restructure project scaffolding

This commit modifies the directory scaffolding, but makes minimal alterations to the underlying codebase. These changes to the structure of the codebase are made to better-align this project with common software design patterns employed in full-stack web applications.

This pull-request request cannot be merged until #4 is reviewed first (and, ideally, merged as well).


High Availability

Support high availability installation of spire-server to support node outages and upgrade with zero downtime. HA would support only external databases and multiple pods with anti affinity rules to spread pods across nodes. Database in a container would be a great step forward in portable example of this deployment.
Some changes that need to happen:

replace the statefulset with a deployment
separate controller manager from spire server pod as they have different availability concerns

Spire-controller-manager can't be separated unfortunately as it needs access to the spire-server.sock.
We might do a trick to run it just on one of the replicas until spire-controller-manager has another way of connecting to the server.sock.

Create a leader election so only one operates.

Could you file an issue for that on the spire-controller-manager repo and reference it here?

If you change replica > 1 today, spire server stops working. We need better HA support. In general, spire-server needs to move towards stateless operation without bagge of a controller or sqlite. Moving to a deployment w/replicaset encourages that.

A integration test would be a better way to prove it does work. I don't know the details, but replica>1 caused outage on our cluster.

@drewwells Could you have a look at either the postgres or the mysql example?
Using that example you should be able to increase the number of replicas.
Please let us know if that works. Hopefully that helps figuring out the difference with your current attempt. Based on that we might find a way to prevent the misconfiguration in this chart.

Regardless of database, my concern is running multiple spire-controller-managers. The first comment noted that a spire-controller-manager ticket was needed here. Unless there are plans to build consensus across multiple stateful pods like etcd can do, we should drop the statefulset and use a deployment.

The spire-controller-manager itself takes a Kubernetes lock to prevent multiple from acting at once. So, I believe that part is working today.
The statefulset is currently required to persist the intermediate CA's for the individual server. If the statefulset members are spread across multiple nodes using antiaffinity, it should still be HA.


Fix EOF error when ngsi-go-config.json is empty

Proposed changes
This PR fixes EOF error when ngsi-go-config.json is empty.
Types of changes
What types of changes does your code introduce to the project: Put an x in the boxes that apply

[X] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Update only documentation, not any source code.

Checklist
Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of
them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before
merging your code.

[X] I have read the CONTRIBUTING doc
[X] I have signed the CLA
[X] I have added tests that prove my fix is effective or that my feature works
[ ] I have added necessary documentation (if appropriate)
[ ] Any dependent changes have been merged and published in downstream modules

Further comments
N/A

Coverage remained the same at 100.0% when pulling 28dbf1eed98c0c5e426863d9d32c138d75d3a17b on fisuda:fix/end_of_file into 440ea8898e9b361456607133f1208d51701a83cf on lets-fiware:main.


Any license?

Is there any license tat applies to this library? It is listed in Boost Library Incubator. Do you intend to distribute it under Boost Software License 1.0?

It is boost licensed which is stated at the top of each header.

Oh, ok. How about adding the contents in the root directory? (https://github.com/pfultz2/Tick/pull/17)
GitHub recognizes it as special file and will give a nice summary to potential users.


After entering the command line, the program keeps running without any result.

i can not get the result files when run the tm-vec search for two days, the device is gpu.

Hi, you'll need to give more detail on what you are running. How many
sequences are you inputting? And did you try the tutorial?
On Mon, Jan 1, 2024 at 10:23 PM Aurorajwy @.***> wrote:

i can not get the result files when run the tm-vec search for two days,
the device is gpu.
—
Reply to this email directly, view it on GitHub
https://github.com/flatironinstitute/deepblast/issues/152, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AA75VXOAZW7VL5VVJL7LDWTYMN4UPAVCNFSM6AAAAABBJQLEZ2VHI2DSMVQWIX3LMV43ASLTON2WKOZSGA3DCOJQGMYTSMQ
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

I used just one sequence for testing. I solved the problem while using CPU. But there is one more question I would like to ask, what is the data contained in the .npy file that I get. How to output the sequences after comparison  by deepblast in the results?

Hi, those contain the vector embeddings, which can be used for downstream
ML / search
On Tue, Jan 2, 2024 at 7:40 AM Aurorajwy @.***> wrote:

I used just one sequence for testing. I solved the problem while using
CPU. But there is one more question I would like to ask, what is the data
contained in the .npy file that I get. How to output the sequences after
comparison by deepblast in the results?
—
Reply to this email directly, view it on GitHub
https://github.com/flatironinstitute/deepblast/issues/152#issuecomment-1873978834,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA75VXI5OHNT2ADU6JKCOL3YMP55FAVCNFSM6AAAAABBJQLEZ2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNZTHE3TQOBTGQ
.
You are receiving this because you commented.Message ID:
@.***>

Thank you very much for your answer. I would also like to ask, following the tutorial, I created a bagel.fa to do a deepblast with itself, why can't I generate alignments files, the result shows as no valid comparison. following：

Hmm, there should be alignments. Can you paste the command that you used
and the full error message? You may need to specify the alignment flag.
I’ll try to reproduce the error
On Wed, Jan 3, 2024 at 4:10 AM Aurorajwy @.***> wrote:

Thank you very much for your answer. I would also like to ask, following
the tutorial, I created a bagel.fa to do a deepblast with itself, why can't
I generate alignments files, the result shows as no valid comparison.
following：
image.png (view on web)
https://github.com/flatironinstitute/deepblast/assets/124338511/a8dd1f11-dd30-4389-97c4-682f9fd80048
—
Reply to this email directly, view it on GitHub
https://github.com/flatironinstitute/deepblast/issues/152#issuecomment-1875045552,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA75VXNGFNNRMHD3IP7G5OLYMUN6XAVCNFSM6AAAAABBJQLEZ2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNZVGA2DKNJVGI
.
You are receiving this because you commented.Message ID:
@.***>

the command is :tmvec-search --query bagel.fasta --tm-vec-model tm_vec_cath_model.ckpt --tm-vec-config tm_vec_cath_model_params.json --database bagel_database/db.npy --metadata bagel_database/meta.npy --database-fasta bagel.fasta --database-faidx bagel.fai --deepblast-model deepblast-v3.ckpt --k-nearest-neighbors 1 --output-format alignment --output alignments.txt --output-embeddings test3.npy
the error massage is :

Is it possible  the command inputed incorrectly? @mortonjt

hi, i tried deepblast again. I change the model of deepblast to deepblast-pt-18.ckpt according to  the tutorial, I re-run the deepblast command, but it produces the following error.

hope for you reply  this error.

Hi, I've rerun the command on my end, had to change a few things to match the tutorial files (and to make it run within 1 hour)
head -n 4 bagel.fa > query.fa

tmvec-search --query query.fa --tm-vec-model tm_vec_cath_model.ckpt --tm-vec-config tm_vec_cath_model_params.json --database bagel_database/db.npy --metadata bagel_database/meta.npy --database-fasta bagel.fa --deepblast-model deepblast-v3.ckpt --k-nearest-neighbors 1 --output-format alignment --output alignments.txt --output-embeddings test3.npy

The alignments were generated as follows
Tricyclic_peptide_MS-271  CLGVGSCNNFAGCGYAIVCFW
Tricyclic_peptide_MS-271  CLGVGSCNNFAGCGYAIVCFW

Capistruin  MVRLLAKLLRSTIHGSNGVSLDAVSSTHGTPGFQTPDARVISRFGFN
Capistruin  MVRLLAKLLRSTIHGSNGVSLDAVSSTHGTPGFQTPDARVISRFGFN

I'm not sure what issue you are running into.  It would help to output the installed pip and conda packages pip freeze > requirements.txt and conda env export > env.yaml


Bridge Console Error Logging Exception

There seems to be a bug in the bridge console error logging where the internal error method is not defined. Overall the bridge console is too invasive and should have a way to turn it off completely. The work around mentioned in the forums to replace calls using a startup method cause messages to be double output. It also appears the console wires up a global window error handler. In the case of this issue this causes the wrong exception message to be output to the browser console.
Steps To Reproduce
See attached repro project.
Bridge16Test.zip

Compile and open the demo.html
Execute Bridge16Test.Bridge16Test.DoSomething() from the browser console.

Expected Result
Error message should be printed to the console.
Actual Result
Exception is thrown.
Uncaught ReferenceError: error is not defined
at Function.con.error.Bridge.global.console.error (bridge.console.min.js:8)
at Function.Bridge16Test.Bridge16Test.DoSomething (Bridge16Test.js:17)
at :1:27

After reviewing this a little more it appears the issues is in line 74 of birdge.console.js. The global console.error method is being overwritten.
if (con && con.error) {
                        Bridge.global.console.error = function (msg) {
                            error(msg);
                            Bridge.Console.error(msg);
                        }
                    }

If you are using Bridge 16.0.0-beta or above, you can "turn the Consol off" by just removing the bridge.console.js file from your .html page.
Can you share a Deck demonstrating the Uncaught ReferenceError: error is not defined you noted above?
Hope this helps.

Repro is here https://deck.net/eaf7e5c601a0baeae7ab686c176f9951
It appears that it only occurs when overwriting the Bridge.Console.error function. Again probably stemming from the fact that the init is overwriting the native console.error.
Turning off the console by removing bridge.console.js does not seem to be possible when combining scripts via the "combineScripts": true setting in the bridge.json file.
Ideally there should be some option to allow the original console.error to be maintained as well as prevent automatic wiring up of the window.error event listener.

If you're combining scripts, you can explicitly exclude bridge.console.js using the following resources config:
https://github.com/bridgedotnet/Bridge/issues/1994#issuecomment-296754941
The overrides you're using are not supported, and we do not recommend using.
If you want to prevent the automatic wiring up of the window.error event listener, just remove bridge.console.js.
Hope this helps.

Yes that helps greatly. I was able to get the desired behavior using this solution coupled with the following override to ensure most calls to Bridge.Util.Console don't result in an error. Thanks for your help.
Script.Write("Bridge.Console = console");

Looks like there is a defect here that we didn't see on the first pass. We are investigating.

A PR has been submitted with a fix. Once testing is complete, we will merge into the master branch and the fix will be available with the next public release.


#links point to draft-0-10-0 examples

Before submitting a pull request, please make sure the following is done...

Fork the repo and create your branch from master.
If you've added code that should be tested, add tests!
If you've changed APIs, update the documentation.
Ensure that:

The test suite passes (npm test)
Your code lints (npm run lint) and passes Flow (npm run flow)
You have followed the testing guidelines

If you haven't already, complete the CLA.

Please use the simple form below as a guideline for describing your pull request.
Thanks for contributing to Draft.js!

Summary
[...]
Test Plan
[...]

Just saw this - awesome! Will land as part of the 0.10.0 release.


WIP: Better implementation for template

I think Bamboo need to work automatically with the environment variables and with more than one bridge ( haproxy, nginx, iptables )

Bamboo_Enable=y    -> can be omited ( usefull for disable all the app )
Bamboo_Haproxy_enable=y                -> can be omited
Bamboo_Haproxy_http=8000               -> can be omited
Bamboo_Haproxy_https=8001             -> default disabled
Bamboo_Haproxy_tcp_8000=8002      -> optional
Bamboo_Iptables_enable=y   -> default no
Bamboo_Iptables_udp_8000=8003-> optional

What do you think about that? in any case i'll work on this problems for my needs
PR will come fast

Agree, this is definitely a good path. Probably related to #114 ?
Do you have some sort of solution that could make existing API more generic?

First we need to refactor all directory of this project ... it's little tricky :-1:
For me the Templates class is a Tools not a Service same for the execCommand let's separate this in Tools folder ( why not of the same ocasion remove Main dir who is really ugly same for the qzk dir )
The event handlers are only allowed to handle and dispatch the events
the events "APP UPDATE" need to be send to all registered "bridge". who will carry  all the config and service reboot job

maybe it close #84 too

Ah, you are using iptables for UDP.  I like your solution. Based on what you suggested, I restructured a bit so that it ensures that we can configure the order of those services configuration (some may have priority):
{
   // each app may have multiple services
   // this is at Marathon App level
    "services": [{
        // Get servicePort information from marathon apps API
        "servicePort": 8080,
        // Get protocol information from Marathon API, default to HTTP
        "protocol": "tcp",
        // support number of bridges
        "bridges": {
            // backwards compatible  (auto migrate the ZK data to this format)
            "haproxy": {
                "enabled": true,
                "port": 443,
                "acl": "htr(host) -i blabla.com"
            },
            // if we are going to implement a specific handler?
            "nginx": {
                "enabled": true,
                "port": 443,
                "serverName": "blabla.com"
            },
           // something I would like to support
            "consul": {
                "enabled": ture
            },
           // something I would like to support
           "etcd": {
                "enabled": true
           }
        }
    }, {
        "servicePort": 9090,
        "protocol": "udp",
        "bridges": {
            "iptables": {
                "enabled": true,
                "port": 8083
            },
            "nginx": {
                "enabled": false,
                "custom_key": "value"
            },
            "custom": {
                "enabled": false,
                "custom_key": "value"
            }
        }
    }]
}

@hyper-carrot @MiLk @mbabineau  Any comments on the multiple services port and type of protocol support?
@gomes @alexanderjardim Any comments on the Nginx bridge support?

@veverjak @xiaods I think you guys were asking for better multiple services port support too, so it would be nice to get some opinions.

While I'm working on #109 for the next release, it would be good to find a stable API so that it unlocks a lot of feature requests. Thanks for all the feedbacks!

i am only to way, come on, this is amazon things. :+1:

It's so cool! How to make the services support multiple ports?

It's so cool!   I see that you shift the core of configuration from single proxy to services. That is a significant and great change.

@activars ad JSON you posted earlier, I am little confused, where would you specify this service logic?
Can Marathon app have such info in itself?

Your proposal only affect templateData.Services and not templateData.Apps, right?
It doesn't change anything regarding the support of multiple service ports.
I should be able to specify one ACL for each service port my app have.

No my proposal is for add the possibility if multi port and multi bridge in the same app !

You should not have to specify any port in Bamboo, Marathon gives you everything.

it's not true marathon not give to you the outside port !
for me it's better to setup per service config
{
    "haproxy": {
        "enabled": true,
        "ports": [
            {type:"http","port":"80", "marathon_port":"8082","acl": "htr(host) -i blabla.com"},
            {type:"tcp","port":"81", "marathon_port":"8082"},
            {type:"tcp","port":"82", "marathon_port":"8081"}
        ]
    },
    "iptables": {
        "enabled": true,
        "udp_ports": {
            "83": "8083"
        }
    }
}

I like @ekozan 's proposal!

You have the outside port chosen by Marathon in https://mesosphere.github.io/marathon/docs/rest-api.html#get-/v2/apps and in App.ServicePort.
Look at the example provided in the marathon repo.

the service Port is Unique per App so for example if you set 2 app with the same service port
{"message":"Requested service port 9000 conflicts with a service port in app /web/authGate"}
so it's can be an good way for avoid port collision for tcp and udp but not for http/https

Meanwhile, this is the new v0.2.11 release.
https://github.com/QubitProducts/bamboo/releases/tag/v0.2.11
Unless there are major bugs, I shall focus on the next release for longer term multiple services and multiple bridge support.
I am preparing a list of requirement for addressing this API change, so we have a common ground to discuss possible implementation.

I would change "enabled" to "public". The issue becomes do we want haproxy routing to to the WAN.

any update?

I think #180 actually helps with this a lot. Not sure it goes as far as you might like, but it has features that seem to help with your use case here.