Inconsistency in combined_maxdose & Significant_Genes_by_Treatment

Hello,
I have been trying to replicate your pipeline with your data in my R and have found two stumbling blocks I'm hoping you might be able to help me with:

the values produced seems to be a little different.  A good example is Significant_Genes_by_Treatment.  In your output you have the following values:

Treatment
Direction
Gene_number
mean_abslog2fc
median_abslog2fc
Significance_Level

Nifedipine
Down
470
0.797468
0.785502
0.1

Nifedipine
Up
448
0.66246
0.625408
0.1

Dofetilide
Down
231
0.678229
0.636184
0.1

Dofetilide
Up
194
0.695115
0.635155
0.1

Isoproterenol
Down
21
0.817671
0.754112
0.1

Propranolol
Down
19
1.152384
1.175495
0.1

Isoproterenol
Up
11
0.646818
0.575535
0.1

Propranolol
Up
10
0.60611
0.502549
0.1

Where as I am getting:

Treatment
Direction
Gene_number
mean_abslog2fc
median_abslog2fc
Significance_Level

Nifedipine
Down
484
0.964297
0.898591
0.1

Nifedipine
Up
456
0.811728
0.661514
0.1

Dofetilide
Down
232
0.748158
0.677118
0.1

Dofetilide
Up
210
0.984976
0.730503
0.1

Isoproterenol
Down
20
0.927427
0.760468
0.1

Propranolol
Down
16
1.551687
1.55746
0.1

Isoproterenol
Up
13
0.691197
0.622255
0.1

Propranolol
Up
6
0.743561
0.523919
0.1

There are (perhaps unsurprisingly) some version differences in the packages between my system and the system you've used.  Have you tried this on any other versions of R/with other packages and are able to point me in the direction of a likely cause? I am trying to avoid going through 100 packages one by one and finding the older version!

In script four line 24 I get an error relating to there not being enough columns for the headers provided.  It is in response to this code:
counts <- gather(normcounts, "X", "NormCounts")
names(counts) <- c("Gene", "header", "NormCounts")

If I change it to the below it seems to be working:
counts <- tidyr::gather(normcounts, header, value, -X)
I am not sure if this is also a version issue?
Any hits and tips would be much appreciated :)
Many Thanks,
Grace

Hi John,
Thank you for the advice.  If I install the old DESeq2 I have all sorts of other problems with versions.  How do you feel about using the new DESeq2 without the lfcShrink function?
Thanks,
Grace

Hi John,
Thank you for this I will give it a go!
Best Wishes,
Grace

Hi John,
Did you have any advice on the above error?
Thank you,
Grace

Good morning. I missed this 5 days ago.
You will need to replace referent and trtment with the values of the group variable you defined for which you want to make a comparison. Or assign them before running the contrast statements.
For example:
shrunken <- lfcShrink(dds, contrast = c("group", "Dofetilide", "VEHICLE")) will compare Dofetilide to VEHICLE.
In the scripts, group was defined as any dose of the treatment. This means the comparison will be for all doses of treatment vs. the control.  I need to look further, but this appears to be a mistake on my part. I was intending these contrasts to examine max dose of the treatments.
This would require replacing line 23 with the following: qc_hash$group <- factor(paste0(qc_hash$group,"_",qc_hash$DOSE)) and line 48 with treatment$control <- "VEHICLE_0"
Then the contrast statement would change to: `contrast = c("group", "Dofetilide", "VEHICLE_0")
Sorry for the confusion.

Hi John,
I'm afraid I then get a new error:
Error in cleanContrast(object, contrast, expanded = isExpanded, listValues = listValues,  :
Dofetilide and VEHICLE should be levels of group such that group_Dofetilide_vs_Dofetilide_0.1 and group_VEHICLE_vs_Dofetilide_0.1 are contained in 'resultsNames(object)'
Maybe I'm missing something?
qc_hash$group <- factor(paste0(qc_hash$group,"_",qc_hash$DOSE))
dds = DESeqDataSetFromMatrix(countData = qc_counts,
colData = qc_hash,
design = ~ group)
dds <- DESeq(dds, parallel = TRUE)
res <- results(dds)
shrunken <- lfcShrink(dds, contrast = c("group", "Dofetilide", "VEHICLE_0"))
non_shrunken <- results(dds, contrast = c("group", "Dofetilide", "VEHICLE_0"))
non_shrunken@listData$log2FoldChange <- non_shrunken@listData$log2FoldChange
Best Wishes,
Grace

Hi Grace,
Please see below. I've rewritten the code to address two issues.

The way that the DESeq() comparison was made originally was actually comparing all doses of one of the drugs to the control to evaluate for differences. This has been changed by how the group variable is defined.  The new line for this is qc_hash$group <- paste0(qc_hash$Treatment, "_", round(qc_hash$numeric_dose,0)).  NOTE: This causes the number of DEGs to be different from the examples.
The lfcShrink() changes made to DESeq2 where we really want L2FC values from lfcShrink(), but pvalues from results().  I've written a function DESeq2_sContrast() that does the following:

Create a MA Plot showing the Differentially expressed genes for the comparions
Use the lfcShrink() function to get the l2fc values
Use the results() function to get pvalues, adj.pvalues etc..
Combined into a dataset for all genes tested for that comparison and write a .csv
Return that dataset to an object in memory

Thanks for bringing this to my attention.
Best,
john
package.list <- c("DESeq2", "BiocParallel", "dplyr", "ggplot2")
if (length(setdiff(package.list, rownames(installed.packages()))) > 0) {
  install.packages(setdiff(package.list, rownames(installed.packages())))
}
lapply(package.list, require, character.only = TRUE)
setwd("C:/Users/jshou/Google Drive/TempOSeq_Pipeline/ht_cba_manuscript")

load("Output Files/Cleaned_data/qc_counts.RData")
load("Output Files/Cleaned_data/qc_hash.RData")

qc_hash$group <- paste0(qc_hash$Treatment, "_", round(qc_hash$numeric_dose,0))
qc_hash$group <- factor(qc_hash$group)
## group was defined as one level up from the lowest (replicate) ##
## you can define another level to test if you like ##
## this experimental design still assumes that there are different media controls on each Index.Set ##
dds = DESeqDataSetFromMatrix(countData = qc_counts,
                             colData = qc_hash,
                             design = ~ group)

system.time(dds <- DESeq(dds, parallel = TRUE))
save(dds, file = "Output Files/DESeq2 dds Files/full_dds.RData")
normcounts <- counts(dds, normalized = TRUE)
write.csv(normcounts, file = "Output Files/Cleaned_data/normcounts.csv")
save(normcounts, file = "Output Files/Cleaned_data/normcounts.RData")

### This is needed for the following function ###
results_dds <- results(dds)

DESeq2_sContrast <- function(deseq_ds = dds, trt, ref, trt_label=trt, ref_label=ref, results_ds = results_dds) {
  testshrunk<-lfcShrink(deseq_ds, contrast = c("group",trt,ref), res = results_ds) ## we want shrunken l2fc ###
  test <- results(deseq_ds, contrast = c("group",trt,ref),parallel = T)  ### everything else is from un-shrunken ###
  test@listData$log2FoldChange <- testshrunk@listData$log2FoldChange  ### replace L2fc estimates with shrunken ones ###
  testdf<-as.data.frame(test);  total<- sum(testdf$padj<.1,na.rm=T)
  testdf$trt <- paste0(trt,"_vs_",ref)
  testdf$Treatment <- paste0(trt_label, " vs. ", ref_label)
  testdf$gene<-rownames(testdf); testdf$id<-paste0(testdf$gene,"/",testdf$Treatment)
  rownames(testdf)<-NULL
  write.csv(testdf,file = paste0("Output Files/MaxDoseContrasts/", trt,"_",ref,".csv"))
  p <- plotMA(test,alpha=0.10, main=paste0(trt_label, " vs. ", ref_label," DEGs = ",total), cex=1,ylim=c(-4,4),cex.main=.9)
  print(p)
  return(testdf)
}
## This function will:
# 1) Create a MA Plot showing the Differentially expressed genes for the comparions
# 2) Use the lfcShrink() function to get the l2fc values
# 3) Use the results() function to get pvalues, adj.pvalues etc..
# 4) Combined into a dataset for all genes tested for that comparison and write a .csv
# 5) return that dataset to an object in memory (i.e. - Dof_10_DEG)
Dof_10_DEG <- DESeq2_sContrast(deseq_ds = dds,
                               trt = "Dofetilide_10",
                               ref = "VEHICLE_0",
                               trt_label = "Max.Dose Dofetilide",
                               ref_label = "Control",
                               results_ds = results_dds)

### feel free to put a wrapper around it for printing PDF's of the graphs ###
pdf(file = "test.pdf", height = 10, width = 10)
par(mfrow = c(2,2)) #set graphs to be a 2 by 2 grid
myds1 <- DESeq2_sContrast( trt = "Dofetilide_10",
                  ref = "VEHICLE_0")
myds2 <- DESeq2_sContrast( trt = "Isoproterenol_10",
                  ref = "VEHICLE_0")
myds3 <- DESeq2_sContrast( trt = "Nifedipine_10",
                  ref = "VEHICLE_0")
myds4 <- DESeq2_sContrast( trt = "Propranolol_10",
                  ref = "VEHICLE_0")
dev.off()

> sessionInfo()
R version 3.5.0 (2018-04-23)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)

Matrix products: default

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252    LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                           LC_TIME=English_United States.1252

attached base packages:
[1] parallel  stats4    stats     graphics  grDevices utils     datasets  methods   base

other attached packages:
 [1] ggplot2_3.0.0               dplyr_0.7.6                 DESeq2_1.20.0               SummarizedExperiment_1.10.1
 [5] DelayedArray_0.6.3          BiocParallel_1.14.2         matrixStats_0.54.0          Biobase_2.40.0
 [9] GenomicRanges_1.32.6        GenomeInfoDb_1.16.0         IRanges_2.14.10             S4Vectors_0.18.3
[13] BiocGenerics_0.26.0         RevoUtils_11.0.0            BiocInstaller_1.30.0        RevoUtilsMath_11.0.0


Add support for @Immutable on attributes

This commit add support for @Immutable annotation on entity attributes. Benefits:

lower memory consumption (no need to create copies for checking if entity is dirty or to put/read it from cache) - especially in cases where entity contains JSON documents
faster flush operation

Thanks for the PR. Did you sign the CLA?

Signed.

I added the HHH-10714 issue for this PR.

Thanks for contributing. I replaced this PR with this one which adds some minor adjustments.


Replace this with native provider once IamMembers are fixed in google-native

see https://github.com/pulumi/pulumi-google-native/issues/836

https://github.com/tabetalt/conf/blob/f451bd90b004fc37491ef51a57e5df67f5316986/stacks/common/repositories-with-containers.ts#L38-L43

This issue was generated by todo-issue based on a TODO comment in f451bd90b004fc37491ef51a57e5df67f5316986. It's been assigned to @cobraz because they committed the code.

Replace this with native provider once IamMembers are fixed in google-native
see https://github.com/pulumi/pulumi-google-native/issues/836

https://github.com/tabetalt/conf/blob/f451bd90b004fc37491ef51a57e5df67f5316986/utils/infra-components/src/github-access.ts#L110-L114

This comment was generated by todo-issue based on a TODO comment in f451bd90b004fc37491ef51a57e5df67f5316986. It's been assigned to @cobraz because they committed the code.

Replace this with native provider once IamMembers are fixed in google-native
see https://github.com/pulumi/pulumi-google-native/issues/836

https://github.com/tabetalt/conf/blob/f451bd90b004fc37491ef51a57e5df67f5316986/utils/infra-components/src/github-access.ts#L98-L102

This comment was generated by todo-issue based on a TODO comment in f451bd90b004fc37491ef51a57e5df67f5316986. It's been assigned to @cobraz because they committed the code.


Bugs from package versions fixed.

An extra specification of the package version (of mathcomp) is added to the "opam switch create" command in README. Installation with this command will put the code through.
Fixing Issue #1

Thx !


[BUGFIX] [WIP] Reenable fwd conv engine 5 on test_group_conv2d_16c

Description
PR #20635, which began using the cuDNN v8 backend API for Convolution ops, includes the following line to avoid test_gluon_gpu.py::test_group_conv2d_16c failures that began occurring coincident with the PR:
@with_environment('MXNET_CUDNN_DISABLED_CONV_FWD_ENGINES', '5')  # eng:5 causes test failure on M60

This PR will remove that line by providing a different implementation of the "convolution plan cache" introduced with PR #20635 that is compatible with convolution engine 5.  The steps of this PR will be:

Reenable convolution engine 5, and demonstrate a return of test_group_conv2d_16c failures, then
Add the upgrade to the convolution plan cache so that test_group_conv2d_16c passes even with engine 5 use

Further detail:
The cuDNN v8 backend allows one to bypass a lot of CPU processing that might precede kernel launch by first building up and finalizing a convolution execution plan.  The plan, which includes a choice of convolution engine and 'knob settings', is then executed efficiently by the call cudnnBackendExecute(cudnn_handle, plan, ...).  PR #20635 introduced a cache of plans so that autotuning does not need to be repeated for identically-parameterized convolutions.  Thus, like convolutions are handled by the same plan even if they exist multiple times in a model or are handled by different GPU workers.
The issue that was discovered for convolution engine 5 is that it caches a cuDNN handle provided during the plan's construction, and does not consider the handle passed as an argument of cudnnBackendExecute().  The result is that the engine's kernels are launched into the stream of the cached handle, and this would be the incorrect stream if the GPU worker executing the plan is different from the one that created the plan.  Without the proper stream synchronization, incorrect results may follow.
The contribution of this PR is to effectively include a GPU worker's cudnn handle as part of the key used in the cache lookup.  One aspect of the fix though is that if there's a plan cache miss, a plan made by a different worker for the same convolution can be 'cloned' with the proper handle without repeating the autotuning.
Checklist
Essentials

[X] PR's title starts with a category (e.g. [BUGFIX], [MODEL], [TUTORIAL], [FEATURE], [DOC], etc)
[ ] Changes are complete (i.e. I finished coding on this PR)
[X] All changes have test coverage
[X] Code is well-documented

Step 1 is complete: with engine 5 reenabled, test_group_conv2d_16c fails in https://jenkins.mxnet-ci.com/blue/organizations/jenkins/mxnet-validation%2Fcentos-gpu/detail/PR-21104/1/pipeline/142.
[2022-07-22T05:08:33.227Z] >       raise AssertionError(msg)
[2022-07-22T05:08:33.227Z] E       AssertionError:
[2022-07-22T05:08:33.227Z] E       Items are not equal:
[2022-07-22T05:08:33.227Z] E       Error 92150.218750 exceeds tolerance rtol=1.000000e-05, atol=1.000000e-06 (mismatch at least 0.012555%).
[2022-07-22T05:08:33.227Z] E       Location of maximum error: (3, 13, 36, 16), a=-0.01365239, b=1.00000000

Hey, @mk-61, I think you're the best one to appreciate the intent of this PR and approve it, having supplied the original cuDNN v8 backend support.  Could you do a quick review?  Thanks!
The existing failure with the windows-gpu job I have diagnosed as being unrelated to this PR.  That problem I'm exploring fixes for in separate PR#21107, which I intend to get merged to master, then merged to this PR before final acceptance.

LGTM


Employee scheduling - add constraint that someone works at most two shifts if they are consecutive

I want to make shifts more granular, so I divided them into half-shifts (people are still supposed to work one shift though, which means two consecutive half-shifts).
The problem with this is that now I have trouble encoding constraint for consecutive half shifts.
If I drop requirement of consecutive half-shifts I only need to change line
model.Add(sum(shifts[(n, d, s)] for s in all_shifts) <= 1)
To have 2 instead of 1.
I tried encoding requirement for consecutive shifts:
(sum(shifts[(n, d, s)] for s, __ in all_shifts) <= 1)
                  or (max([shifts[(n, d, s)] + shifts[(n, d, s+1)] for s in all_shifts[:-1]]) == 2)

But it doesn't work (it doesn't find any solution when there obviously is one). I also tried using AddOr with these two conditions, but then I get

TypeError: NotSupported: model.GetOrMakeBooleanIndex(((((((shift_n0d0s0) + shift_n0d0s1) + shift_n0d0s2) + shift_n0d0s3) + shift_n0d0s4) + shift_n0d0s5) <= 1)

Which seems to come from old condition, and not the one I wrote.

Laurent Perron | Operations Research |<EMAIL_ADDRESS>| (33) 1 42 68 53
00
Le lun. 14 oct. 2019 à 10:40, Jakub Bartczuk<EMAIL_ADDRESS>a
écrit :

I want to make shifts more granular, so I divided them into half-shifts
(people are still supposed to work one shift though, which means two
consecutive half-shifts).
The problem with this is that now I have trouble encoding constraint for
consecutive half shifts.
If I drop requirement of consecutive half-shifts I only need to change line
model.Add(sum(shifts[(n, d, s)] for s in all_shifts) <= 1)
To have 2 instead of 1.
I tried encoding requirement for consecutive shifts:
(sum(shifts[(n, d, s)] for s, __ in all_shifts) <= 1)
or (max([shifts[(n, d, s)] + shifts[(n, d, s+1)] for s in all_shifts[:-1]]) == 2)
But it doesn't work (it doesn't find any solution when there obviously is
one). I also tried using AddOr with these two conditions, but then I get
TypeError: NotSupported: model.GetOrMakeBooleanIndex(((((((shift_n0d0s0) +
shift_n0d0s1) + shift_n0d0s2) + shift_n0d0s3) + shift_n0d0s4) +
shift_n0d0s5) <= 1)
Which seems to come from old condition, and not the one I wrote.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/google/or-tools/issues/1643?email_source=notifications&email_token=ACUPL3PFSMNZDKQRKFMDRETQOQWALA5CNFSM4JAMFKK2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HRQ2WUA,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACUPL3LCYZZOI2GSNPPLBM3QOQWALANCNFSM4JAMFKKQ
.

You cannot add python constructs (min, max, or, and, if, then) in a
constraint. It makes no sense, as they are interpreted by python before
being added to the solver.
To say that you cannot work 3 consecutive shifts, take all sequence of 3
shifts, and add
model.AddBoolOr([shift(i).Not(), shift(i + 1).Not(), shift(i + 2).Not()])
Laurent Perron | Operations Research |<EMAIL_ADDRESS>| (33) 1 42 68 53
00
Le lun. 14 oct. 2019 à 10:54, Laurent Perron<EMAIL_ADDRESS>a écrit :

Laurent Perron | Operations Research |<EMAIL_ADDRESS>| (33) 1 42 68
53 00
Le lun. 14 oct. 2019 à 10:40, Jakub Bartczuk<EMAIL_ADDRESS>a
écrit :

I want to make shifts more granular, so I divided them into half-shifts
(people are still supposed to work one shift though, which means two
consecutive half-shifts).
The problem with this is that now I have trouble encoding constraint for
consecutive half shifts.
If I drop requirement of consecutive half-shifts I only need to change
line
model.Add(sum(shifts[(n, d, s)] for s in all_shifts) <= 1)
To have 2 instead of 1.
I tried encoding requirement for consecutive shifts:
(sum(shifts[(n, d, s)] for s, __ in all_shifts) <= 1)
or (max([shifts[(n, d, s)] + shifts[(n, d, s+1)] for s in all_shifts[:-1]]) == 2)
But it doesn't work (it doesn't find any solution when there obviously is
one). I also tried using AddOr with these two conditions, but then I get
TypeError: NotSupported: model.GetOrMakeBooleanIndex(((((((shift_n0d0s0)

shift_n0d0s1) + shift_n0d0s2) + shift_n0d0s3) + shift_n0d0s4) +
shift_n0d0s5) <= 1)

Which seems to come from old condition, and not the one I wrote.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/google/or-tools/issues/1643?email_source=notifications&email_token=ACUPL3PFSMNZDKQRKFMDRETQOQWALA5CNFSM4JAMFKK2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HRQ2WUA,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACUPL3LCYZZOI2GSNPPLBM3QOQWALANCNFSM4JAMFKKQ
.

My problem is that I need employees to work one shift OR two consecutive shifts.
I don't see how to do that because this condition is of the form
cond_1 OR (cond_2_1 AND cond_2_2) OR ... OR (cond_n_1 AND cond_n_2)
Which makes a problem since I don't see how I can add conjunction of alternatives or alternative of conjunctions.

You can create intermediate boolean variables.
AddBoolAnd([cond_2_1, cond_2_2]).OnlyEnforceIf(cond21_22)
and use them in AddBoolOr


Locations of apps in the filesystem

Signed-off-by: Jorma Virkkunen<EMAIL_ADDRESS>

This document is somewhat concise. The justification for it is that quite often the customers ask questions about the app data locations in Jolla Care. They want to save some valuable data by using the command line when nothing else helps.

Looks good to me, however maybe this link could be added same way as other links, so that it is embedded. This directory contains SQL database ("commhistory.db*") of text messages. See https://jolla.zendesk.com/hc/en-us/articles/203569178 .

I have fixed this.


[Bug] Class 'Rinvex\Testimonials\Events\AddressSaved' not found Laravel 6

On $addressModel = $location->addresses()->firstOrCreate($address);

{
"message": "Class 'Rinvex\Testimonials\Events\AddressSaved' not found",
"exception": "Symfony\Component\Debug\Exception\FatalThrowableError",
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasEvents.php",
"line": 205,
"trace": [
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasEvents.php",
"line": 180,
"function": "fireCustomModelEvent",
"class": "Illuminate\Database\Eloquent\Model",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php",
"line": 708,
"function": "fireModelEvent",
"class": "Illuminate\Database\Eloquent\Model",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php",
"line": 679,
"function": "finishSave",
"class": "Illuminate\Database\Eloquent\Model",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOneOrMany.php",
"line": 281,
"function": "save",
"class": "Illuminate\Database\Eloquent\Model",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Support/helpers.php",
"line": 422,
"function": "Illuminate\Database\Eloquent\Relations\{closure}",
"class": "Illuminate\Database\Eloquent\Relations\HasOneOrMany",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOneOrMany.php",
"line": 282,
"function": "tap"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOneOrMany.php",
"line": 220,
"function": "create",
"class": "Illuminate\Database\Eloquent\Relations\HasOneOrMany",
"type": "->"
},
{
"file": "/var/www/app/Http/Controllers/Api/LocationController.php",
"line": 277,
"function": "firstOrCreate",
"class": "Illuminate\Database\Eloquent\Relations\HasOneOrMany",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Database/Concerns/ManagesTransactions.php",
"line": 29,
"function": "App\Http\Controllers\Api\{closure}",
"class": "App\Http\Controllers\Api\LocationController",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php",
"line": 349,
"function": "transaction",
"class": "Illuminate\Database\Connection",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php",
"line": 261,
"function": "__call",
"class": "Illuminate\Database\DatabaseManager",
"type": "->"
},
{
"file": "/var/www/app/Http/Controllers/Api/LocationController.php",
"line": 296,
"function": "__callStatic",
"class": "Illuminate\Support\Facades\Facade",
"type": "::"
},
{
"function": "update",
"class": "App\Http\Controllers\Api\LocationController",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Controller.php",
"line": 54,
"function": "call_user_func_array"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php",
"line": 45,
"function": "callAction",
"class": "Illuminate\Routing\Controller",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
"line": 219,
"function": "dispatch",
"class": "Illuminate\Routing\ControllerDispatcher",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
"line": 176,
"function": "runController",
"class": "Illuminate\Routing\Route",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 681,
"function": "run",
"class": "Illuminate\Routing\Route",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 130,
"function": "Illuminate\Routing\{closure}",
"class": "Illuminate\Routing\Router",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authorize.php",
"line": 45,
"function": "Illuminate\Pipeline\{closure}",
"class": "Illuminate\Pipeline\Pipeline",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 171,
"function": "handle",
"class": "Illuminate\Auth\Middleware\Authorize",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php",
"line": 41,
"function": "Illuminate\Pipeline\{closure}",
"class": "Illuminate\Pipeline\Pipeline",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 171,
"function": "handle",
"class": "Illuminate\Routing\Middleware\SubstituteBindings",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
"line": 59,
"function": "Illuminate\Pipeline\{closure}",
"class": "Illuminate\Pipeline\Pipeline",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 171,
"function": "handle",
"class": "Illuminate\Routing\Middleware\ThrottleRequests",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php",
"line": 43,
"function": "Illuminate\Pipeline\{closure}",
"class": "Illuminate\Pipeline\Pipeline",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 171,
"function": "handle",
"class": "Illuminate\Auth\Middleware\Authenticate",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 105,
"function": "Illuminate\Pipeline\{closure}",
"class": "Illuminate\Pipeline\Pipeline",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 683,
"function": "then",
"class": "Illuminate\Pipeline\Pipeline",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 658,
"function": "runRouteWithinStack",
"class": "Illuminate\Routing\Router",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 624,
"function": "runRoute",
"class": "Illuminate\Routing\Router",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 613,
"function": "dispatchToRoute",
"class": "Illuminate\Routing\Router",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 170,
"function": "dispatch",
"class": "Illuminate\Routing\Router",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 130,
"function": "Illuminate\Foundation\Http\{closure}",
"class": "Illuminate\Foundation\Http\Kernel",
"type": "->"
},
{
"file": "/var/www/vendor/barryvdh/laravel-cors/src/HandleCors.php",
"line": 36,
"function": "Illuminate\Pipeline\{closure}",
"class": "Illuminate\Pipeline\Pipeline",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 171,
"function": "handle",
"class": "Barryvdh\Cors\HandleCors",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
"line": 21,
"function": "Illuminate\Pipeline\{closure}",
"class": "Illuminate\Pipeline\Pipeline",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 171,
"function": "handle",
"class": "Illuminate\Foundation\Http\Middleware\TransformsRequest",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
"line": 21,
"function": "Illuminate\Pipeline\{closure}",
"class": "Illuminate\Pipeline\Pipeline",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 171,
"function": "handle",
"class": "Illuminate\Foundation\Http\Middleware\TransformsRequest",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php",
"line": 27,
"function": "Illuminate\Pipeline\{closure}",
"class": "Illuminate\Pipeline\Pipeline",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 171,
"function": "handle",
"class": "Illuminate\Foundation\Http\Middleware\ValidatePostSize",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php",
"line": 62,
"function": "Illuminate\Pipeline\{closure}",
"class": "Illuminate\Pipeline\Pipeline",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 171,
"function": "handle",
"class": "Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode",
"type": "->"
},
{
"file": "/var/www/vendor/fideloper/proxy/src/TrustProxies.php",
"line": 57,
"function": "Illuminate\Pipeline\{closure}",
"class": "Illuminate\Pipeline\Pipeline",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 171,
"function": "handle",
"class": "Fideloper\Proxy\TrustProxies",
"type": "->"
},
{
"file": "/var/www/vendor/hyn/multi-tenant/src/Middleware/EagerIdentification.php",
"line": 29,
"function": "Illuminate\Pipeline\{closure}",
"class": "Illuminate\Pipeline\Pipeline",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 171,
"function": "handle",
"class": "Hyn\Tenancy\Middleware\EagerIdentification",
"type": "->"
},
{
"file": "/var/www/vendor/hyn/multi-tenant/src/Middleware/HostnameActions.php",
"line": 75,
"function": "Illuminate\Pipeline\{closure}",
"class": "Illuminate\Pipeline\Pipeline",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 171,
"function": "handle",
"class": "Hyn\Tenancy\Middleware\HostnameActions",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 105,
"function": "Illuminate\Pipeline\{closure}",
"class": "Illuminate\Pipeline\Pipeline",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 145,
"function": "then",
"class": "Illuminate\Pipeline\Pipeline",
"type": "->"
},
{
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 110,
"function": "sendRequestThroughRouter",
"class": "Illuminate\Foundation\Http\Kernel",
"type": "->"
},
{
"file": "/var/www/public/index.php",
"line": 55,
"function": "handle",
"class": "Illuminate\Foundation\Http\Kernel",
"type": "->"
}
]
}

Not sure why it's under a different namespace in the same package..

Having same issue. I am using Laravel 6.

I believe this is missing a required package within the composer.json file.
Laravel Testimonials
An option until the Laravel Addresses package is updated would be to install the package separately.

Also running into the same issue.

Is there a stable repo with this issue fixed or could you please merge this?

Laravel 7 - still the problem is presents.
#30 - is fixing the problem :)
Merge 🥇

This is now fixed in #30

Anybody else still getting this issue on L6?


[EMB-573] Fix VMF contention

Purpose
Prevent multiple ValidatedModelForms on the same page using the same model from interfering with each other.
Summary of Changes

Add ember-changesets addon
Modify validated-model-form to use ember-changesets
Fix the methods that failed because we are returning a proxy rather than a model

Side Effects
If there's an instance of validated-model-form that uses an untested method that's relying on dot access to a model's properties, it will fail when it runs.
QA Notes
This affects only existing ValdatedModelForms. Developer apps, tokens, Registries comment card, and Collections project metadata use this and may already be in some level of testing.
Ticket

https://openscience.atlassian.net/browse/EMB-573
Reviewer Checklist

[ ] meets requirements
[ ] easy to understand
[ ] DRY
[ ] testable and includes test(s) Existing tests
[ ] changes described in CHANGELOG.md

Pull Request Test Coverage Report for Build 2544

9 of 14 (64.29%)  changed or added relevant lines in 2 files are covered.
20 unchanged lines in 3 files lost coverage.
Overall coverage decreased (-0.05%) to 70.599%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

app/settings/account/-components/connected-emails/component.ts
3
5
60.0%

lib/osf-components/addon/components/validated-model-form/component.ts
6
9
66.67%

Files with Coverage Reduction
New Missed Lines
%

lib/osf-components/addon/components/validated-model-form/component.ts
1
85.71%

app/settings/account/-components/security/component.ts
2
69.15%

app/settings/account/-components/connected-emails/component.ts
17
64.93%

Totals

Change from base Build 2539:
-0.05%

Covered Lines:
5607

Relevant Lines:
7166

💛  - Coveralls


ChangeNotifier takes too long when removing many listeners.

I need to display thousands of widgets.
If each widget contains a Tooltip, which adds and removes a listener, removing all widgets simultaneously takes longer than it should. Each tooltips removeListener call has to iterate through all listeners to find the first listener.
#64818 fixes that.

Rendering thousands of widgets with tooltips is a lot more than the framework was designed for. Can you elaborate on what you are doing?
For context, when we did something similar for our dashboard (which is a TV-sized display with a grid of hundreds of cells showing test results for each recent commit), we designed it to avoid rendering separate widgets for each cell.

Can you elaborate on what you are doing?

I'm drawing interactive class diagrams on a figma-like canvas where everything with a comment should come with a tooltip.

For context, when we did something similar for our dashboard (which is a TV-sized display with a grid of hundreds of cells showing test results for each recent commit), we designed it to avoid rendering separate widgets for each cell.

The issue is not about rendering. This is about widgets having the ability to add listeners, that will always have to be removed (In batches during their disposal!), and since removeListener is expensive that has the ability to be expensive too.
In this case, every tooltip is adding a mouse listener that is removed when it is disposed. Closing a widget with a dozen classes, but where each class may also have dozens of commented properties, leads to a noticeable lag.

In that picture I see two widgets, maybe 20. If that is being rendered using 1000s

I wasn't too clear by what I meant saying "thousands of widgets". I meant to say potential nodes in the element tree. There are no problems here.

which will lead to many issues beyond just addListener being expensive.

No, this issue is not about addListener, please read the issue statement again.

addListener is constant i.e. adding a thousand listeners will take 1000 units of time that is optimal and good
removeListener is linear i.e. removing a thousand listeners will take in the worst-case 500500 units of time that is not good and that's what this is about. The PR fixes that to also be constant and optimal.

I understand, what I'm saying is that adding a thousand listeners is fundamentally a misuse of the API. There should never be 1000 distinct things on the screen at the same time that care about a particular data point. It shouldn't matter that removing 1000 listeners is expensive, because one should never need to remove 1000 listeners.

See #64818


build(bundle-size-tests): Only replace Fluid internal versions in webpack output

The bundle-size tests were updated recently to replace the version numbers that get put into the webpack bundle, so that the bundle-size tests would not be off by 1-2 bytes when comparing PR builds to official builds.
This change makes that more robust by checking if the version number is a known Fluid internal version, and if not, the version is not replaced in the bundle.
This should fix webpack errors people see when running on test branches, because those builds get version numbers like 0.0.0-1234565.

@RishhiB Just want to confirm that this has been helping fix the webpack failure you see on test branches. If so, let's merge it in. It might not be everything needed but it's a step forward.


Offset values not working

Adding Offset fields in ProcessingConditions isn't working,
The code use:
iso_server.html
516:  setFieldOff(msgSelectionConditionId, obj, fieldsHtml);
and it should be
516: setFieldOff(msgSelectionConditionId, obj.FieldId, fieldsHtml);
EDIT: solution tested and working
tested with:
"ProcessingConditions": [
                {
                    "OffFields": [
                        {
                            "FieldId": 3
                        }
                    ],

PR done.

You are right, sorry. Closing Issue.

No problem!


Report files

This is to remind us about the issue when we will do some work on documentation.
There are two optional report files:
1 - the report file named in the ENopen function - this file will report status, warning, and error messages and nodes\links results (if they are not turned off) .
2 - the report file named in the REPORT section (or by the ENsetreport function) - this file is for nodes\links results only.

Documented in the Wiki.


Actors Incorrectly Providing Half Cover To Diagonal Targets (DMG Cover Rules)

Hi there,
I was fiddling around with my combat settings earlier and noticed that when an actor attacks diagonally when another actor is also nearby, it's counting the other adjacent creature as half-cover.
Sample:

Attacking diagonally around a wall seems to work properly though:

I appreciate the example images.
And yes, I need to revisit how I am handling token/tile collisions as they dont use the 4 corner vision rules like walls can -- its center to center and my "hitboxes" are a tad too big for this specific case.
In your second image, do you have 4 corner vision enabled? or Centerpoint (foundy) vision?

In both samples I have Four Corner Vision enabled.
When using Centerpoint (Foundry) vision, the second image produces 3/4 covert.

Ok great. Things are at least working as well as I expect them to. Let me try reducing the token/tile hitboxes some in the short term.

addressed in 1.10.3 (released). This should work better :)

Thanks for the fix! Seems to be working great for me now :)

Just wanted to provide an additional heads up - I was still experiencing the issue in some really weird situations where there definitely shouldn't have been any cover (like targeting a creature directly north of me when there was a creature to the immediate east somehow still providing cover for it), and at that point it just seemed way too farfetched to think that my original issue was causing it.
I was still experiencing the issue when I disabled all of my modules except for D&D5e Helpers and Easy Target, yet everything seemed fine when I had only D&D5e Helpers activated and did the targeting manually. After a bit of trial and error I realized that the Alt key shows a highlight around all tokens that shows their alignment towards the selected token, and that this happens naturally when pressing the Alt+Left Click combination required to use Easy Target.
From what I can tell this highlight actually expands the size of the hitbox, which I think was causing my original issue. Here's a quick gif sample where I target as I would normally using Easy Target vs when I shake it around a little bit to remove the highlight.

I'm not sure if that's something worth accounting for, but I thought I'd report back with what I found at the very least in case someone else runs into the same issue.

o.O
Incredibly helpful. You are really pressing it to its limits! I have no idea whats going on, or at least had no idea it would interact with selection like this!


Just have a look

I have replaced functions that manipulate string to Cstructs/bigarray equivalents (that does not involve copying).
This should make the library much more efficient when the application does not require to convert bigstrings in OCaml strings (it is the case for some of my use cases).
This does not work for me though, I have ctypes issues that I don't remember how to solve.
It would also be good to implement the binding generation feature of ctypes in order to remove the (small) overhead of calling C functions via libffi.

Hi Vincent,
Adding support for bigarrays could indeed be good for performance. Same for stub generation.
I just haven't found the time/motivation to implement these things (didn't really need them).
I had the idea to follow http://simonjbeaumont.com/posts/ocaml-ctypes/ some day for the stub generation...
A few remarks:

you removed the functions that work on regular strings (or Bytes.t), I still want/need those
I see you added finalizers for the Cstructs that are returned ... does that work as expected?
I'm thinking this will result in a double free, but maybe I'm missing something.
bigarray_of_ptr doesn't make a copy... so you'll free it in the finalizer. OTOH there will also still be the regular finalizer which will try to free the same piece of memory, possible using the wrong (de)allocator?
The memory pointed to by rocksdb_iter_key could get invalidated once changes are made to the iterator (seeking, destroying the iterator) ... see https://github.com/facebook/rocksdb/blob/master/include/rocksdb/iterator.h#L82-L92 . So you'll probably want to make a copy anyway? (and not free the memory in that finalizer)

Regarding these potential issues I think it's recommended to run the test binary (which admittedly doesn't test quite a lot) under valgrind to see if it likes it...
This does not work for me though, I have ctypes issues that I don't remember how to solve.

What exactly isn't working? What errors do you get?
(Note that I haven't tried your branch)

On 21/09/2016 18:06, Jan Doms wrote:

A few remarks:

you removed the functions that work on regular strings (or Bytes.t),
I still want/need those

You can just extract strings from either the bigarray of cstructs. Not a
problem to re-add them obviously, I agree that I should have left them
instead of removing them.

I see you added finalizers for the Cstructs that are returned ...
does that work as expected? I'm thinking this will result in a
double free, but maybe I'm missing something. bigarray_of_ptr
doesn't make a copy... so you'll free it in the finalizer. OTOH
there will also still be the regular finalizer which will try to
free the same piece of memory, possible using the wrong (de)allocator?
The memory pointed to by rocksdb_iter_key could get invalidated once
changes are made to the iterator (seeking, destroying the iterator)
... see
https://github.com/facebook/rocksdb/blob/master/include/rocksdb/iterator.h#L82-L92
. So you'll probably want to make a copy anyway? (and not free the
memory in that finalizer)

Just saw this, indeed I should not add a finalized on those values at all.

Regarding these potential issues I think it's recommended to run the
test binary (which admittedly doesn't test quite a lot) under valgrind
to see if it likes it...
|This does not work for me though, I have ctypes issues that I don't
remember how to solve. |
What exactly isn't working? What errors do you get?
(Note that I haven't tried your branch)

[vb@haramis ~/code/orocksdb]% ./rocks_test.native
Fatal error: exception Ctypes_static.Unsupported("Unsupported argument
type")
Not sure what it is.
--
Vincent

From a quick look, the Unsupported exception is due to using a bigarray directly as a function argument type (which is a restriction inherited from C).
Instead, use a pointer type as the function argument and use Ctypes.bigarray_start to obtain a pointer to the first element of the bigarray when calling the function.

Thanks for putting back the functions that work on strings, but can you change them back to the original behaviour?
That is: don't copy the string to a bigarray/cstruct first, but give the ocaml string to the C binding directly.
Not that performance there is absolutely critical for me, but there's no need to make it regress...
Can you also fix the travis build? As far as I can see you'll just have to add cstruct to the list here https://github.com/domsj/orocksdb/blob/master/travis.sh#L5 .
Did you format everything with that ocp-indent rule? Can we have a make target that does this?
Haven't looked at everything in detail yet, will try to do so later today.

On 22/09/2016 21:11, Jan Doms wrote:

@domsj requested changes on this pull request.
@vbmithr https://github.com/vbmithr I had a more in depth look, please
see the accompanying comments.
After that I would still need to update alba
https://github.com/openvstorage/alba to use this new version to see if
it isn't missing/breaking anything that's used there, as there are quite
a lot of changes and I might've missed some details.
Out of curiosity: what project are you using this in?

I used LevelDB for a project where I store crypto currencies exchange
data (Bitcoin trades), and where I have to serve them to a client
application. I wanted to try rocksdb to see if the CPU/memory usage
would be much better than LevelDB, mainly due to using directly
bigarrays. This library was easier to hack than leveldb-ocaml because of
ctypes.
In the end, the performance boost is not clear, at least the difference
is not huge.

In opam
https://github.com/domsj/orocksdb/pull/20#pullrequestreview-1195798:

@@ -0,0 +1,27 @@
+opam-version: "2.0"
+name: "orocksdb"
+version: "0.2.3"
+maintainer: "Jan Doms<EMAIL_ADDRESS>+authors: "Jan Doms<EMAIL_ADDRESS>+homepage: "https://github.com/domsj/orocksdb"
+bug-reports: "https://github.com/domsj/orocksdb"
+license: "MIT"
+dev-repo: "https://github.com/domsj/orocksdb.git"
+build: [

[make]
+]
+install: [make "install"]
+remove: ["ocamlfind" "remove" "rocks"]
+depends: [

need to add cstruct here too

Ack.

In _tags
https://github.com/domsj/orocksdb/pull/20#pullrequestreview-1195798:

@@ -1,4 +1,5 @@
-true: package(ctypes)
-true: package(ctypes.foreign)
-true: annot, debug
+true: bin_annot, debug, warn(-40)

Please add back |annot|, I use it to show type information in emacs.
Why did you add warn(-40)?
Is it related to the compiler warnings that were introduced? I would
like to be able to build orocksdb without warnings.

Ack, OK. Warning 40 is for when you use a variant name outside of its
scope, I always found this warning very useless as the risk involved in
doing this is low IMO.

In rocks.ml
https://github.com/domsj/orocksdb/pull/20#pullrequestreview-1195798:

-module RocksDb = struct

type t = t'
let t = t

let put ?key_pos ?key_len ?value_pos ?value_len batch key value =
let key = Cstruct.of_bigarray ?off:key_pos ?len:key_len key in
let value = Cstruct.of_bigarray ?off:value_pos ?len:value_len value in

Wrapping the bigarray in cstruct here, only to unpack it a few moments
later is wasteful.
Ok, it probably doesn't matter that much for performance, but this
eventually creates a bigarray proxy (through Bigarray.sub which is
called from Cstruct.to_bigarray), which causes unsafe_destroy to no
longer be available for the original bigarray, which I consider a downside.
(See
https://github.com/janestreet/core_kernel/blob/113.33.03/src/bigstring.mli#L167-L180)
Same remark applies to the other functions that take a cstruct.

Ok.

In rocks.ml
https://github.com/domsj/orocksdb/pull/20#pullrequestreview-1195798:

let seek t key = seek_slice t key 0 (String.length key)

let seek ?pos ?len t key =
let key = Cstruct.of_bigarray ?off:pos ?len key in
seek_cstruct t key

let seek_string ?(pos=0) ?len t key =
let len = match len with | None -> String.length key - pos | Some len -> len in
let key' = Cstruct.create len in

More cstruct garbage, technically a performance regression ;-)

Ok.

In rocks.ml
https://github.com/domsj/orocksdb/pull/20#pullrequestreview-1195798:

 in

fun t size ->

 if is_valid t

 then inner t size

 else raise InvalidIterator

fun t size -> if is_valid t then inner t size else raise InvalidIterator

let get_key_cstruct t =
let res_size = allocate Views.int_to_size_t 0 in
let res = get_key_raw t res_size in
if (to_voidp res) = null
then failwith (Printf.sprintf "could not get key, is_valid=%b" (is_valid t))
else bigarray_of_ptr array1 1 Bigarray.char res |> Cstruct.of_bigarray ~len:(!@ res_size)

let get_key t = get_key_cstruct t |> Cstruct.to_bigarray

I would let |get_key_cstruct| use |get_key|. No need to wrap the return
value in a cstruct only to immediately unpack it.
Same remark for get_value below.

Ok.

In rocks.ml
https://github.com/domsj/orocksdb/pull/20#pullrequestreview-1195798:

@@ -310,6 +217,237 @@ module Iterator = struct
get_error_raw t err_pointer;
!@err_pointer

let fold ?from t ~init ~f =

How useful is it to have ?from available here without an accompanying ?end ?
Do you use this in your application?
The user can always do the appropriate seek operation first...

Yes, I use it in my application. It is more convenient than dealing with
an iterator. There is no accompanying ?end because one can escape the
loop by raising an exception (the traditional OCaml way of breaking
outside loops).

In rocks.ml
https://github.com/domsj/orocksdb/pull/20#pullrequestreview-1195798:

 next t;

 if not @@ is_valid t then res else inner res

in
inner init

let fold_right ?from t ~init ~f =
(match from with None -> () | Some key -> seek_cstruct t key);
let rec inner a =

 let res = f ~key:(get_key_cstruct t) ~data:(get_value_cstruct t) a in

 prev t;

 if not @@ is_valid t then res else inner res

in
inner init

let iteri ?from t ~f = fold ?from t ~init:() ~f:(fun ~key ~data () -> f ~key ~data)
let rev_iteri ?from t ~f = fold_right ?from t ~init:() ~f:(fun ~key ~data () -> f ~key ~data)

Why the |i| suffix? Usually it indicates some index will be passed in to
the callback function too

This is to make it consistent with the naming of functions in Core. See
String.Table.iteri to iter on both keys and value. iter just
iterates on values, and not keys.

In rocks_common.ml
https://github.com/domsj/orocksdb/pull/20#pullrequestreview-1195798:

@@ -94,8 +94,22 @@ let finalize f finalizer =
| exception exn -> finalizer ();
raise exn

+module type S = sig

type t

val t : t Ctypes.typ
val get_pointer : t -> unit Ctypes.ptr
val type_name : string

val create : unit -> t

|create_no_gc| and |destroy| should be a part of the default signature
too imo.
Sometimes you might want to manually manage the lifetime of these objects.

Ok will re-add them. I thought that from the OCaml world you don't want
to deal with this. Buy maybe you need them in some applications.

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/domsj/orocksdb/pull/20#pullrequestreview-1195798,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAwrjV2rkbBf7B6E-WkOBS-SQyAjbS1qks5qstL4gaJpZM4KC6pm.

--
Vincent

Made the changes to alba to test this: https://github.com/openvstorage/alba/compare/update-orocksdb?expand=1
It's quite a lot. Next time please refrain from breaking the api all over the place.
Also had to make some more changes to rocksdb for this as you no longer exposed some functionality: https://github.com/domsj/orocksdb/commit/17bd26884ae73882363cc130f8582fc0fcd603d5
Now running the alba test suites to see if it breaks anything...

On 07/10/2016 21:08, Jan Doms wrote:

Made the changes to alba to test this:
https://github.com/openvstorage/alba/compare/update-orocksdb?expand=1
It's quite a lot. Next time please refrain from breaking the api all
over the place.
Also had to make some more changes to rocksdb for this as you no longer
exposed some functionality: 17bd268
https://github.com/domsj/orocksdb/commit/17bd26884ae73882363cc130f8582fc0fcd603d5
Now running the alba test suites to see if it breaks anything...

Thanks! Sorry for breaking the API.
--
Vincent


mediapipe_tasks_vision_gesture_recognizer Graph error

Have I written custom code (as opposed to using a stock example script provided in MediaPipe)
None
OS Platform and Distribution
Ubuntu 20
MediaPipe Tasks SDK version
0.10.8
Task name (e.g. Image classification, Gesture recognition etc.)
Gesture Recognition
Programming Language and version (e.g. C++, Python, Java)
Python3.8
Describe the actual behavior
/
Describe the expected behaviour
/
Standalone code/steps you may have used to try to get what you need
I  encountered this error while runngin gesture_recognizer on CPU (ubuntu)
RuntimeError: Graph has errors:
Calculator::Process() for node "mediapipe_tasks_vision_gesture_recognizer_gesturerecognizergraph__mediapipe_tasks_vision_gesture_recognizer_multiplehandgesturerecognizergraph__mediapipe_tasks_vision_gesture_recognizer_singlehandgesturerecognizergraph__ConcatenateTensorVectorCalculator" failed: Packet isn't the sole owner of the hol

Other info / Complete Logs
No response

Full log:
    self.mp_detector.recognize_async(
  File "/usr/local/lib/python3.8/dist-packages/mediapipe/tasks/python/vision/gesture_recognizer.py", line 473, in recognize_async
    self._send_live_stream_data({
  File "/usr/local/lib/python3.8/dist-packages/mediapipe/tasks/python/vision/core/base_vision_task_api.py", line 139, in _send_live_stream_data
    self._runner.send(inputs)
RuntimeError: Graph has errors:
Calculator::Process() for node "mediapipe_tasks_vision_gesture_recognizer_gesturerecognizergraph__mediapipe_tasks_vision_gesture_recognizer_multiplehandgesturerecognizergraph__mediapipe_tasks_vision_gesture_recognizer_singlehandgesturerecognizergraph__ConcatenateTensorVectorCalculator" failed: Packet isn't the sole owner of the holder.

Hi @RiccardoMaistri,
Could you please specify the Ubuntu version you're using? Additionally, provide the detailed steps or examples from the documentation that you're following. This information will help us better understand and reproduce the issue from our end.
Thank you!!

Hi @RiccardoMaistri,
Could you please specify the Ubuntu version you're using? Additionally, provide the detailed steps or examples from the documentation that you're following. This information will help us better understand and reproduce the issue from our end.
Thank you!!

I am running mediapipe on a docker container with ubuntu 20.04, this error happens randomly, I still have to figure it out how to reproduce it.


Convert the last our of File.exists? to File.exist?

Standardize on the new method
Signed-off-by: Tim Smith<EMAIL_ADDRESS>

Looks like a bunch of unit tests are failing.

Closing this to let a new hire handle it instead


Logging an object that contains an 'event' key, crashes things.

When trying to log an object that has "event":"processed" as a key, things bomb with a:
/Users/bone/git/snapyr-io-plane/node_modules/@elastic/ecs-winston-format/index.js:105
      ecsFields.event.dataset = serviceName + '.log'
                              ^
TypeError: Cannot create property 'dataset' on string 'processed'

I think you want to add "event" as a reserved field here:
https://github.com/elastic/ecs-logging-nodejs/blob/master/loggers/winston/index.js#L38
Because you depend on it here:
https://github.com/elastic/ecs-logging-nodejs/blob/master/loggers/winston/index.js#L104
And if there are conflicts, you probably want to handle them in an else statement here:
https://github.com/elastic/ecs-logging-nodejs/blob/master/loggers/winston/index.js#L78
There, you could at the very least log.Warn about it.  Ideally, maybe even chose a different fieldName  to put event information.

Oops, ^^ that commit meant to refer to #59, not this one.

A version v1.1.0 has been published with this fix. Thanks for the issue!


Network interface renaming is not working on Win Server 2022 Core

Hello!
I have issue with network interface renaming on Windows 2022 Core.
Environment:

Openstack Virtual Machine
Windows 2022 Core
External Subnet (static network config)
All updates installed to 25 Nov 2022
Cloudbase-init 1.1.2

Cloudbase-init log:
2022-11-26 12:45:43.964 2916 DEBUG cloudbaseinit.plugins.common.networkconfig [-] Setting MTU on network adapter "tap31bc296d-b5": 1500 _process_link_common C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\lib\site-packages\cloudbaseinit\plugins\common\networkconfig.py:182
2022-11-26 12:45:43.980 2916 DEBUG cloudbaseinit.utils.retry_decorator [-] Got expected exception Network interface with name "tap31bc296d-b5" not found while calling function cloudbaseinit.osutils.windows.WindowsUtils.set_network_adapter_mtu. Retries left: 3. Time left: undefined. Time elapsed: 0.0 Retrying in 1 seconds. inner C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\lib\site-packages\cloudbaseinit\utils\retry_decorator.py:83
2022-11-26 12:45:45.058 2916 DEBUG cloudbaseinit.utils.retry_decorator [-] Got expected exception Network interface with name "tap31bc296d-b5" not found while calling function cloudbaseinit.osutils.windows.WindowsUtils.set_network_adapter_mtu. Retries left: 2. Time left: undefined. Time elapsed: 1.0781581401824951 Retrying in 1 seconds. inner C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\lib\site-packages\cloudbaseinit\utils\retry_decorator.py:83
2022-11-26 12:45:46.074 2916 DEBUG cloudbaseinit.utils.retry_decorator [-] Got expected exception Network interface with name "tap31bc296d-b5" not found while calling function cloudbaseinit.osutils.windows.WindowsUtils.set_network_adapter_mtu. Retries left: 1. Time left: undefined. Time elapsed: 2.0941057205200195 Retrying in 1 seconds. inner C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\lib\site-packages\cloudbaseinit\utils\retry_decorator.py:83
2022-11-26 12:45:47.105 2916 ERROR cloudbaseinit.init [-] plugin 'NetworkConfigPlugin' failed with error 'Network interface with name "tap31bc296d-b5" not found': cloudbaseinit.exception.ItemNotFoundException: Network interface with name "tap31bc296d-b5" not found
2022-11-26 12:45:47.120 2916 ERROR cloudbaseinit.init [-] Network interface with name "tap31bc296d-b5" not found: cloudbaseinit.exception.ItemNotFoundException: Network interface with name "tap31bc296d-b5" not found
2022-11-26 12:45:47.120 2916 ERROR cloudbaseinit.init Traceback (most recent call last):
2022-11-26 12:45:47.120 2916 ERROR cloudbaseinit.init   File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\lib\site-packages\cloudbaseinit\init.py", line 67, in _exec_plugin
2022-11-26 12:45:47.120 2916 ERROR cloudbaseinit.init     shared_data)
2022-11-26 12:45:47.120 2916 ERROR cloudbaseinit.init   File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\lib\site-packages\cloudbaseinit\plugins\common\networkconfig.py", line 307, in execute
2022-11-26 12:45:47.120 2916 ERROR cloudbaseinit.init     return self._process_network_details_v2(network_details)
2022-11-26 12:45:47.120 2916 ERROR cloudbaseinit.init   File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\lib\site-packages\cloudbaseinit\plugins\common\networkconfig.py", line 296, in _process_network_details_v2
2022-11-26 12:45:47.120 2916 ERROR cloudbaseinit.init     osutils, network_details)
2022-11-26 12:45:47.120 2916 ERROR cloudbaseinit.init   File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\lib\site-packages\cloudbaseinit\plugins\common\networkconfig.py", line 207, in _process_physical_links
2022-11-26 12:45:47.120 2916 ERROR cloudbaseinit.init     NetworkConfigPlugin._process_link_common(osutils, link)
2022-11-26 12:45:47.120 2916 ERROR cloudbaseinit.init   File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\lib\site-packages\cloudbaseinit\plugins\common\networkconfig.py", line 183, in _process_link_common
2022-11-26 12:45:47.120 2916 ERROR cloudbaseinit.init     osutils.set_network_adapter_mtu(link.name, link.mtu)
2022-11-26 12:45:47.120 2916 ERROR cloudbaseinit.init   File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\lib\site-packages\cloudbaseinit\utils\retry_decorator.py", line 84, in inner
2022-11-26 12:45:47.120 2916 ERROR cloudbaseinit.init     time.sleep(sleep_time)
2022-11-26 12:45:47.120 2916 ERROR cloudbaseinit.init   File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\lib\site-packages\oslo_utils\excutils.py", line 220, in __exit__
2022-11-26 12:45:47.120 2916 ERROR cloudbaseinit.init     self.force_reraise()
2022-11-26 12:45:47.120 2916 ERROR cloudbaseinit.init   File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\lib\site-packages\oslo_utils\excutils.py", line 196, in force_reraise
2022-11-26 12:45:47.120 2916 ERROR cloudbaseinit.init     six.reraise(self.type_, self.value, self.tb)
2022-11-26 12:45:47.120 2916 ERROR cloudbaseinit.init   File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\lib\site-packages\six.py", line 703, in reraise
2022-11-26 12:45:47.120 2916 ERROR cloudbaseinit.init     raise value
2022-11-26 12:45:47.120 2916 ERROR cloudbaseinit.init   File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\lib\site-packages\cloudbaseinit\utils\retry_decorator.py", line 47, in inner
2022-11-26 12:45:47.120 2916 ERROR cloudbaseinit.init     return f(*args, **kwargs)
2022-11-26 12:45:47.120 2916 ERROR cloudbaseinit.init   File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\lib\site-packages\cloudbaseinit\osutils\windows.py", line 837, in set_network_adapter_mtu
2022-11-26 12:45:47.120 2916 ERROR cloudbaseinit.init     name)
2022-11-26 12:45:47.120 2916 ERROR cloudbaseinit.init cloudbaseinit.exception.ItemNotFoundException: Network interface with name "tap31bc296d-b5" not found
2022-11-26 12:45:47.120 2916 ERROR cloudbaseinit.init
2022-11-26 12:45:47.339 2916 INFO cloudbaseinit.init [-] Executing plugin 'CreateUserPlugin'

As result network configuration of VM is failed and VM is not accessible by network.
After machine created I logged in to it and checked network config. Network interface is not renamed and left with name Ethernet:

I tried to rename interface manually by the same command as in cloudbase-init code:

Looks like this command is not working in Windows 2022 Core.
After this I tried to rename network interface by Powershell command Get-NetAdapter -Name "Ethernet" | Rename-NetworkAdapter -NewName "tap31bc296d-b5":

And network interface was successfully renamed by this Powershell command. After renaming interface I restarted VM to continue cloudbase-init initialization progress and it successfully finished too.
I think this code with netsh call should be replaced to WMI MSFT_NetAdapter interface or Powershell Rename-NetAdapter cmdlet because netsh is obsoleted.

Hello,
The usage of netsh was due to the fact that we are running cloudbase-init during the very early first boot - specialize step, where WMI is not available. If netsh is not working anymore, we ll need to find an alternative that works during the early boot.
Thank you,
Adrian Vladu

Hello,
We are currently using opendev for patches, if you can add your patch to the review queue there, would be great.
https://review.opendev.org/q/project:x/cloudbase-init
How to create an account and contribute to:
https://docs.openstack.org/contributors/common/setup-gerrit.html
Otherwise, I can cherry-pick your commit, but it is a more complicated issue, as during the opendev onboarding there is a Licensing document that needs to be aprroved: https://docs.openstack.org/contributors/common/setup-gerrit.html#individual-contributor-license-agreement-icla . Please let me know if you can add it as a opendev patch (former Gerrit).
Thank you,
Adrian Vladu.

Hello, any news about this issue ?

We are having the same issue here, Core 2022 not setting the IP address on deployment in openstack

Hello, work is in progress here to fix the issue -> https://review.opendev.org/c/x/cloudbase-init/+/898713
I have built an installer with the fix here: https://github.com/ader1990/cloudbase-init-installer-1/actions/runs/8506367466 (see the artifacts tab)
If you can try it out to confirm the fix, that would be awesome!
Thank you.

Hello, work is in progress here to fix the issue -> https://review.opendev.org/c/x/cloudbase-init/+/898713 I have built an installer with the fix here: https://github.com/ader1990/cloudbase-init-installer-1/actions/runs/8506367466 (see the artifacts tab) If you can try it out to confirm the fix, that would be awesome!
Thank you.

I will test and let you know.

Not working on my side
ERROR cloudbaseinit.init [-] plugin 'NetworkConfigPlugin' failed with error 'Renaming interface "Ethernet" to "tapb498e43f-0c" failed': cloudbaseinit.exception.CloudbaseInitException: Renaming interface "Ethernet" to "tapb498e43f-0c" failed

Hello,
The usage of netsh was due to the fact that we are running cloudbase-init during the very early first boot - specialize step, where WMI is not available. If netsh is not working anymore, we ll need to find an alternative that works during the early boot.
Thank you, Adrian Vladu

Couldnt you just rename in the registry (although this may require a reboot) or wmic ?

@dgrauet I will recheck, can you please provide a systeminfo output of the Windows exact version, to make sure I can reliably reproduce the issue?
@aiso-net the fix uses a lower level WMI implementation (Windows API MI), so it should definitely work if the API is respected.

OS Name:                   Microsoft Windows Server 2022 Standard
OS Version:                10.0.20348 N/A Build 20348

Hello again, I managed to reproduce the issue, seems that I was not using the correct ISO in my testing.
I have observed that only MSFT_NetAdapter.rename method can be used to rename the adapter on the Core version and changed the code accordingly: https://review.opendev.org/c/x/cloudbase-init/+/898713
For example, this fix is not working https://github.com/cloudbase/cloudbase-init/pull/102/files#diff-bde815550dd2cbe6c3cd4c1f2d266c63c38f5dbaed128ac207d9556757ebc596R865 and neither using the Win32_NetworkAdapter class.
The MSI installer with the fix should be built shortly and available here https://github.com/ader1990/cloudbase-init-installer-1/actions/runs/8736432020
Thank you,
Adrian Vladu

LGTM, will you release 1.16 with this patch ?


msbuild.exe does not work in latest sdk:4.8 image

Steps to reproduce the issue

docker pull mcr.microsoft.com/dotnet/framework/sdk:4.8
docker run -it --rm mcr.microsoft.com/dotnet/framework/sdk:4.8 powershell
msbuild -help

Expected behavior
msbuild version information, options and examples are printed to the console
Actual behavior
msbuild exits with exit code<PHONE_NUMBER> and does not print anything to the console
Additional information (e.g. issue happens only occasionally)
Our 4.8 tag resolves to mcr.microsoft.com/dotnet/framework/sdk@sha256:0008d5d893924c10ec01b1619a009c57116f9a943fe43ca772af544c75c9a83a

Duplicate of https://github.com/microsoft/dotnet-framework-docker/issues/521


Create a facebook persistent menu

System Information (Required)

SDK Language: .NET/C#
SDK Version: 3.8.5

Hello! I was wondering if someone was able to create a Facebook persistent menu by adding the json required through the channel data of the reply.
I've tried with no success.
Thanks!

@xjose97x , I think you are not going in the right direction.
If you want to create a persistent menu in Facebook, you have to call Facebook API (make a POST with cURL, Postman or another tool) with the required json, not put this json in a channel data of a message from the bot


Update settings import in docs

You should have a _settings.scss in your own Sass files, separate from the one in the Foundation package. Then running @import 'settings'; will work fine, assuming that file is next to your main Sass file.


GUACAMOLE-508: Take user to home page when Settings pages are available.

Took a stab at an implementation of the improvement for 508, taking user to home screen when Settings pages are available.  It's worth noting that the "Preferences" page for users is pretty much always available, so this only does it if there is more than one Settings page available.
Not sure it's the most efficient route...open to suggestions.

Okay, fixed up things as requested.


Use HashSet in GlobMap to get rid of duplicate entries.

This fixes #19. It's not the only way if fixing it, and maybe not the best way. In particular, can the problem reappear if two globs are defined for the same mimetype but with different weights?

I have defined a custom implementation of PartialEq, Eq and Hash for Glob so that globs are compared and stored independently of their weight in GlobMap. I have also modified GlobMap::add_glob so that when there are duplicates, the glob with the highest weight is preferred.
I don't know if this is something you'll like since it changes the semantics of comparison between globs.

Thanks!


Socialite: Store config in .env instead

So L5 has replaced the cascading config system with PHP dotenv. TBH I'm not a fan of this move and find it really lack of flexibility, but guess I'll have learn to live with it.
Now, I find it weird that socialite's config stills stays in config/services. Doesn't this defeat the whole purpose of having .env from the start? From PHP dotenv's readme:

You should never store sensitive credentials in your code.

Aren't those Google, Mandrill, and Facebook secret keys all under that "sensitive credentials" category? If no, why not? If yes, shouldn't we follow then same rule and store them into .env instead?

You can anything you want into that file.

What file are you talking about @GrahamCampbell ?

You can load config into config/services.php from your .env file. We're not stopping you doing that.

Right, so we need a config file to load a config file. I know this is how it goes with current app and database config though. Thanks for answering.

@phanan No. You need to put something like:
'facebook' => ['client_secret' => env('CLIENT_SECRET')] into services.php etc.


Add share motion video feature

Aves is the only app (apart from GP) that allows you to view motion photos which is amazing! It would be even more amazing if Aves had the ability to share the motion video from motion photos. Quite often I want to quickly share the video via DM but this doesn't work as most message apps compress the jpg and thus the motion part is removed.
When viewing a motion photo, it would be nice if the share option shared the video instead of the photo.
The only alternative that I have seen is either to upload the motion photo using GP and then share a link to the that motion photo, which is time consuming and annoying, as you have to use GP. Or, use GP to export the motion photo as a video and share that video which is again time consuming and frustrating as it forces you to use GP which is a bad user experience.

If you opened a motion photo in the viewer, you can go to Info > menu > Open video, and then do whatever you wish with the video part (share, inspect metadata...)

But i think i could make things even easier by adding a long press menu to the Share quick action. Something like "share image only" and "share video only".

Wow! I didn't even realise you could do this!
It works like a charm. A faster more visible way, like you suggested, might
be even better.
On Mon, 5 Dec 2022, 6:24 pm Thibault Deckers, @.***>
wrote:

If you opened a motion photo in the viewer, you can go to Info > menu > Open
video, and then do whatever you wish with the video part (share, inspect
metadata...)
https://user-images.githubusercontent.com/13898333/205588497-8671ba50-8eb5-4aa0-9812-2d6026f64e53.png
But i think i could make things even easier by adding a long press menu to
the Share quick action. Something like "share image only" and "share
video only".
—
Reply to this email directly, view it on GitHub
https://github.com/deckerst/aves/issues/434#issuecomment-1336944480, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AVNKTEPPWYXADNPPL7T7VETWLWRD3ANCNFSM6AAAAAASTVHPDY
.
You are receiving this because you authored the thread.Message ID:
@.***>


Wrong parameter name in Mturk error messages

The error messages in mturk are always nil. Looking at the actual HTTPoison response from create_additional_assignments_for_h_i_t\3:
%HTTPoison.Response{
    body:
      "{\"__type\":\"ParameterValidationError\",\"Message\":\"The value 0 is invalid for MaxAssignmentIncrement. Valid values range from 1 to<PHONE_NUMBER>.<PHONE_NUMBER>385 s)\",\"Parameter\":\"MaxAssignmentIncrement\",\"TurkErrorCode\":\"AWS.ParameterOutOfRange\"}",
    headers: [
      {"x-amzn-RequestId", "fd299fbe-5dc7-4f08-8ed3-1c79b545725a"},
      {"Content-Type", "application/x-amz-json-1.1"},
      {"Content-Length", "238"},
      {"Date", "Fri, 06 Apr 2018 12:27:59 GMT"},
      {"Cneonction", "close"}
    ],
    status_code: 400
  }

and looking at the code it seems that the error message field is wrong since it should start with a capital:
{:ok, response=%HTTPoison.Response{body: body}} ->
        error = Poison.Parser.parse!(body)
        exception = error["__type"]
        message = error["message"]
        {:error, {exception, message}}

It should be message = error["Message"] instead.

Thanks for the message. This code is autogenerated by aws-codegen, so it is likely an error in the template which assembled this module for this API.
That's more than I have time to manage today but I will look into it.

I correct my previous statement, the error messages aren't always nil.
Apparently the first letter case is arbitrary across requests.. Here is a response body to AWS.MechanicalTurk.list_h_i_ts\3 with lower case:
%HTTPoison.Response{
    body:
      "{\"__type\":\"ValidationException\",\"message\":\"1 validation error detected: Value '1000' at 'maxResults' failed to satisfy constraint: Member must have value less than or equal to 100\"}",
    headers: [
      {"x-amzn-RequestId", "4481aec4-ac71-4517-bbb8-3d3125440041"},
      {"Content-Type", "application/x-amz-json-1.1"},
      {"Content-Length", "181"},
      {"Date", "Mon, 09 Apr 2018 10:22:03 GMT"},
      {"nnCoection", "close"}
    ],
    status_code: 400
  }

@4knahs Do you know if this applies only to the mturk integration or to all of them?

After some investigation the shape of the error depends on the API being used and the specific error returned. A possible approach is the one described here which involved returning the full (decoded) error.

Sorry for the late reply. From what i recall i tested just mturk, haven't touched that code in a long time though.

The clients are returning the whole parsed error in latest master now to avoid having to figure out the different paths to the message and code.


Error: Use of unresolved identifier 'showAlert'

In Receive Reengagement Notifications [Optional], showAlert(withUserInfo: userInfo) throws the above error.

This is kind of a wart in the codelab. The showAlert(withUserInfo:) method is added later on in the same step you're describing, but it's kind of awkward that it's used before it's defined.

We've republished with updates.


Kube-Vip crashing if K8s api isnt responding because of validatingwebhook failure

We just had a combination of kyverno and kube-vip crashlooping.
This began with kyverno configuring an validatingwebhook with an failure ignore policy.
Then kyverno crashed and didnt come back up in a very short ammount of time, causing the k8s-api to wait the webhook timeout on each request.
It seems that that caused kube-vip to crashloop.
We are still using kube-vip 0.1.7
Logs:
Node1:
time="2020-12-03T15:14:13Z" level=info msg="Beginning cluster membership, namespace [kube-system], lock name [plunder-lock], id [ddos-1-ppf6s]"
I1203 15:14:13.575443       1 leaderelection.go:242] attempting to acquire leader lease  kube-system/plunder-lock...
time="2020-12-03T15:14:13Z" level=info msg="Node [ddos-1-5nlmb] is assuming leadership of the cluster"
time="2020-12-03T15:14:15Z" level=info msg="Node [ddos-1-pwkjb] is assuming leadership of the cluster"
[a92615428@jos-2011 ~]$ kubectl --kubeconfig debug.kubeconfig -n kube-system logs kube-vip-ddos-1-ppf6s --previous
time="2020-12-03T15:05:22Z" level=info msg="Beginning cluster membership, namespace [kube-system], lock name [plunder-lock], id [ddos-1-ppf6s]"
I1203 15:05:22.885676       1 leaderelection.go:242] attempting to acquire leader lease  kube-system/plunder-lock...
time="2020-12-03T15:05:22Z" level=info msg="Node [ddos-1-pwkjb] is assuming leadership of the cluster"
I1203 15:09:00.584042       1 leaderelection.go:252] successfully acquired lease kube-system/plunder-lock
time="2020-12-03T15:09:00Z" level=info msg="Node [ddos-1-ppf6s] is assuming leadership of the cluster"
time="2020-12-03T15:09:00Z" level=info msg="This node is starting with leadership of the cluster"
time="2020-12-03T15:09:00Z" level=info msg="Broadcasting ARP update for <IP_ADDRESS> (00:50:56:8a:8a:98) via eth0"
I1203 15:09:02.584342       1 leaderelection.go:288] failed to renew lease kube-system/plunder-lock: failed to tryAcquireOrRenew context deadline exceeded
time="2020-12-03T15:09:03Z" level=info msg="Broadcasting ARP update for <IP_ADDRESS> (00:50:56:8a:8a:98) via eth0"
E1203 15:09:04.642873       1 leaderelection.go:307] Failed to release lock: Operation cannot be fulfilled on leases.coordination.k8s.io "plunder-lock": the object has been modified; please apply your changes to the latest version and try again
time="2020-12-03T15:09:04Z" level=info msg="This node is becoming a follower within the cluster"
time="2020-12-03T15:09:04Z" level=info msg="Shutting down Kube-Vip Leader Election cluster"

Node2:
time="2020-12-03T15:04:31Z" level=info msg="Beginning cluster membership, namespace [kube-system], lock name [plunder-lock], id [ddos-1-pwkjb]"
I1203 15:04:31.730902       1 leaderelection.go:242] attempting to acquire leader lease  kube-system/plunder-lock...
time="2020-12-03T15:04:31Z" level=info msg="Node [ddos-1-5nlmb] is assuming leadership of the cluster"
I1203 15:04:35.941138       1 leaderelection.go:252] successfully acquired lease kube-system/plunder-lock
time="2020-12-03T15:04:35Z" level=info msg="Node [ddos-1-pwkjb] is assuming leadership of the cluster"
time="2020-12-03T15:04:35Z" level=info msg="This node is starting with leadership of the cluster"
time="2020-12-03T15:04:35Z" level=info msg="Broadcasting ARP update for <IP_ADDRESS> (00:50:56:8a:0b:65) via eth0"
...
time="2020-12-03T15:08:51Z" level=info msg="Broadcasting ARP update for <IP_ADDRESS> (00:50:56:8a:0b:65) via eth0"
I1203 15:08:54.384629       1 leaderelection.go:288] failed to renew lease kube-system/plunder-lock: failed to tryAcquireOrRenew context deadline exceeded
time="2020-12-03T15:08:54Z" level=info msg="Broadcasting ARP update for <IP_ADDRESS> (00:50:56:8a:0b:65) via eth0"
E1203 15:08:56.439606       1 leaderelection.go:307] Failed to release lock: Operation cannot be fulfilled on leases.coordination.k8s.io "plunder-lock": the object has been modified; please apply your changes to the latest version and try again
time="2020-12-03T15:08:56Z" level=info msg="This node is becoming a follower within the cluster"
time="2020-12-03T15:08:56Z" level=info msg="Shutting down Kube-Vip Leader Election cluster"

Node3:
time="2020-12-03T15:05:54Z" level=info msg="Beginning cluster membership, namespace [kube-system], lock name [plunder-lock], id [ddos-1-5nlmb]"
I1203 15:05:54.460396       1 leaderelection.go:242] attempting to acquire leader lease  kube-system/plunder-lock...
time="2020-12-03T15:05:54Z" level=info msg="Node [ddos-1-pwkjb] is assuming leadership of the cluster"
E1203 15:09:01.716885       1 leaderelection.go:367] Failed to update lock: Operation cannot be fulfilled on leases.coordination.k8s.io "plunder-lock": the object has been modified; please apply your changes to the latest version and try again
time="2020-12-03T15:09:03Z" level=info msg="Node [ddos-1-ppf6s] is assuming leadership of the cluster"
I1203 15:09:09.752718       1 leaderelection.go:252] successfully acquired lease kube-system/plunder-lock
time="2020-12-03T15:09:09Z" level=info msg="Node [ddos-1-5nlmb] is assuming leadership of the cluster"
time="2020-12-03T15:09:09Z" level=info msg="This node is starting with leadership of the cluster"
time="2020-12-03T15:09:09Z" level=info msg="Broadcasting ARP update for <IP_ADDRESS> (00:50:56:8a:50:7a) via eth0"
I1203 15:09:11.753050       1 leaderelection.go:288] failed to renew lease kube-system/plunder-lock: failed to tryAcquireOrRenew context deadline exceeded
time="2020-12-03T15:09:12Z" level=info msg="Broadcasting ARP update for <IP_ADDRESS> (00:50:56:8a:50:7a) via eth0"
E1203 15:09:13.811535       1 leaderelection.go:307] Failed to release lock: Operation cannot be fulfilled on leases.coordination.k8s.io "plunder-lock": the object has been modified; please apply your changes to the latest version and try again
time="2020-12-03T15:09:13Z" level=info msg="This node is becoming a follower within the cluster"
time="2020-12-03T15:09:13Z" level=info msg="Shutting down Kube-Vip Leader Election cluster"

Ah ok.. if it's causing the leaderElection to fail then the only thing that we can do is to modify the timeouts of the Election processes I think. This is covered here

I had the same exact issue and I set the times like so:

    - name: vip_leaseduration
      value: "50"
    - name: vip_renewdeadline
      value: "30"
    - name: vip_retryperiod
      value: "10"

This works fine now but I have to admit I didn't do any complex testing since is just in my lab.

I had the same exact issue and I set the times like so:

    - name: vip_leaseduration
      value: "50"
    - name: vip_renewdeadline
      value: "30"
    - name: vip_retryperiod
      value: "10"

This works fine now but I have to admit I didn't do any complex testing since is just in my lab.

Yeah, unfortunately this is a side effect of behaviour in the API-server  . .so long timeouts are the only alternative.

Yeah, unfortunately this is a side effect of behaviour in the API-server  . .so long timeouts are the only alternative.


routine load submit task stall

Describe the bug
When there are too many concurrent routine load task, all submit_task will wait for a lock when the thread pool is full. following is the stack
This is which hold the _lock, and waiting to enter the thread pool
#0  0x00007f5686e39965 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00000000026cf8ec in __gthread_cond_wait (__mutex=<optimized out>, __cond=__cond@entry=0x56b43c0) at /var/local/gcc/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:864
#2  std::condition_variable::wait (this=this@entry=0x56b43c0, __lock=...) at ../../../.././libstdc++-v3/src/c++11/condition_variable.cc:53
#3  0x000000000140f2df in blocking_put (val=..., this=0x56b4388) at /var/local/incubator-doris/be/src/util/blocking_queue.hpp:109
#4  offer (func=..., this=0x56b4388) at /var/local/incubator-doris/be/src/util/thread_pool.hpp:72
#5  doris::RoutineLoadTaskExecutor::submit_task (this=0x56b4380, task=...) at /var/local/incubator-doris/be/src/runtime/routine_load/routine_load_task_executor.cpp:96
#6  0x0000000000ec8dd7 in doris::BackendService::submit_routine_load_task (this=0x5793ce0, t_status=..., tasks=...) at /var/local/incubator-doris/be/src/service/backend_service.cpp:236
#7  0x0000000000fa0372 in doris::BackendServiceProcessor::process_submit_routine_load_task (this=0x5790d80, seqid=1, iprot=<optimized out>, oprot=0x6ee4380, callContext=<optimized out>) at /var/local/incubator-doris/gensrc/build/gen_cpp/BackendService.cpp:6307
#8  0x0000000000f7b324 in doris::BackendServiceProcessor::dispatchCall (this=0x5790d80, iprot=0x6d6e580, oprot=0x6ee4380, fname=..., seqid=1, callContext=0x6d63b80) at /var/local/incubator-doris/gensrc/build/gen_cpp/BackendService.cpp:5200
#9  0x0000000000fa0edc in apache::thrift::TDispatchProcessor::process (this=0x5790d80, in=..., out=..., connectionContext=0x6d63b80) at /var/local/thirdparty/installed/include/thrift/TDispatchProcessor.h:121
#10 0x0000000001fca6c1 in apache::thrift::server::TConnectedClient::run (this=0x6f34d20) at src/thrift/server/TConnectedClient.cpp:62
#11 0x0000000001fc5209 in apache::thrift::concurrency::PthreadThread::threadMain (arg=0x579ad00) at src/thrift/concurrency/PosixThreadFactory.cpp:206
#12 0x00007f5686e35dd5 in start_thread () from /lib64/libpthread.so.0
#13 0x00007f5687147ead in clone () from /lib64/libc.so.6

This is others request which is waiting for the _lock
#0  0x00007f5686e3c4ed in __lll_lock_wait () from /lib64/libpthread.so.0
#1  0x00007f5686e37dcb in _L_lock_883 () from /lib64/libpthread.so.0
#2  0x00007f5686e37c98 in pthread_mutex_lock () from /lib64/libpthread.so.0
#3  0x00000000021674f2 in pthread_mutex_lock_impl (mutex=0x56b4668) at /var/local/incubator-doris/thirdparty/src/brpc-0.9.0/src/bthread/mutex.cpp:545
#4  pthread_mutex_lock (__mutex=0x56b4668) at /var/local/incubator-doris/thirdparty/src/brpc-0.9.0/src/bthread/mutex.cpp:803
#5  0x000000000140c9d9 in __gthread_mutex_lock (__mutex=0x56b4668) at /usr/include/c++/7.3.0/x86_64-pc-linux-gnu/bits/gthr-default.h:748
#6  lock (this=0x56b4668) at /usr/include/c++/7.3.0/bits/std_mutex.h:103
#7  lock (this=0x7f55ad85f2d0) at /usr/include/c++/7.3.0/bits/std_mutex.h:267
#8  unique_lock (__m=..., this=0x7f55ad85f2d0) at /usr/include/c++/7.3.0/bits/std_mutex.h:197
#9  doris::RoutineLoadTaskExecutor::submit_task (this=0x56b4380, task=...) at /var/local/incubator-doris/be/src/runtime/routine_load/routine_load_task_executor.cpp:37
#10 0x0000000000ec8dd7 in doris::BackendService::submit_routine_load_task (this=0x5793ce0, t_status=..., tasks=...) at /var/local/incubator-doris/be/src/service/backend_service.cpp:236
#11 0x0000000000fa0372 in doris::BackendServiceProcessor::process_submit_routine_load_task (this=0x5790d80, seqid=1, iprot=<optimized out>, oprot=0x12527800, callContext=<optimized out>) at /var/local/incubator-doris/gensrc/build/gen_cpp/BackendService.cpp:6307
#12 0x0000000000f7b324 in doris::BackendServiceProcessor::dispatchCall (this=0x5790d80, iprot=0x6ee43c0, oprot=0x12527800, fname=..., seqid=1, callContext=0x12b7e1c0) at /var/local/incubator-doris/gensrc/build/gen_cpp/BackendService.cpp:5200
#13 0x0000000000fa0edc in apache::thrift::TDispatchProcessor::process (this=0x5790d80, in=..., out=..., connectionContext=0x12b7e1c0) at /var/local/thirdparty/installed/include/thrift/TDispatchProcessor.h:121
#14 0x0000000001fca6c1 in apache::thrift::server::TConnectedClient::run (this=0x11f35dc0) at src/thrift/server/TConnectedClient.cpp:62
#15 0x0000000001fc5209 in apache::thrift::concurrency::PthreadThread::threadMain (arg=0x12b8e000) at src/thrift/concurrency/PosixThreadFactory.cpp:206
#16 0x00007f5686e35dd5 in start_thread () from /lib64/libpthread.so.0
#17 0x00007f5687147ead in clone () from /lib64/libc.so.6

#1257

Reopen if happen again


Enter/Return key not creating a new line within .md files

Issue Type: Bug
Steps to reproduce:

Open a .md file.
Press Enter/Return key.
VSCode will pop up a little notification saying, "command 'automaticList' not found".
The cursor will not move and a new line will NOT be created within the document.

Pressing ctrl+Enter/Return will, however, create a new line.
Changing the file's language mode to plain text  will allow you to press just Enter/Return and create a new line.
VS Code version: Code 1.46.1 (cd9ea6488829f560dc949a8b2fb789f3cdc05f5d, 2020-06-17T21:13:20.174Z)
OS version: Windows_NT x64 10.0.18363

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz (8 x 1800)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: disabled_offprotected_video_decode: enabledrasterization: enabledskia_renderer: disabled_off_okvideo_decode: enabledviz_display_compositor: enabled_onviz_hit_test_surface_layer: disabled_off_okwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
15.81GB (9.50GB free)

Process Argv
windows/security/threat-protection/windows-defender-antivirus/deployment-vdi-windows-defender-antivirus.md

Screen Reader
no

VM
0%

Extensions (13)

Extension
Author (truncated)
Version

LinkCheckMD
bla
0.3.1

vscode-markdownlint
Dav
0.36.0

docs-article-templates
doc
0.2.9

docs-authoring-pack
doc
0.1.8

docs-images
doc
0.0.9

docs-linting
doc
0.0.4

docs-markdown
doc
0.2.74

docs-metadata
doc
1.0.4

docs-preview
doc
0.3.51

docs-yaml
doc
0.2.5

python
ms-
2020.6.89148

vscode-yaml
red
0.8.0

code-spell-checker
str
1.9.0

Most likely an extension issue. You can try running with extensions disabled code --disable-extensions or disable some of them one by one.

@usernamehw That fixed it.

Looks like the extension has a list of shortcuts and automaticList is now bound to the Enter key by default.
You can edit or remove the binding by hitting CTRL+K, then CTRL+S, to open the Keyboard Shortcuts list.


⚠ Bofrost.at has degraded performance

In 55693b6, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1732 ms

Resolved: Bofrost.at performance has improved in 19f26b7.


Is it possible to remove the brakets in power rename

Description of the new feature / enhancement
I would like to NOT have them.
Scenario when this would be used?
Tick boks to enable or disable them
Supporting information
No response

What do you mean by brackets? Could you attach a screenshot? /needinfo

@space67 I'm guessing you mean brackets around the automatic numbers, but please do be specific :) /needinfo

Yes that is what I meant.
Petter Smart

From: Jay @.>
Sent: Thursday, February 2, 2023 5:29:50 PM
To: microsoft/PowerToys @.>
Cc: space67 @.>; Mention @.>
Subject: Re: [microsoft/PowerToys] Is it possible to remove the brakets in power rename (Issue #15829)
@space67https://github.com/space67 I'm guessing you mean brackets around the automatic numbers, but please do be specific :) /needinfo
—
Reply to this email directly, view it on GitHubhttps://github.com/microsoft/PowerToys/issues/15829#issuecomment-1414022736, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AB3ADLKUSAI7BTTO7H4KOP3WVPOH5ANCNFSM5NCSJHMA.
You are receiving this because you were mentioned.Message ID: @.***>

/dup https://github.com/microsoft/PowerToys/issues/4929 or https://github.com/microsoft/PowerToys/issues/3814


Driving husky in gazebo environment

Hi,
I am testing the husky robot using Gazebo 9 and ROS melodic when I move the robot forward or backward, it working properly, but turning the robot to the left or the right, I noticed a strange behavior in the robot movement, Is that behavior normal or there is a bug needs to be fixed?

I'm having the same problem (see video https://youtu.be/yKhHC9QsZZY) This is also described in other issues such as https://github.com/husky/husky/issues/120 and https://github.com/husky/husky/issues/105. But so far the Clearpath team has not responded to these issues.
@tonybaltovski Hi! Can you take a look at this, please? It seems that there are multiple people reporting this.

Hi, someone manage to solve this issue?
I already tried the comments in the other issues but the problem persists.
Any help or comment would be really appreciated.


[SPARK-32056][SQL] Coalesce partitions for repartition by expressions when AQE is enabled

What changes were proposed in this pull request?

This patch proposes to coalesce partitions for repartition by expressions without specifying number of partitions, when AQE is enabled.
Why are the changes needed?

When repartition by some partition expressions, users can specify number of partitions or not. If  the number of partitions is specified, we should not coalesce partitions because it breaks user expectation. But if without specifying number of partitions, AQE should be able to coalesce partitions as other shuffling.
Does this PR introduce any user-facing change?

Yes. After this change, if users don't specify the number of partitions when repartitioning data by expressions, AQE will coalesce partitions.
How was this patch tested?

Added unit test.

Test build #124378 has started for PR 28900 at commit 0a9223f.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/28997/
Test PASSed.

cc @maryannxue @JkSelf @koertkuipers

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/29005/
Test PASSed.

Test build #124387 has started for PR 28900 at commit 43c4726.

Test build #124391 has started for PR 28900 at commit 8e39ed7.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/29010/
Test PASSed.

Test build #124387 has finished for PR 28900 at commit 43c4726.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Test build #124391 has finished for PR 28900 at commit 8e39ed7.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Test build #124378 has finished for PR 28900 at commit 0a9223f.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/124391/
Test FAILed.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/124387/
Test FAILed.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/124378/
Test FAILed.

retest this please

Test build #124401 has started for PR 28900 at commit 8e39ed7.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/29020/
Test PASSed.

Test build #124401 has finished for PR 28900 at commit 8e39ed7.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/124401/
Test PASSed.

Test build #124424 has started for PR 28900 at commit 4b9b0e8.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/29043/
Test PASSed.

Test build #124424 has finished for PR 28900 at commit 4b9b0e8.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/124424/
Test PASSed.

Can we add the feature in ResolveCoalesceHints ? Hint can call repartition with default shuffle number.

Can we add the feature in ResolveCoalesceHints ? Hint can call repartition with default shuffle number.

Do you mean like SELECT /*+ COALESCE() */ ... ? When no partition number is not specified, let it be default partition number and AQE can coalesce it if enabled?
Seems currently the COALESCE hint doesn't allow default partition number usage. I'm not sure the reason about it.

Seems currently the COALESCE hint doesn't allow default partition number usage. I'm not sure the reason about it.

I mean the repartition, such as this sql select /*+ repartition(col)  */ * from test.

Test build #124461 has started for PR 28900 at commit 7ceaebc.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/29080/
Test PASSed.

I mean the repartition, such as this sql select /*+ repartition(col) */ * from test.

Sounds reasonable to me. @cloud-fan WDYT?

Test build #124467 has started for PR 28900 at commit df6a035.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/29086/
Test PASSed.

Yea, /*+ repartition(col) */ should also be supported by AQE

Test build #124461 has finished for PR 28900 at commit 7ceaebc.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Test build #124467 has finished for PR 28900 at commit df6a035.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/124467/
Test FAILed.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/124461/
Test FAILed.

LGTM. We can support /*+ repartition(col) */ with a new PR.

Test build #124491 has started for PR 28900 at commit 1ae1a87.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/29111/
Test PASSed.

Test build #124491 has finished for PR 28900 at commit 1ae1a87.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/124491/
Test PASSed.

@viirya Can we support distribute by in SQL as well ?

thanks, merging to master!

@viirya please send a new PR to fix the SQL side, thanks!

@cloud-fan Thanks, will do it.