(openboard) Outdated

Checklist

[X] I have checked the moderation queue that no new version has been submitted (only visible when logged in), or the submitted package version has failed the automated checks.

Please navigate to the following link to view the moderation queue.

[X] I have verified that the new version is a stable release.
[X] I have looked to see if there are any Bug reports that prevents a new version being submitted and that no existing Outdated Reports have been created.
[X] I have verified the new version has a Windows binary (EXE or MSI installer, Zip or other archive, etc).

New Software Version
1.6.1
Download location
https://openboard.ch/download.en.html
Package Page
https://community.chocolatey.org/packages/openboard

This package is not maintained here. Can you go back to the package page and use the 'Contact Maintainer' link?


missing numerical_setup! for IterativeLinearSolverNS

Hi @JordiManyer ,  I think the implementation of the function numerical_setup! is missing for IterativeLinearSolverNS. When solving a transient problem using an iterative solver, this function is called here: https://github.com/gridap/Gridap.jl/blob/9079dd1ac56da9ca5f6d8d3952d69caa6c014fa4/src/ODEs/StageOperators.jl#L280
I tried to have a look at what is the problem and how to solve it, but since this is a wrapper of many solvers, before implementing anything I would like to ask if this is indeed missing or am I doing something wrong. Could you take a look at it?
Thank you!

Hi @oriolcg , I think it's just missing. I've probably never needed it before. Feel free to do a PR!


Adds completion for fish shell.

This one adds a file with autocompletion for the fish shell.

Thanks!


[WIP] Add a then_yield combinator for futures.

This is useful when one wants to yield to the scheduler between expensive,
synchronous computations.
Fixes #353
TODO:

[ ] Better documentation? Should I be using a stream in the example? Really,
the for_each stream combinator should probably be fixed separately as
described in #354.
[ ] Better name? I'd like to use yield but that's reserved.

This really needs some discussion/design work so I'm closing it for now.


REDOX BE GONE!!!!

REDOX BE GONE!!!
Test Steps:

Include steps to test these changes

Changes

Include a comprehensive list of changes in this PR
(For web UI changes) Include screenshots/video of changes

Checklist
Testing

[ ] Tested locally?
[ ] Ran ./prime test or ./gradlew testSmoke against local Docker ReportStream container?
[ ] (For Changes to /frontend-react/...) Ran npm run lint:write?
[ ] Added tests?

Process

[ ] Are there licensing issues with any new dependencies introduced?
[ ] Includes a summary of what a code reviewer should test/verify?
[ ] Updated the release notes?
[ ] Database changes are submitted as a separate PR?
[ ] DevOps team has been notified if PR requires ops support?

Fixes
Closes #3520
Pull reviewers stats
Stats for the last 30 days:

User
Total reviews
Median time to review
Total comments

MauriceReeves-usds
46
13m
0

cwinters-usds
25
16h 36m
21

jimduff-usds
22
23h 26m
27

sean-usds
22
46m
7

kevinhaube
13
13h 49m
15

TomNUSDS
12
2h 2m
16

carlosfelix2
9
1h 4m
20

RickHawesUSDS
7
3h 28m
1

jbiskie
7
1h 43m
1

jorg3lopez
6
1h 16m
0

whytheplatypus
5
17h 22m
12

brick-green-agile6
5
1h 41m
5

ahay-agile6
3
10h 22m
6

oslynn
2
2h 5m
0

clediggins-usds
2
1h 13m
3

sethdarragile6
2
13h 42m
0

JosiahSiegel
1
4m
2

jeremy-page
1
3m
0

re-opening


Initial Figma UI design final modification

Modified version of UI design.pdf
There are some modifications on the initial design base on clients feedback. The followings are specific adjustments.
Study plan -> Unit set.
Some section can have more than 4 units.
Leave the user to add the group set (leave blank)
Add customised section.

This file has been approved by clients.


Add option to plot absorption data as a function of wavelength

Add option to sumo-optplot to plot the absorption data as a function of wavelength in nanometres, as is commonly done experimentally.
Tested and all seems to behave as expected.
EG: sumo-optplot --ymax 1.2e6 --units nm --xmax 2000 --xmin 300 -g 0.1 --bandgap 1.4 gives:

while sumo-optplot --ymax 1.2e6 --xmax 4.13 --xmin 0.62 -g 0.1 -b 1.4 (same energy range) gives:

No problem! Done and done.

Great thank you!


fix(dialog-service): .open() proper error propagation

Correcting the promise chain in .open() to properly propagate errors.

@StrahilKazlachev awesome, thanks for this!  Can you give me a brief description of the error this PR fixes along with a quick code sample to reproduce?  Also please make sure if you haven't already to sign the CLA.  Thanks again!

@PWKad  .open() was just returning the promise that resolves when the controller methods were called(.ok(), .error(), ...). The promise returned from _openDialog() was not chained and in case of errors while creating the VM('incorrect moduleId, errors thrown in the constructor or .activate(), ...) were not propagated to the caller of .open(). The dialog was never shown but the returned promise is never resolved. Not very brief, sorry. I can make a sample when I get back from work.

While I was writing the above I thought that it would be better to .catch() in _openDialog() and calling .error() of the controller, thoughts?
function _openDialog(service, childContainer, dialogController) {
  ...
  return _getViewModel(instruction, service.compositionEngine)
    .then(returnedInstruction => {...})
    .catch(e => { dialogController.error(e); });
}

@PWKad Here is a sample. I've modified the dialog sample with 3 cases - incorrect moduleId, error thrown in the VM constructor and error thrown in the .activate() method. Check app.js what is expected to be logged in the console for every case. Also in the case of error thrown in the .activate() method you can see that no dialog is shown but the service .hasActiveDialog says true.

Seems reasonable to catch the errors.  Going over the sample now, I am trying to verify this doesn't break any currently working functionality.  As a note there don't appear to be any assertions in the unit tests.

I'm good with this @StrahilKazlachev thanks for the contribution.  @EisenbergEffect can you please confirm CLA?

@PWKad CLA signature is confirmed :)

@StrahilKazlachev let me know what you think about updating the test this way (I know it's brittle but at least we have an assertion in there) - https://github.com/aurelia/dialog/commit/79e39a76067f949a49b30e68bce6aa2570812d4a


调用推理脚本 运行推理报错

[<EMAIL_ADDRESS>global loadsave.cpp:248 findDecoder imread_('nsfw, paintings, sketches, (worst quality:2), (low quality:2) lowers, normal quality, ((monochrome)), ((grayscale)), logo, word, character'): can't open/read file: check file path/integrity
Traceback (most recent call last):
File "run_inference.py", line 60, in
outputs = gen_portrait(processed_dir, num_generate, base_model,
File "/mnt/workspace/facechain/facechain/inference.py", line 474, in call
gen_results = main_model_inference(self.pose_model_path, self.pose_image, self.use_depth_control,
File "/mnt/workspace/facechain/facechain/inference.py", line 362, in main_model_inference
pose_image = compress_image(pose_image, 1024 * 1024)
File "/mnt/workspace/facechain/facechain/inference.py", line 503, in compress_image
while cv2.imencode('.jpg', image, [cv2.IMWRITE_JPEG_QUALITY, quality])[1].size > target_size:
cv2.error: OpenCV(4.8.0) /io/opencv/modules/imgcodecs/src/loadsave.cpp:1113: error: (-215:Assertion failed) !image.empty() in function 'imencode'

@LU-V please check this out at your convenience.

[<EMAIL_ADDRESS>global loadsave.cpp:248 findDecoder imread_('nsfw, paintings, sketches, (worst quality:2), (low quality:2) lowers, normal quality, ((monochrome)), ((grayscale)), logo, word, character'): can't open/read file: check file path/integrity Traceback (most recent call last): File "run_inference.py", line 60, in outputs = gen_portrait(processed_dir, num_generate, base_model, File "/mnt/workspace/facechain/facechain/inference.py", line 474, in call gen_results = main_model_inference(self.pose_model_path, self.pose_image, self.use_depth_control, File "/mnt/workspace/facechain/facechain/inference.py", line 362, in main_model_inference pose_image = compress_image(pose_image, 1024 * 1024) File "/mnt/workspace/facechain/facechain/inference.py", line 503, in compress_image while cv2.imencode('.jpg', image, [cv2.IMWRITE_JPEG_QUALITY, quality])[1].size > target_size: cv2.error: OpenCV(4.8.0) /io/opencv/modules/imgcodecs/src/loadsave.cpp:1113: error: (-215:Assertion failed) !image.empty() in function 'imencode'

it's a random error? we can not reproduce it  stably.


from_path appends a redundant string to a mesh file name, which raises error when converting it to a MjModel

Hi, everyone,
I wrote an XML file, as shown below, as a test to load a model created on Inventor and attach it to a manipulator later using mjcf:
<mujoco model="stacked">
  <compiler meshdir="assets" texturedir="assets" autolimits="true"/>

  <default>
    <default class="visual">
      <geom group="2" type="mesh" contype="0" conaffinity="0"/>
    </default>
    <default class="collision">
      <geom group="3" type="mesh"/>
    </default>
  </default>

  <asset>
    <material name="254,254,255" specular="0.9973853333333333" shininess="1.0" rgba="0.996078 0.996078 1.000000 1.000000"/>
    <material name="235,235,235" specular="1.0" shininess="1.0" rgba="0.921569 0.921569 0.921569 1.000000"/>
    <mesh file="object_0.obj"/>
    <mesh file="object_1.obj"/>
  </asset>

  <worldbody>
    <site name="ft_sensor"/>
    <body name="object">
      <geom mesh="object_0" material="235,235,235" class="visual"/>
      <geom mesh="object_1" material="254,254,255" class="visual"/>
      <geom mesh="object_0" class="collision"/>
      <geom mesh="object_1" class="collision"/>
    </body>
  </worldbody>
</mujoco>

The XML  file works fine when it is drag-and-dropped on the interactive viewer. But when I tried to load it with mjcf.from_path("above_model.xml") the model is converted like:
>>> stacked = mjcf.from_path("above_model.xml")
>>> stacked.asset.mesh
MJCF Elements List: ['<mesh name="object_0" class="/" file="object_0-7916a7a699cacbea5bc8df747ea748f2a3098f3b.obj"/>', '<mesh name="object_1" class="/" file="object_1-b26abdb5c2edc330a8a36bd437c13d22816110f4.obj"/>']

As you can see, a redundant suffix is appended to each OBJ file, resulting in the following error:
>>> MjModel.from_xml_string(stacked.to_xml_string())
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: Error: resource not found via provider or OS filesystem: 'object_0-7916a7a699cacbea5bc8df747ea748f2a3098f3b.obj'

Apparently, the error is due to the suffix. How can I prevent from_path from appending the suffix?
Thanks in advance!

You can replace this line with hash_string = ''

@yuvaltassa,
Thanks for your quick response. Actually, I do not want to change the source code of this package as much as I can. Do you come up with other workarounds?


Debug(), Error() etc. should accept an interface instead of string

A lot of the times I want to simply pass in the error to Error() (or similar functions) which works on Sirupsen/logrus, but now that I am trying to switch to apex/log it breaks all those cases.
if err != nil {
  log.Error(err) // This is now broken
}

// Instead I have to do this
if err != nil {
  log.Errorf("%s", err) // or log.Error(err.Error()) which is not as clean
}

The reason it's just strings is because (I believe) all the errors should be actionable and metrics-friendly.
The Error() string is just a label, for example something like: a.Log.WithError(err).Error("error fetching state"). This way you see "error fetching state" in Kibana or other dashboards, not many unbounded messages that may be part of err.String(), which to me goes against structured logging.
Hope that makes sense!


Consider changing the semantics of shared example group metadata

Currently, you can tag a shared example group definition with some metadata:
RSpec.shared_context "DB support", :db do
  # ...
end

...and that will cause the shared example group to be automatically included in matching example groups:
RSpec.describe MyModelThatUsesTheDB, :db do
  # ...
end

This works fine (and was originally my idea, IIRC), but I've realized a few problems with it:

The first argument to shared_context (the shared group name) is superfluous.  It feels a bit like "what's this argument for again?"  (Note that you could still use it with include_context to include the group manually, but it's a bit odd to mix-and-match the approaches).
Some users have expressed surprised that the metadata is treated "special" here and isn't simply applied to the shared example group like it is applied to a normal example group.
It makes it impossible to attach some metadata to a shared example group that will be automatically applied to including example groups.  While no user has asked for this, I've occasionally wanted to temporarily add :focus, :skip or :pending metadata to a shared example group so that that behavior applies to all inclusions of the shared group.
There's no obvious way to make a shared example group get auto-included in every example group (e.g. for a global before hook or let you want to make available everywhere...).  You could do something like RSpec.shared_context "...", :description => //, since // will match the description of every example group, but that's pretty indirect and non-obvious.
It doesn't gel well with the scoping behavior of shared contexts (see #1762).
It's inconsistent with how module inclusion works (e.g. config.include mod, *metadata).

I think we can rectify all of these with a few simple changes:

Add a new config.include_context API that is similar to config.include but is for shared contexts. This would solve the "no obvious way to auto-include a shared group everywhere" issue mentioned above and provide a sister API to config.include for consistency.
Stop using the metadata passed to shared_context as a means to determine which example groups should have the context auto-included, instead allowing it the metadata to get applied to including example groups.

The first change is a new API and could be made in any 3.x release.  The latter is a breaking change and either has to wait until RSpec 4 or we have to add a config option.  I lean towards the latter -- something like config.use_shared_example_group_metadata_for_auto_inclusion = true (although that is a bit ambiguous -- the config.include_context API would still use it for auto-inclusion -- maybe someone has a better idea?)
Thoughts?
/cc @rspec/rspec

One update to this idea: we could consider making config.include support shared group names in addition to module references, rather than introducing a new config.include_context API.

One update to this idea: we could consider making config.include support shared group names in addition to module references, rather than introducing a new config.include_context API.

Then it's switching behaviour based on type of the argument? I'm slightly negative on that.

This is a breaking change and either has to wait until RSpec 4 or we have to add a config option.

I lean towards the former. This doesn't seem important enough to justify introducing more config, RSpec 4 is in theory not that far away (... any reason we shouldn't just call master 4 and start working on it?), and there would be a way to transition to the new behaviour with include_context.

Then it's switching behaviour based on type of the argument? I'm slightly negative on that.

I wouldn't consider it switching behavior. Ultimately it's including a module -- either a manually defined and referenced one from the user, or a RSpec::Core::SharedExampleGroupModule created for the user when they defined the shared example group and referenced via the group name.


[SPDY|HTTP/2] Use ByteBufAllocator to allocate ByteBuf for FullHttpMe…

…ssage
Motivation:
When converting SPDY or HTTP/2 frames to HTTP/1.x, netty always used an unpooled heap ByteBuf.
Modifications:
When constructing the FullHttpMessage pass in the ByteBuf to use via the ByteBufAllocator assigned via the context.
Result:
The ByteBuf assigned to the FullHttpMessage can now be configured as a pooled/unpooled, direct/heap based ByteBuf via the ByteBufAllocator used.

@normanmaurer @Scottmitch PTAL
Note: I did not add try/catch blocks to the SpdyHttpDecoder as I'm not too sure what the process should be. By this I mean, the HTTP/2 version catches Throwable and generates a streamError.  I am unaware if there is anything similar for SPDY.  Any pointers?
On a separate note, I notice that when SPDY creates an HTTP request it always assumes that it should validateHeaders which is contradictory to how SPDY creates an HTTP response, so if you guys agree, I'll create a separate PR for that after this is approved and cherry-picked.

@blucas yes please create another PR for the validateHeaders stuff and as far as I know there is no need to catch Throwable here.

We will have to catch it (or some other exception?) as the NameValidator may throw an exception if the header does not pass validation (just like in HTTP/2)

@blucas - yes the SPDY createHttp* methods should account for adding headers failing due to validation failures.

SonarQube analysis reported 37 issues:

 6 major
 31 minor

Watch the comments in this conversation to review them.
Note: the following issues could not be reported as comments because they are located on lines that are not displayed in this pull request:

 Define a constant instead of duplicating this literal "HTTP/2 to HTTP/1.x headers conversion error" 3 times.
 Refactor this code to not nest more than 5 if/for/while/switch/try statements.
 Refactor this code to not nest more than 5 if/for/while/switch/try statements.
 Remove this unused method parameter "msg".
 Reduce this anonymous class number of lines from 22 to at most 20, or make it a named class.
 The Cyclomatic Complexity of this method "decode" is 37 which is greater than 25 authorized.
 Add a 'package-info.java' file to document the 'collection' package (io.netty:netty-common:target/generated-sources/collections/java/io/netty/util/collection)
 Add a 'package-info.java' file to document the 'discard' package (io.netty:netty-example:src/main/java/io/netty/example/discard)
 Add a 'package-info.java' file to document the 'echo' package (io.netty:netty-example:src/main/java/io/netty/example/echo)
 Add a 'package-info.java' file to document the 'factorial' package (io.netty:netty-example:src/main/java/io/netty/example/factorial)
... 26 more

@blucas - Please rebase now that https://github.com/netty/netty/pull/4860 has been pulled in ... interested to see if leaks still pop up.

@Scottmitch - Done. I've also caught Exception in SpdyHttpDecoder so that we can release the buffers, but I'm not sure if Exception is the right one. Should I have caught Throwable like you did?

but I'm not sure if Exception is the right one.
Few comments and then good to go!

Looks like you switched to using try {} finally {} ... which looks good to me.

@Scottmitch - Sorry I should have explained that further.  The code which calls createHttpRequest/Response wraps it in a try {} catch(Exception) {} block. What I'm trying to find out is, will that catch clause execute if header validation is enabled and an invalid header is placed in the message?

@blucas - Thanks for clarifying. Because we always want to ensure we send an error back to the peer I think we should catch Throwable.

@Scottmitch - PTAL

@blucas - For SpdyHttpDecoder we should also override the channelInactive method and make sure to release all values in the messageMap.

Wow, how did I miss those catch clauses? I think I need more caffeine...
@Scottmitch - Are you thinking something like this?
    @Override
    public void channelInactive(ChannelHandlerContext ctx) throws Exception
    {
        // Release any outstanding messages from the map
        for (Integer streamId : messageMap.keySet()) {
            FullHttpMessage msg = messageMap.get(streamId);
            if (msg != null) {
                msg.release();
            }
        }

        messageMap.clear();
        super.channelInactive(ctx);
    }

@blucas - You have the right idea but lets use the following:
    @Override
    public void channelInactive(ChannelHandlerContext ctx) throws Exception {
        for (Entry<Integer, FullHttpMessage> entry : messageMap.entrySet()) {
            ReferenceCountUtil.safeRelease(entry.getValue());
        }
        messageMap.clear();
        super.channelInactive(ctx);
    }

@Scottmitch - Done. Thanks for being so patient!

@blucas - Please address the check style error and we can pull in.

@Scottmitch - Done. Sorry about that.

@blucas thanks for all the help...
Cherry-picked into 4.1 (41d0a816912f32ff0405882cca347682549a709d)

@blucas - Good work and thanks for the PR!


Make package source-distributable via git+(ssh,https)

Summary
The package is not currently able to be used via a source distribution
Bug Fixes/New Features
Change setup.py so that source distribution results in a usable package
How to Verify
pip install git+https://github.com/mattbornski/flatten@distributable python -c "import flatten_json ; print(dir(flatten_json))"
Note that the package is found and a sane listing is generated.
pip install git+https://github.com/amirazai/flatten python -c "import flatten_json ; print(dir(flatten_json))"
Note that no package can be found, even though something was installed.
Code Reviewer(s)
@amirziai

Hello @mattbornski! Thanks for submitting the PR.

There are no PEP8 issues in the file setup.py !


ec_extension: implement extension resource

This PR is for #102.
Our team want to manage extension with terraform.
Please review.

Description
This PR is new resource for extension.

How Has This Been Tested?
Execute commands below.
$ make install
$ cd examples/extension
$ terraform init
$ terraform apply

And then, I have checked the created extension.
Next, I have changed terraform file (changed description) and applied, then I have watched the extension description changed.
Next, I have removed ec_extension in terraform file and applied, then I have watched the extension removed.

Types of Changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Refactoring (improves code quality but has no user-facing effect)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Documentation

Readiness Checklist

[x ] My code follows the code style of this project
[x] My change requires a change to the documentation
[ ] I have updated the documentation accordingly
[x] I have added tests to cover my changes
[ ] All new and existing tests passed

Since this is a community submitted pull request, a Jenkins build has not been kicked off automatically. Can an Elastic organization member please verify the contents of this patch and then kick off a build manually?

@marclop Could you review this PR?

Thank you very much for your review. I'll check and fix.

Thank you very much for your review. I'll check and fix.

@marclop Thanks for your support. I'm writing acc test, and I have a question.
What should I set download_url ? Do you have valid url for example?

@marclop Thanks for your support. I'm writing acc test, and I have a question.
What should I set download_url ? Do you have valid url for example?

@snowhork I'm trying to get a download_url we can use in the acceptance tests that doesn't get accidentally removed, I'll let you know once I have that.

@snowhork I'm trying to get a download_url we can use in the acceptance tests that doesn't get accidentally removed, I'll let you know once I have that.

Jenkins test this please.

Jenkins test this please.

@snowhork you can use this link to obtain the analysis-icu plugin for the 7.10.1 version:

https://artifacts.elastic.co/downloads/elasticsearch-plugins/analysis-icu/analysis-icu-7.10.1.zip

You could change it to any version that's published by changing the 7.10.1 suffix to another version:
https://artifacts.elastic.co/downloads/elasticsearch-plugins/analysis-icu/analysis-icu-$VERSION.zip

@snowhork you can use this link to obtain the analysis-icu plugin for the 7.10.1 version:

https://artifacts.elastic.co/downloads/elasticsearch-plugins/analysis-icu/analysis-icu-7.10.1.zip

You could change it to any version that's published by changing the 7.10.1 suffix to another version:
https://artifacts.elastic.co/downloads/elasticsearch-plugins/analysis-icu/analysis-icu-$VERSION.zip

@marclop Thank you very much. I will fix soon.

@marclop Thank you very much. I will fix soon.

@marclop  I have added acc tests. please review.

@marclop  I have added acc tests. please review.

@nrichers @alaudazzi can you have a look at the /docs files see if you folks would like anything to be changed before we merge it?
@karencfv do you want to give it a lass pass?

@nrichers @alaudazzi can you have a look at the /docs files see if you folks would like anything to be changed before we merge it?
@karencfv do you want to give it a lass pass?

Jenkins test this please

Jenkins test this please

Jenkins test this please

Jenkins test this please


Message couldn't send, 401 response received

After following the documentation provided for developing a Python bot. All is fine until attempting to locally test the bot in the emulator (I've tried three different emulator versions including the two most recent V4 pre-releases and the latest stable version).
The code seems to run fine as in I get confirmation that the an http server is started on 'localhost:9000'. However, when configuring the bot to run on endpoint http://localhost:9000/api/messages, and sending a message in the emulator the message can't send. The response I receive in the terminal is "<IP_ADDRESS> - - [18/Jul/2018 16:59:33] "POST /api/messages HTTP/1.1" 401 -". The error I receive in the emulator log in Emulator V.4.0.15-alpha is "POST 401 direct line.postActivity"
The error I receive in the emulator log in Emulator V 3 -Stable is POST Response code 401 (Unauthorized)
Am I missing a step? I followed the documentation word for word at https://docs.microsoft.com/en-us/azure/bot-service/python/bot-builder-python-quickstart?view=azure-bot-service-4.0

Okay just realized that the code in the ./samples/Echo-Connector-Bot file works just fine as opposed to the code provided on the microsoft.com docs


How to make Genymotion react native connect Reactotron?

I used Google Nexus 5 - 4.4.0 emulator Genymotion.
Running this:
import Reactotron from 'reactotron'
Reactotron.connect()

Won't connect.
Is there any criteria I missed?

Try this:
[Android 4.x] Use <IP_ADDRESS> instead of localhost on Genymotion:
import Reactotron from 'reactotron'
Reactotron.connect({
  server: '<IP_ADDRESS>',  // for Genymotion
  port: 3334,
  enabled: true
})

[Android 5.0+] just run command:
$ adb reverse tcp:3334 tcp:3334

Ya, on Android 4.x, it doesn't know how to reach back to your computer.  Like @jhen0409 said, you'll have to enter your IP address just like you did for your packager.  Thanks @jhen0409.
Is that IP always <IP_ADDRESS> for Genymotion?

Is that IP always <IP_ADDRESS> for Genymotion?

Yes, it's different from the Android SDK emulator (<IP_ADDRESS>), and these are forward to localhost of host machine.

Hmm... I wonder if there's a way to detect the runtime environment then in Android?  Maybe auto set this up?
The part of the brain that's responsible for logic & self-preservation is yelling:  NO!  BAD IDEA!  DON'T DO IT!
I'm going to dig a bit.


Avoid using rootPath

This extension appears to be using rootPath from the LSP. This is a deprecated property that may not work as expected in a multi-root workspace.
See this guide on implementing multi-root support: https://github.com/Microsoft/vscode/wiki/Adopting-Multi-Root-Workspace-APIs#language-client--language-server
https://github.com/microsoft/vscode/issues/69335

@mike-kaufman it would be nice to get this resolved so the related VS Code issue has one less popular extension to worry about breaking.

@mike-kaufman it would be nice to get this resolved so the related VS Code issue has one less popular extension to worry about breaking.


⚠ gorzdrav.org has degraded performance

In 39be970, gorzdrav.org (https://gorzdrav.org) experienced degraded performance:

HTTP code: 200
Response time: 2487 ms

Resolved: gorzdrav.org performance has improved in 5f23f02.


An "Error object is not extensible"

Describe the bug
Its performance just like #717  Show error "Cannot add property __props, object is not extensible"

Reproduction
https://github.com/aladdin-add/vite-issue-717
System Info
* vite: 2.4.4
* os: darwin-x64
* node: v16.4.2
* npm: v7.20.1

Used Package Manager
npm v7
Logs
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Make sure this is a Vite issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to https://github.com/vuejs/vue-next instead.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.

Module namespace exotic objects are not extensible according to the ECMAScript spec. So this is the expected behavior.

did not noticed it. it makes sense a lot!
and, seems good to have an eslint rule to warn it.


Re-posts do not show price

This is a screen shot from odysee. Look at the Motocycle Asset in the bottom ( simple upload ) it shows the price. In the top ( reposted by @blenderdumbass ) It shows no price.

Duplicate of #5697 Repost tiles not showing price from reposter's channel view


cmd/compile: improve "have X want Y" error with additional file and line information

What version of Go are you using (go version)?

go1.15.5 linux/amd64

Does this issue reproduce with the latest release?
Yes
What did you do?
package main

type S interface {
	DoSomething() (int, error)
}

type myS struct{}

func (s myS) DoSomething() (string, error) {
	return ``, nil
}

func main() {
	var _ S = &myS{}
}

What did you expect to see?
Show also line information (foo.go:123:57) for have line. The implementation might be in completely different file. In modern IDEs you simply can click the file information line to navigate to referenced file and line quickly.
want could also have line information to referenced interface definition line?
./prog.go:14:6: cannot use &myS literal (type *myS) as type S in assignment:
	*myS does not implement S (wrong type for DoSomething method)
		have DoSomething() (string, error) at ./prog.go:9:28
		want DoSomething() (int, error)

What did you see instead?
./prog.go:14:6: cannot use &myS literal (type *myS) as type S in assignment:
	*myS does not implement S (wrong type for DoSomething method)
		have DoSomething() (string, error)
		want DoSomething() (int, error)

cc @mdempsky @griesemer
Seems overlooked by triage?

@griesemer Should this stay in the Go1.18 milestone or should we move it to Backlog?

I think this is either done or mostly done (or pending CL). We should keep this for 1.18; I will take care of it.

I've mailed a CL for this per https://golang.org/cl/373634.


[web] GoogleSignIn plugin: credentials timeout, and page refresh followed by re-login required

The sign-in button seems to work on the build dashboard, and I'm authenticated after signing in... but when I refresh the page, I need to sign-in again.

/cc @jmagman who also reported seeing this
/cc @ditman who knows the most about the GoogleSignIn web plugin
/cc @godofredoc in case there is a known recent change in Cocoon's front-end auth that might explain this

I think there was a change in cocoon where the attempt to "silent sign in" at first was removed, because that may cause an exception in the plugin that would break the onclick of the Sign In button.
(This might trace back to a bug in the Google Sign In web plugin, that I haven't had time to look at yet, the only repro we have for now is to try to sign in with 3rd party cookies disabled either via the browser or an extension)

This problem runs deeper than just losing the credentials when you refresh the page.  It appears that the authentication credentials expire while your page is loaded (presumably because the OAuth token expires at 5 minutes), meaning you have to refresh the page to get validate your credentials.

FYI @ferhatb

I've just posted a PR with some changes to the google sign in plugin that should make this issue more debuggable:
https://github.com/flutter/plugins/pull/2943
The new code should throw more predictable PlatformExceptions in the methods of the plugin, maybe applying the code may give more clues as to why sign in is not working as expected with cocoon.

I've been unable to reproduce the issue, so maybe this was resolved by other bug fixes. Was this the sign-in button at https://flutter-dashboard.appspot.com/#/build ?
In Chrome I was wondering if my user profile was automatically signing me in again on refresh, but I've also failed to reproduce the issue on Safari. (I signed in, waited >5 min and still seemed to be logged in, refreshed and was still logged in.)
Also, as mentioned in the dashboard user guide, it seems you can access LUCI logs now without signing in. Poking around as someone unfamiliar with the dashboard I wasn't able to find anything that was obviously broken due to sign in issues.

@KyleFin thanks for taking a look! I haven't been able to reproduce these issues either. I think there's something about @google user accounts that might not trigger the same checks than other users' accounts. It might also be the corporatized version of Chrome.
Next time I look into this, I'll try with a new @gmail account in my personal machine, and see if the issue does come up!

Usually what I see these days is I sign in with my @google account, close the tab, then awhile later I open the dashboard in a new tab.  I click "Sign In" a few times and nothing happens.  Then I refresh, same thing, "Sign In", nothing happens.  Maybe 2-3 page refreshes later it loads looking like I'm actually signed in, without ever needing to re-enter my credentials.
I recorded it, though I only needed to refresh once to see my avatar appear.  Usually a few refreshes are required (I just saw that last night).
https://user-images.githubusercontent.com/682784/114228506-614cd200-992b-11eb-880b-80ed7f7f86c5.mov

@jmagman can you confirm there are still use-cases that require being signed in? (Is this just a quirk now or is it actually interfering with workflows?)

I did observe some strange behavior now on a personal computer with an @gmail account. I clicked the sign-in button and signed in with my account, but now after refreshing about 10 times I still haven't seen my profile picture replace the sign-in button. If I click sign-in again there's an empty white pop-up window that has a blue spinner for a few seconds then disappears.

@jmagman can you confirm there are still use-cases that require being signed in? (Is this just a quirk now or is it actually interfering with workflows?)

Yes, on that build dashboard it's how tests are re-run to deflake (an unfortunately common occurrence).

Maybe this is a race between the flutter app being ready much faster than the google sign in JS SDK?

If I click sign-in again there's an empty white pop-up window that has a blue spinner for a few seconds then disappears.

If this happens it means that you're already signed in, and no interaction from you is needed.
I wonder why cocoon (or the web plugin) is not realizing that the user is signed in :/


How do I give different learning rates for each layer?

How do I fine-tune the network giving each layer a different learning rate? Usually in pytorch to do so is necessary to give to the optimizer a list of dictionaries such as: torch.optim.Adam([{"param": model.network.layer1.parameters(), "lr":lr}], lr) but given my model:
class TransferEfficientNet(nn.Module):
    """Feedfoward neural network with 1 hidden layer"""
    def __init__(self, classes=10):
        super().__init__()
        # Use a pretrained model
        self.network = EfficientNet.from_pretrained("efficientnet-b1")

        # Replace last layer
        num_ftrs = self.network._fc.in_features
        self.network._fc = nn.Sequential(nn.Linear(num_ftrs, 512),
                                         nn.ReLU(),
                                         nn.Dropout(0.25),

                                         nn.Linear(512, 128),
                                         nn.ReLU(),
                                         nn.Dropout(0.50),

                                         nn.Linear(128,classes))

    def forward(self, xb):
        out = self.network(xb)
        return out

model = TransferEfficientNet()

I can't find a way to do so. How do I give to the optimizer different learning rates?

Yup, you can do the normal thing, but the layers have different names (i.e. it's not model.network.layer1 but instead model.network.somethingelse). You can see what the names of these layers are if you print out the model. Let me know how this works.

It worked. thank you


Download posts from before date

Is it possible to start scraping posts from an account before a given date?
Thanks in advance.

Check the documentation, here: https://instaloader.github.io/basic-usage.html#filter-posts


Add DCO

Related Issue: https://github.com/stolostron/backlog/issues/18042
Description:

Adds DCO file

/lgtm


deleteMany call results in idle_in_transaction process

Bug description
I'm in the process of migrating my database over from from heroku to AWS RDS Aurora Postgres and I've been doing some load testing where I spin off hundreds of lambda functions that read, update, and delete some data. When I do this, I manage to get the database into a situation somewhat regularly where it locks up. After some digging, I found the culprit was this query:
SELECT "public"."redirect_page"."id", "public"."redirect_page"."current_page_id" FROM "public"."redirect_page" WHERE (1=1 AND "public"."redirect_page"."current_page_id" IN ($1)) OFFSET $2

sitting in the idle in transaction state. There's a branch of the job that runs a prisma.redirectPage.deleteMany, which is what triggers this query. I believe the process gets left in an idle in transaction state when the lambda function times out right after issuing the deleteMany. From reading about processes stuck in an idle in transaction state, my impression is that this is typically the result of application code not managing transactions properly.  Since prisma is the one managing this transaction, I'm wondering if there's something prisma could do differently to avoid this situation.
Interestingly, I haven't observed this behavior on the existing application that runs against a heroku postgres database. I'm not sure yet if this is because the lambda timeouts are less frequent and so chances for this to occur are a lot less or for some other reason.
How to reproduce

Run deleteMany and crash the application process right afterwards.
Observe that the process for the query is stuck in a idle in transaction state

I haven't gotten to trying to replicate in a smaller example yet unfortunately.
Expected behavior
deleteMany transaction is not left in an idle in transaction state when its environment crashes suddenly.
Prisma information
prisma.redirectPage.deleteMany({
    where: {
      currentPageId: xxxx,
    },
  });

model RedirectPage {
  id            String   @id @default(dbgenerated("uuid_generate_v4()")) @db.Uuid
  createdAt     DateTime @default(now()) @map("created_at") @db.Timestamptz(6)
  updatedAt     DateTime @updatedAt @map("updated_at") @db.Timestamptz(6)
  oldPageId     String   @map("old_page_id") @db.VarChar
  oldUrl        String   @map("old_url") @db.VarChar
  currentPageId String   @map("current_page_id") @db.Uuid
  page          Page     @relation(fields: [currentPageId], references: [id])

  @@map("redirect_page")
}

Environment & setup

OS: AWS Lambda
Database: PostgreSQL
Node.js version: 14

Prisma Version
2.22.1

Thanks for the update here @TLadd - that is indeed an interesting problem. I would be interested in how other database Clients or ORMs deal with this, if they show different behavior. From your description, it does not really sounds like it would even be possible?


Implement module GUILib.font.py

This module will be imported in module GUILib.label.py.

Completed.
Notice: see docustring in class Font. Two additional modes for background may be proposed in next version.

Completed.
Notice: see docustring in class Font. Two additional modes for background may be proposed in next version.


[ALLUXIO-3199]add try lock block method to BlockLockManager

https://alluxio.atlassian.net/browse/ALLUXIO-3199

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/19637/Build result: FAILURE[...truncated 2427 lines...][JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/client/fs/pom.xml to org.alluxio/alluxio-core-client-fs/1.8.0-SNAPSHOT/alluxio-core-client-fs-1.8.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/client/fs/target/alluxio-core-client-fs-1.8.0-SNAPSHOT.jar to org.alluxio/alluxio-core-client-fs/1.8.0-SNAPSHOT/alluxio-core-client-fs-1.8.0-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/client/fs/target/alluxio-core-client-fs-1.8.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-core-client-fs/1.8.0-SNAPSHOT/alluxio-core-client-fs-1.8.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/client/fs/target/alluxio-core-client-fs-1.8.0-SNAPSHOT-tests.jar to org.alluxio/alluxio-core-client-fs/1.8.0-SNAPSHOT/alluxio-core-client-fs-1.8.0-SNAPSHOT-tests.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/common/pom.xml to org.alluxio/alluxio-core-common/1.8.0-SNAPSHOT/alluxio-core-common-1.8.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/common/target/alluxio-core-common-1.8.0-SNAPSHOT.jar to org.alluxio/alluxio-core-common/1.8.0-SNAPSHOT/alluxio-core-common-1.8.0-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/common/target/alluxio-core-common-1.8.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-core-common/1.8.0-SNAPSHOT/alluxio-core-common-1.8.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/common/target/alluxio-core-common-1.8.0-SNAPSHOT-tests.jar to org.alluxio/alluxio-core-common/1.8.0-SNAPSHOT/alluxio-core-common-1.8.0-SNAPSHOT-tests.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/server/worker/pom.xml to org.alluxio/alluxio-core-server-worker/1.8.0-SNAPSHOT/alluxio-core-server-worker-1.8.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/logserver/pom.xml to org.alluxio/alluxio-logserver/1.8.0-SNAPSHOT/alluxio-logserver-1.8.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/client/pom.xml to org.alluxio/alluxio-core-client/1.8.0-SNAPSHOT/alluxio-core-client-1.8.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/examples/pom.xml to org.alluxio/alluxio-examples/1.8.0-SNAPSHOT/alluxio-examples-1.8.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/examples/target/alluxio-examples-1.8.0-SNAPSHOT.jar to org.alluxio/alluxio-examples/1.8.0-SNAPSHOT/alluxio-examples-1.8.0-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/examples/target/alluxio-examples-1.8.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-examples/1.8.0-SNAPSHOT/alluxio-examples-1.8.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/pom.xml to org.alluxio/alluxio-core/1.8.0-SNAPSHOT/alluxio-core-1.8.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/server/proxy/pom.xml to org.alluxio/alluxio-core-server-proxy/1.8.0-SNAPSHOT/alluxio-core-server-proxy-1.8.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/server/proxy/target/alluxio-core-server-proxy-1.8.0-SNAPSHOT.jar to org.alluxio/alluxio-core-server-proxy/1.8.0-SNAPSHOT/alluxio-core-server-proxy-1.8.0-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/server/proxy/target/alluxio-core-server-proxy-1.8.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-core-server-proxy/1.8.0-SNAPSHOT/alluxio-core-server-proxy-1.8.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/shell/pom.xml to org.alluxio/alluxio-shell/1.8.0-SNAPSHOT/alluxio-shell-1.8.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/shell/target/alluxio-shell-1.8.0-SNAPSHOT.jar to org.alluxio/alluxio-shell/1.8.0-SNAPSHOT/alluxio-shell-1.8.0-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/shell/target/alluxio-shell-1.8.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-shell/1.8.0-SNAPSHOT/alluxio-shell-1.8.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/tests/pom.xml to org.alluxio/alluxio-tests/1.8.0-SNAPSHOT/alluxio-tests-1.8.0-SNAPSHOT.pomchannel stoppedArchiving artifacts
Test FAILed.

Merged build finished. Test FAILed.

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/Alluxio-Pull-Request-Builder/19639/
Test PASSed.

@apc999 PTAL.thanks

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/Alluxio-Pull-Request-Builder/19723/Failed Tests: 1org.alluxio:alluxio-tests: 1alluxio.client.fs.ImpersonationIntegrationTest.impersonationUserAllowed
Test FAILed.

jenkins, test this please

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/Alluxio-Pull-Request-Builder/19744/Failed Tests: 1org.alluxio:alluxio-tests: 1alluxio.client.fs.ImpersonationIntegrationTest.impersonationUsersAllowed
Test FAILed.

jenkins, test this please

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/Alluxio-Pull-Request-Builder/19877/Build result: FAILURE[...truncated 2461 lines...][JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/client/fs/target/alluxio-core-client-fs-1.8.0-SNAPSHOT.jar to org.alluxio/alluxio-core-client-fs/1.8.0-SNAPSHOT/alluxio-core-client-fs-1.8.0-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/client/fs/target/alluxio-core-client-fs-1.8.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-core-client-fs/1.8.0-SNAPSHOT/alluxio-core-client-fs-1.8.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/client/fs/target/alluxio-core-client-fs-1.8.0-SNAPSHOT-tests.jar to org.alluxio/alluxio-core-client-fs/1.8.0-SNAPSHOT/alluxio-core-client-fs-1.8.0-SNAPSHOT-tests.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/common/pom.xml to org.alluxio/alluxio-core-common/1.8.0-SNAPSHOT/alluxio-core-common-1.8.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/common/target/alluxio-core-common-1.8.0-SNAPSHOT.jar to org.alluxio/alluxio-core-common/1.8.0-SNAPSHOT/alluxio-core-common-1.8.0-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/common/target/alluxio-core-common-1.8.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-core-common/1.8.0-SNAPSHOT/alluxio-core-common-1.8.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/common/target/alluxio-core-common-1.8.0-SNAPSHOT-tests.jar to org.alluxio/alluxio-core-common/1.8.0-SNAPSHOT/alluxio-core-common-1.8.0-SNAPSHOT-tests.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/integration/checker/pom.xml to org.alluxio/alluxio-checker/1.8.0-SNAPSHOT/alluxio-checker-1.8.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/server/worker/pom.xml to org.alluxio/alluxio-core-server-worker/1.8.0-SNAPSHOT/alluxio-core-server-worker-1.8.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/logserver/pom.xml to org.alluxio/alluxio-logserver/1.8.0-SNAPSHOT/alluxio-logserver-1.8.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/client/pom.xml to org.alluxio/alluxio-core-client/1.8.0-SNAPSHOT/alluxio-core-client-1.8.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/examples/pom.xml to org.alluxio/alluxio-examples/1.8.0-SNAPSHOT/alluxio-examples-1.8.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/examples/target/alluxio-examples-1.8.0-SNAPSHOT.jar to org.alluxio/alluxio-examples/1.8.0-SNAPSHOT/alluxio-examples-1.8.0-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/examples/target/alluxio-examples-1.8.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-examples/1.8.0-SNAPSHOT/alluxio-examples-1.8.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/pom.xml to org.alluxio/alluxio-core/1.8.0-SNAPSHOT/alluxio-core-1.8.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/server/proxy/pom.xml to org.alluxio/alluxio-core-server-proxy/1.8.0-SNAPSHOT/alluxio-core-server-proxy-1.8.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/server/proxy/target/alluxio-core-server-proxy-1.8.0-SNAPSHOT.jar to org.alluxio/alluxio-core-server-proxy/1.8.0-SNAPSHOT/alluxio-core-server-proxy-1.8.0-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/server/proxy/target/alluxio-core-server-proxy-1.8.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-core-server-proxy/1.8.0-SNAPSHOT/alluxio-core-server-proxy-1.8.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/shell/pom.xml to org.alluxio/alluxio-shell/1.8.0-SNAPSHOT/alluxio-shell-1.8.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/shell/target/alluxio-shell-1.8.0-SNAPSHOT.jar to org.alluxio/alluxio-shell/1.8.0-SNAPSHOT/alluxio-shell-1.8.0-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/shell/target/alluxio-shell-1.8.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-shell/1.8.0-SNAPSHOT/alluxio-shell-1.8.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/tests/pom.xml to org.alluxio/alluxio-tests/1.8.0-SNAPSHOT/alluxio-tests-1.8.0-SNAPSHOT.pomchannel stoppedArchiving artifacts
Test FAILed.

jenkins, test this please

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/Alluxio-Pull-Request-Builder/19878/
Test PASSed.

@apc999 PTAL.Thanks

Thanks for ping me here @Mitisky
But i doubt it is a good solution, not only moveBlock but also other write behavior can get blocked.
And the root cause why is described in https://alluxio.atlassian.net/browse/ALLUXIO-3249
FYI @apc999

Thanks for your suggestion @Reidddddd
Indeed your description is the root reason. My solution is to avoid competition between write operations.Do you have a good idea about this now?

@apc999 I encountered another situation the worker got stuck, which form a dead lock.Almost all thread is waiting to promote a block which run out of the thread pool.It will block my task forever and the locked block will never be released.I add a waiting time parameter in the promote method too.It can solve my problem,but I think this part code logic should be reviewed.

Can one of the admins verify this patch?

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/Alluxio-PR-Builder/9452/
Test FAILed.

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/Alluxio-PR-Builder-jdk11/54/
Test FAILed.


Testing teal

updated guide and tests

The goal of changing tests was to simplify it and to make it reference in our guide.


Logger and persistence problem

I have extended the Logger of Rubix to Laravel Log facade. This works very well except when you start to use persistence.
$estimator->setLogger(new class extends Logger {
  public function log($level, $message, array $context = array())
   {
     Log::$level($message, $context);
   }
});

When I try to save the estimator, I get this error:
Serialization of 'class@anonymous' is not allowed
vendor/rubix/ml/src/Persisters/Serializers/Native.php:26
Can't seem to figure out why this is happening. Logger should not be near the persistence I think.

Hi @BasvanH
The logger is persisted along with the model data - this is done so that it continues logging after being reconstituted from storage
Unfortunately, however, there is a language-wide restriction that anonymous classes (as well as anonymous functions) cannot be deserialized (see this page). If you think about it, there is no way for the program to know what to do with the instance data if it cannot attach it to a class definition.
If you want to be able to persist the logger along with the rest of the model data, then just turn it into a regular class and it should work fine.
I think it would be a good idea to add a note about this to the docs here.

Added note to the docs about this limitation https://github.com/RubixML/RubixML/commit/0ca542df25fda98bf16109da5a2cee73b549575e

Alright, always nice to learn new things :-)
I've created my own class which forwards the logs to Laravel's Log facade. And this works perfectly.
use Rubix\ML\Other\Loggers\Logger;
use Illuminate\Support\Facades\Log;

/**
 * Forward logs from Rubix to Monolog
 */
class SimpleLogger extends Logger {
    public function log($level, $message, array $context = array())
    {
        Log::$level($message, $context);
    }
}

And set the estimator:
$estimator->setLogger(new SimpleLogger);

@BasvanH You can also use Monolog directly with a Verbose estimator if you want to