[#982] Background syncing

Closes #982
Closes #984

Background processing task implemented
Doc for the Background Synchronization added
changelog update
custom wifi check

This code review checklist is intended to serve as a starting point for the author and reviewer, although it may not be appropriate for all types of changes (e.g. fixing a spelling typo in documentation).  For more in-depth discussion of how we think about code review, please see Code Review Guidelines.
Author

[x] Self-review: Did you review your own code in GitHub's web interface? Code often looks different when reviewing the diff in a browser, making it easier to spot potential bugs.
[ ] Does the code abide by the Coding Guidelines?
[ ] Automated tests: Did you add appropriate automated tests for any code changes?
[x] Code coverage: Did you check the code coverage report for the automated tests?  While we are not looking for perfect coverage, the tool can point out potential cases that have been missed.
[ ] Documentation: Did you update Docs as appropiate? (E.g README.md, etc.)
[x] Run the app: Did you run the app and try the changes?
[ ] Did you provide Screenshots of what the App looks like before and after your changes as part of the description of this PR? (only applicable to UI Changes)
[x] Rebase and squash: Did you pull in the latest changes from the main branch and squash your commits before assigning a reviewer? Having your code up to date and squashed will make it easier for others to review. Use best judgement when squashing commits, as some changes (such as refactoring) might be easier to review as a separate commit.

Reviewer

[ ] Checklist review: Did you go through the code with the Code Review Guidelines checklist?
[ ] Ad hoc review: Did you perform an ad hoc review?  In addition to a first pass using the code review guidelines, do a second pass using your best judgement and experience which may identify additional questions or comments. Research shows that code review is most effective when done in multiple passes, where reviewers look for different things through each pass.
[ ] Automated tests: Did you review the automated tests?
[ ] Manual tests: Did you review the manual tests?You will find manual testing guidelines under our manual testing section
[ ] How is Code Coverage affected by this PR? We encourage you to compare coverage before and after your changes and when possible, leave it in a better place. Learn More...
[ ] Documentation: Did you review Docs, README.md, LICENSE.md, and Architecture.md as appropriate?
[ ] Run the app: Did you run the app and try the changes? While the CI server runs the app to look for build failures or crashes, humans running the app are more likely to notice unexpected log messages, UI inconsistencies, or bad output data.

I realized we should implement at least one more advanced thing for background syncing - I call it Advanced Background Syncing, see  #987. The scheduling in background tasks API lacks recurrence and typically this is solved with another background task that's only purpose is to create the recurrence "manually". Such task doesn't require a network or power and can finish its job real quick. With this extra work we increase the efficiency and meaning of background syncing by a huge leap.


docker: add docker socket help for mac users

:heart: Thank you for your contribution!
Description
Adds some help info for diagnosing problems with Docker on a Mac.
Checklist
Ticks in all boxes and 🟢 on all GitHub actions status checks are required to merge:

[x] I'm aware of the code of conduct.
[x] I've created logical separate commits and followed the commit message format.
[x] I've targeted the master branch.
[x] If this documentation change impacts the current release of InvenioRDM, I will backport it to the production branch following approval or indicate to a maintainer that it should be backported.

Reminder
By using GitHub, you have already agreed to the GitHub’s Terms of Service including that:

You license your contribution under the same terms as the current repository’s license.
You agree that you have the right to license your contribution under the current repository’s license.

Thanks! Pinging @Meowcenary who ran into this issue as well. Is that what worked for you Eric?

This was definitely an issue I ran into at some point in the past, but most recently it was just user error. I can't remember exactly what the underlying issue was, but I had Postgres running as a Homebrew service and that was interfering with the Postgres container.

Can I let you backport this @tmorrell ? Thanks!


Successful alert pop up feature for contact page "Send Message" button

Is your feature request related to a problem? Please describe.
As when user fills all the detail and clicks on "Send Message" button then site takes user 405 not allowed page.
Describe the solution you'd like
I want to add an alert which will pops up and will tell the user that message was delivered successfully with a green tick along with I would also like to add a feature without back end with which user would be sent to a fresh new page on clicking Send Message button where the message will be written, lets say "Thank you for your submission , Return back ".
Additional context
Screenshots :-

/assign

sure

OK thanks

Hey @Vishal-raj-1 after cloning in my desktop this error is coming I have tried every possible way to resolve this but was not successful can u help me in solving it,

@Vishal-raj-1 sir please review my PR


1.2.0 throws SyntaxError: Unexpected identifier

Updating to 1.2.0 is throwing this error in console:
SyntaxError: Unexpected identifier
    at new Script (vm.js:79:7)
    at createScript (vm.js:251:10)
    at Object.runInThisContext (vm.js:303:10)
    at Module._compile (internal/modules/cjs/loader.js:657:28)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load (internal/modules/cjs/loader.js:530:3)
    at Module.require (internal/modules/cjs/loader.js:637:17)
    at require (internal/modules/cjs/helpers.js:22:18)
    at Object.styled-components-modifiers (/Users/joelmercer/Desktop/frontend/.next/server/static/development/pages/_app.js:4584:18)
    at __webpack_require__ (/Users/joelmercer/Desktop/frontend/.next/server/static/development/pages/_app.js:23:31)
    at Module../styles/elements/Avatars.js (/Users/joelmercer/Desktop/frontend/.next/server/static/development/pages/_app.js:3690:85)
    at __webpack_require__ (/Users/joelmercer/Desktop/frontend/.next/server/static/development/pages/_app.js:23:31)
    at Module../styles/elements/index.js (/Users/joelmercer/Desktop/frontend/.next/server/static/development/pages/_app.js:3981:66)
    at __webpack_require__ (/Users/joelmercer/Desktop/frontend/.next/server/static/development/pages/_app.js:23:31)
/Users/joelmercer/Desktop/frontend/node_modules/styled-components-modifiers/lib/index.js:1
(function (exports, require, module, __filename, __dirname) { import applyResponsiveStyleModifiers from './applyResponsiveStyleModifiers';

Implementation:
import { applyStyleModifiers } from 'styled-components-modifiers';

const BUTTON_MODIFIERS = {...}
export const Button = styled.button`
 {...}
  ${applyStyleModifiers(BUTTON_MODIFIERS)}
`;

Has the correct way to implement this changed in this release?

Can you provide any more details around how the project you are working on? This should work.

So I rolled back to 1.1.1 and everything is working correctly again, the example I showed was from a barebones setup just to make sure it wasn't something in my core project.
The only conflict I can think of could be caused by something in next I have included the versions of the stuff I think could be the root of it. Please by all means give me some guidance if there is something specific you would like to know..
This is working as expected:
    "apollo-boost": "^0.4.0",
    "apollo-client": "^2.6.0",
    "next": "^8.1.0",
    "next-with-apollo": "^3.4.0",
    "react": "^16.8.6",
    "react-apollo": "^2.5.6",
    "styled-components": "^4.2.0",
    "styled-components-modifiers": "^1.1.1",

This is not working:
    "apollo-boost": "^0.4.0",
    "apollo-client": "^2.6.0",
    "next": "^8.1.0",
    "next-with-apollo": "^3.4.0",
    "react": "^16.8.6",
    "react-apollo": "^2.5.6",
    "styled-components": "^4.2.0",
    "styled-components-modifiers": "^1.2.0",

@joeldavidmercer we've pushed a possible fix for this. Can you update to v1.2.1 and see if this remedies the issue you reported?


Use Github Releases API to automatically update

It would be handy to be able to auto-update FCPX Hacks when we do a new release.
https://developer.github.com/v3/repos/releases/

This is definitely possible. I had previously considered just changing the update link to a direct link to the latest DMG on GitHub, but decided against it because I kinda liked that users had to go to the blog entry to download, as then they can also see what new features are there, etc.
Ages ago, I also looked into using https://sparkle-project.org to handle updates (as this is what Hammerspoon uses), but it became too hard because once we turn FCPX Hacks into a "proper" Application, then we have to deal with App-Signing.
So maybe we just write a LUA-based clone of Sparkle, so it has the same look (i.e. has release notes, option to allow automatic downloads in future, etc.)?

Sure, depends how complicated you want to get. I'm not sure exactly how
fancy we can make the dialogue box - although I guess we can use a webview?
On Tue, 3 Jan 2017 at 9:32 am, Chris Hocking<EMAIL_ADDRESS>wrote:

This is definitely possible. I had previously considered just changing the
update link to a direct link to the latest DMG on GitHub, but decided
against it because I kinda liked that users had to go to the blog entry to
download, as then they can also see what new features are there, etc.
Ages ago, I also looked into using https://sparkle-project.org to handle
updates (as this is what Hammerspoon uses), but it became too hard because
once we turn FCPX Hacks into a "proper" Application, then we have to deal
with App-Signing.
So maybe we just write a LUA-based clone of Sparkle, so it has the same
look (i.e. has release notes, option to allow automatic downloads in
future, etc.)?
[image: screenshot-noshadow 2x]
https://cloud.githubusercontent.com/assets/22286696/21597499/ca868b74-d19f-11e6-8540-ce04efa7d23b.png
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/fcpxhacks/fcpxhacks/issues/162#issuecomment-270032242,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADbEw3GsE2woePG_MngUPPEl16pCY3LPks5rOYjvgaJpZM4LZQMw
.

I think making a dialog box like that is beyond the scope of AppleScript, so yeah, we'd either have to use a hs.webview, or we could build the dialog in Xcode (using AppleScriptObjC), then control it via LUA.
I think something like the Sparkle dialog would be great if we can pull it off.


JDBC Support

Are there any plans to support the Postgres JDBC driver? I can give a stab at it, but would like to know first if anyone has tried it/planning on it.

@nadavshatz Just a heads up, JDBC has been merged in and is in v. 0.2.0.
Closing this.

Thanks for the update @TheKidCoder :beers:


I want the old blue infinity logo!

The previous blue infinity logo is the best.

The current logo, orange fish logo, is the worst.

The incoming logo, blue fish logo, is a little better than the orange fish logo, but still bad.

The orange infinity logo is also looks wierd, but is much better than the previous two logo.

So why you must change the logo?

I agree that the old blue infinity logo is much more aesthetically pleasing.

Yes the blue infinity logo is the best...

The reasons for our new icon are nicely summarised here: https://code.visualstudio.com/blogs/2017/10/24/theicon


NumberFormatException with SDKman and Graal JDK installed

steps

Install SDKMan,
Install any AdoptOpenJDK version, per SDKMan's instructions. (e.g. sdk install java 8.0.242.hs-adpt)
Install any GraalVM, per SDKMan's instructions. (e.g. sdk install java 20.0.0.r11-grl)
Ensure that you are using the AdoptOpenJDK version (e.g. sdk use java 11.0.6.hs-adpt)
Run sbt

Here is an example of what is installed on my machine.
Available Java Versions
================================================================================
 Vendor        | Use | Version      | Dist    | Status     | Identifier
--------------------------------------------------------------------------------
 AdoptOpenJDK  |     | 13.0.2.j9    | adpt    |            | 13.0.2.j9-adpt
               |     | 13.0.2.hs    | adpt    |            | 13.0.2.hs-adpt
               |     | 12.0.2.j9    | adpt    |            | 12.0.2.j9-adpt
               |     | 12.0.2.hs    | adpt    |            | 12.0.2.hs-adpt
               |     | 11.0.6.j9    | adpt    |            | 11.0.6.j9-adpt
               |     | 11.0.6.hs    | adpt    | installed  | 11.0.6.hs-adpt
               |     | 8.0.242.j9   | adpt    |            | 8.0.242.j9-adpt
               | >>> | 8.0.242.hs   | adpt    | installed  | 8.0.242.hs-adpt

and a little further down the list (notice 20.0.0.r11)
GraalVM       |     | 20.0.0.r11   | grl     | installed  | 20.0.0.r11-grl
               |     | 20.0.0.r8    | grl     |            | 20.0.0.r8-grl
               |     | 19.3.1.r11   | grl     |            | 19.3.1.r11-grl
               |     | 19.3.1.r8    | grl     |            | 19.3.1.r8-grl
               |     | 19.3.0.r11   | grl     |            | 19.3.0.r11-grl
               |     | 19.3.0.r8    | grl     |            | 19.3.0.r8-grl

problem
When running sbt at the command line on a pre-created project:
[info] Loading settings for project global-plugins from idea.sbt,plugins.sbt ...
[error] java.lang.NumberFormatException: For input string: "0-r11"
[error] 	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
[error] 	at java.lang.Long.parseLong(Long.java:589)
[error] 	at java.lang.Long.parseLong(Long.java:631)
[error] 	at scala.collection.immutable.StringLike.toLong(StringLike.scala:309)
[error] 	at scala.collection.immutable.StringLike.toLong$(StringLike.scala:309)
[error] 	at scala.collection.immutable.StringOps.toLong(StringOps.scala:33)
[error] 	at sbt.internal.CrossJava$.$anonfun$parseJavaVersion$2(CrossJava.scala:34)
[error] 	at sbt.internal.CrossJava$.$anonfun$parseJavaVersion$2$adapted(CrossJava.scala:34)
[error] 	at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:237)

expectation
Ability to run sbt without any exception
notes
I suspect strongly that CrossJava.scala has no idea how to handle SDKMan's Graal versions.

@dhinojosa Thanks for the report! This sounds similar to https://github.com/sbt/sbt/issues/4731. Which version of sbt are you using?

Works like a champ. Thanks, @eed3si9n. Sorry I didn't report back on time. I appreciate all your hard work. :)

I am confused. Does it work with the latest sbt version? If so can we close this issue?

Sorry, not sure what happened closing. Yes, works great.


Add implementations for getPreferredExtensions

Capnp PR: https://github.com/capnproto/capnproto/pull/1885

Looks good once we get the Cap'n Proto PR figured out.

Just updated the Cap'n Proto dependency. https://github.com/cloudflare/workerd/compare/17e3ebeeec0ee280ed67b386b0172b3acfcf8f99..3bfe1b6da2778a14907132b9f564d3707676bf7e


Update config examples for new JSON Schema

The "Input Config" requires update to reflect the changes in the JSON Schema
{"inputs":[{"index": 4, "type": "contact"}]}
{"inputs":[{"index": 7, "type": "button", "invert": true}]}

It would also be helpful to have an example showing how to configure more than one index number in the same JSON string

@sarreck I have updated the docs to show the new format - can you review and close this if you are happy with the changes?


remove hook is not called on child-node if parent node is removed

This makes remove animations which should animate both parent and child elements impossible. "destroy" is called recursively, but that's not enough for most kinds of animations.
I've looked at the vue-fork of snabbdom and they seem to have changed it to "remove" to be called recursively.

I think an example showing the desired animation and the snabbdom setup would make easier to find a solution

Look at https://jsfiddle.net/8kpa5dLd/22/
Both text-divs slide out on remove, but only if you remove them directly (as the second element). If the parent element of those elements is removed, only the parent-remove transition is played, because the remove-hook isn't triggered for the child elements anymore.

In general, there are two hooks that are complementary, remove and destroy (both available as global hooks and in vnode.data.hook as well). remove is invoked only on the element that is being removed from the DOM intentionally and has an async mechanism in case if you need more control, while destroy is invoked on the entire subtree (recursively).
As for the style module shipped with snabbdom, it provides mechanism to tap into remove and destroy hooks. In your example (jsfiddle), you're only doing the remove, but not the destroy. Maybe we should update the documentation to highlight that.

I tried to use the style module destroy hook, and no animation at all

The destroy hook is called directly before the element is removed from the DOM, so it can't be used like "remove" (which is implemented via delaying removal until the animation is finished).
In vue they changed the remove hook to make "remove" recursive (at least for components):
function removeVnodes (parentElm, vnodes, startIdx, endIdx) {
    for (; startIdx <= endIdx; ++startIdx) {
      const ch = vnodes[startIdx]
      if (isDef(ch)) {
        if (isDef(ch.tag)) {
          removeAndInvokeRemoveHook(ch)
          invokeDestroyHook(ch)
        } else { // Text node
          removeNode(ch.elm)
        }
      }
    }
  }

  function removeAndInvokeRemoveHook (vnode, rm) {
    if (isDef(rm) || isDef(vnode.data)) {
      let i
      const listeners = cbs.remove.length + 1
      if (isDef(rm)) {
        // we have a recursively passed down rm callback
        // increase the listeners count
        rm.listeners += listeners
      } else {
        // directly removing
        rm = createRmCb(vnode.elm, listeners)
      }
      // recursively invoke hooks on child component root node
      if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {
        removeAndInvokeRemoveHook(i, rm)
      }
      for (i = 0; i < cbs.remove.length; ++i) {
        cbs.remove[i](vnode, rm)
      }
      if (isDef(i = vnode.data.hook) && isDef(i = i.remove)) {
        i(vnode, rm)
      } else {
        rm()
      }
    } else {
      removeNode(vnode.elm)
    }
  }


ECE - Evaluate Assignment

Check commits.

@1001mei @bryanlohxz could y'all review if the changes on AST is alright?

Yes, the changes look fine to me.


HyperPod cluster fails to create

HyperPod cluster fails to create - ROLLBACK

Run the following to check the status of the cluster:
aws sagemaker describe-cluster --cluster-name <cluster-name>

If you see an error like, "FailureMessage": "We currently do not have sufficient capacity for the requested instance type(s). Please try again."
you should double-check that your instance types are in the correct AZ:
aws ec2 describe-instance-type-offerings --location-type availability-zone  --filters Name=instance-type,Values=p5.48xlarge --region us-west-2 --output table

You should then check the CloudWatch logs to see if there are any lifecycle script creation failures.


remove check that length of outputs is non-zero

Although highly unlikely, It is possible to have 0 outputs if inputs EXACTLY cover the fees for a transaction.

Is this a forking change? Seems like a node running this change would accept a transaction when another one wouldn't?

Is this a forking change? Seems like a node running this change would accept a transaction when another one wouldn't?

yes you're right. Let's hold off on this and incorporate it with the upcoming NFT V2 fork

Merged in a41b2fa02c3a4024b174f203e2e51196a0c5ddbc


Is this a memory leak in Guzzle middleware?

Does the following output shows a memory leak?
My worker server is running out of memory. Although its a stable allocation but its not freeing up the memory after the execution.
Here is the issue https://github.com/guzzle/oauth-subscriber/issues/47#issuecomment-148480943
use GuzzleHttp\HandlerStack;
use GuzzleHttp\Subscriber\Oauth\Oauth1;

function stack_it()

{
  $stack = HandlerStack::create();

  $middleware = new Oauth1([
    'consumer_key'    => NULL,
    'consumer_secret' => NULL,
    'token'           => NULL,
    'token_secret'    => NULL,
  ]);
  $stack->push($middleware, 'oauth_1');

  $stack->remove('oauth_1');
}

echo 'initial: '.memory_get_usage().PHP_EOL;
for ($i=0; $i < 20; $i++)
{
  $this->stack_it();

  gc_collect_cycles();
  echo memory_get_usage().PHP_EOL;
}

die();

Output
initial: 3818976
4282040
4282040
4282040
4282040
...
4282040
4282040
4282040
4282040

A certain amount of memory will be consumed by the PHP runtime as it loads and parses class definitions. As the memory usage is stable after the first loop iteration in the example provided, that explanation would fit the data provided, though I would need to run a full profile to say that with certainty.
That said, it looks like the memory that can't be reclaimed is a stable ~400KB. Is that what's causing your server to crash?

I am running a cronjob in CodeIgniter and killing it after 10mins to reset the memory but it still fills the memory and causing server to crash. How can I run a full profile?

I like blackfire.io but other options include XDebug and New Relic.

The above test script makes no sense to me and cannot show a memory leak in guzzle itself.
The $stack variable is local to the stack_it function. And you collect memory outside the function. So PHP should always be able to free the memory that is only used locally.

Agreed. This is not a memory leak or an issue in Guzzle.


Make sure there is only one entry per day

This only applies to CSVs that are updated via scraper. While it's
technically possible to have multiple values per day, it's hard to
ensure correctly from the scrapers. Some scrapers may not be able to
determine the time and will default to an empty string. If there is
already an entry with a time in place, this could lead to duplicate
entries.

Agreed. I think, I had at least one case, where I had one day with two times. Maybe we can build the scrapers, so that it only needs a single entry for the day to add. This allows to keep hist entries with two times.

I think consensus is to keep only one entry, so if it later changes, just update the existing row. This is currently out-of-scope for the scrapers. They only add a line if there is no entry for the day.


Text permission table

Requestor(s): Kaitlyn Mazzilli
Table or Figure title: Table 65. Permission to text mobile phone number among verified participants
Metrics to be updated or created: Weekly operations report
Variables needed (include variable name and Concept ID):
Text permission, yes or no: concept id: 646873644, variable name: RcrtUP_MobileTxt_V1R0
Mock-up table if [applicable:]
Table 65 mock up.docx
Notes:
We are looking to see how many verified participants have given us permission to text their mobile phone number. We would like to show this in a table (see mock up) with the counts and percents. We would also like to have a row for people who did not give us a mobile phone number. This should add up to the number of total verified participants that we have.
@mnataraj92 Would concept id:388711124, variable name: RcrtUP_Mobile_v1r0 be blank if a mobile number was not given? If so, that would work for the row that would show who did not give us a mobile phone number.
Approved by: Michelle Brotzman

yep, 388711124 would be blank if a mobile number was not given

@kmazzilli

This looks good to me! Thanks @KELSEYDOWLING7

This looks good and it's great to see such overwhelmingly positive numbers!


banner on every page load (in UK)

I'm browsing (via VPN through the UK) a test environment with the current plugin version installed and I'm seeing the consent banner on every page load. Is that intended?

Is that after accepting or declining?
We do have UK configured like the EU so the expectation is that the banner would show for those users until they make a selection.

Doesn't seem to matter which option I pick, banner keeps returning on a page load.
On Chrome, Firefox, and Safari via macOS 14.4.1.

Assuming your test environment is not a umich.edu environment I think that is what is causing the issue.  The one trust production script only sets the cookies to the umich.edu domain and not the domain the site is running as.  I don't have a test mode built into this plugin right now.  I was able to confirm this behavior.  I will investigate adding this ability to the plugin.

Ah, yes I was not on an umich.edu domain.

I have released a new version where there is a settings page that you can enable test mode.  This should make the plugin work as expected on non-umich.edu domains.  Enabling this will add a persistent message on the wordpress admin until it is toggled back to production.  This is to help make sure its not in test mode in a production environment.


Feat: change route in place from id to position

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

7 of 7 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.9%) to 45.039%

Totals

Change from base Build<PHONE_NUMBER>:
0.9%

Covered Lines:
254

Relevant Lines:
399

💛  - Coveralls


help wanted-how to use this project when develop a deposit and withdraw app?

We develop a crypto deposit and withdraw app, it depend on blockchain data, is there any example for this?
if I run a blockatlas instance, it must store all transactions on my local database? or only store the transactions of all the deposit's address?

Check deposit and withdraw status? better to connect to full node or popular block explorer


colors on Windows

related on https://github.com/tomnomnom/gron/issues/40

Hi @mattn! Thank you for the PR; and sorry it's taken me a little while to get around to reviewing it!


How to get MSBuild binaries without cloning the repo

Could you provide binaries for those who don't need or want the sources entirely, or don't know how to build the sources, or simply couldn't be bothered? For those who just need MSBuild without all of VS2015 that it comes with.

The supported way to get MSBuild without Visual Studio is the Microsoft Build Tools installer, linked from the Releases tab.

What releases tab?

Ah there it is.
Anyway, why not host the installer here as well? If the linked installer is the one built from the source code here at github, they should belong together. If not, then my requests still standas to release prebuilt versions of the sourcecode.

The installer is hosted on the download site for Visual Studio. We intend to provide a NuGet package so you don't have to install it, but that work is not yet complete. For now this is the only released version we provide.


[LORO-300] Fractional index

This enable users to move element easily. We can integrate it into tree node
LORO-300

Is this feature dropped or just postponed?
My use case requires manual ordering of Tree children. I think fractional indexing could work, as my use case is similar to Figma's.
However, the third drawback they highlight (averaging between two identical indices) needs to be solved without depending on a central server. Could the second conflicting item simply be assigned the average of the indices of the first conflicting item and the next item?
Or is there some other reason for closing this issue as not planned?
If you're not doing fractal indexing, what are the alternatives?

It's dropped.
The fractional index suffers from interleaving problems. We will try building a movable list this season that can avoid this problem while remaining efficient. We hope to integrate it into tree as well.
The other reason we drop it is that the fractional index the solution can be implemented in the application code. It doesn't require special CRDT behaviors(LLW register is enough), so we can already use it with the current movable trees.

Fair enough. Interleaving is OK for me, but I see that it can be a problem for others.
My plan B was to implement reordering myself with LWW, like you say. Shouldn't be too hard.
Thanks for the quick answer(s)!


Execution error (ExceptionInfo) at cozo-clj.core/mk-err (core.clj:42). ; (err) parser::pest

I am getting this error:
The query parser has encountered unexpected input / end of input at 29..29
; (err)    ╭────
; (err)  1 │ :create news_record {msghash=>label, score, text, create-time, update-time, txt_vec:<F32; 1536> }
Context:
I am trying to insert relation with key:
(def create-news-relation ":create news_record {msghash=>label, score, text, create-time, update-time, txt_vec:<F32; 1536> }")
this line fails:
(db/query newsdb create-news-relation)
UPD
I tried this in cozodb REPL and I got the same error.

It works if I remove 'minus' in column names.
This query works:
:create news_record { id => msghash, label, score, text, create_time, update_time, txt_vec:<F32; 1536>}
Please improve error messaging: dashes in column names are not allowed.


Machine learning artifacts export support

Hi Team,
While using the utility we see only export of experiments and models getting supported. Other ML leaning artifacts 'Features' and 'servings' are not getting exported.
Requesting your kind confirmation on this that these are not being supported or if affirmative that they support, your kind guidance on how to use this utility for exporting them

The tool handles MLflow objects supported by the open source MLflow API. "Features" and "servings" are not part of MLflow.


problems with setup.py

Hi
After installing anaconda and all the neccesary packages in an environment I proceeded with the installation but when I do
$ python setup.py build_ext --inplace
I get this:
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: setup.py --help [cmd1 cmd2 ...]
or: setup.py --help-commands
or: setup.py cmd --help
error: no commands supplied
I get a similar message when doing the $ sudo python setup.py develop
can you help with this?
thanks, Elisa

Hi,
I am working with Elisa, and this seems more like a cython problem. Therefore I asked the problem on Stackoverflow as well.
Cheers and thanks for the help,
Daniel

Hi Elisa and Daniel,
Thank you very much for your interest in trying Starfish! I'm sorry the install process didn't go smoothly for you. I have not seen this error before, but if you provide me some more information about your system I can help get to the bottom of this.
Are you able compile a simple cython test program, for example the "Hello World" on the tutorial?
Sometimes Python path's can get mixed up, just to make sure you're using the anaconda Python 3.x version, when you run python, do you get something that looks like:
iczekala scout 80> python
Python 3.3.5 |Continuum Analytics, Inc.| (default, Sep  2 2014, 13:55:40)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

As an FYI, I am also working on streamlining the code to be more user-friendly in a new branch (doc-refactor). There should be a stable release from this branch within the next few weeks - month.
Thank you,
Ian

Hi Ian
Thanks for the fast response. Yes, I managed to run the hello world but then in the same conda environment I change to the starfish folder and the setup.py gives the same problem. I have this:
centOS (64bit): version 6.5
cython -V: Cython version 0.22
and when running python:
(astro2)[edm@edm Starfish]$ python
Python 3.3.5 |Continuum Analytics, Inc.| (default, Sep  2 2014, 13:55:40)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.

thanks, Elisa

Hi again
I think I managed to install it but I'm not sure why ;)
First I installed again anaconda3 in my home (I had it in another folder where I usually install programs).
This time when doing the build_ext it worked:
(oracle)[edm@edm Starfish]$ python setup.py build_ext --inplace
running build_ext
skipping 'Starfish/covariance.c' Cython extension (up-to-date)

and when going to the next step I had the same problem as in issue #8 , since sudo was pointing to another python version so I changed the path and it worked. At some point before doing this it also complained about the argparse and I degraded to python3.3.5 but I guess it was also related to the python version which sudo was really pointing to...
I hope we don't have more problems :)
cheers, Elisa

Great! I am glad that you managed to work this out. It seems like there might be some subtlety when referencing Anaconda's paths. I will add a note in the README file that there may be an issue when installing to a non-default directory. I haven't tried it yet, but I do plan to support the
python setup.py --user

command to allow non-sudo installs. As I mentioned, a more user friendly release of the code is coming soon. As it stands, the current master branch mainly provides working tools to interface with spectral libraries and a working but un-documented version of the spectral emulator (the appendix of our paper). The new release will fix this problem.

Hey, I know this issue is closed, but I caught sight of it and thought of another solution in case other folks were having similar problems and stumbled upon this issue in search of answers.
I think a key strategy is to manage "conda environments".  One way conda does this is to easily prepend the correct python path to your $PATH.  You can manage this with:
source activate my_python_environment
...where my_python_environment is created following the steps from the conda documentation.  This strategy is useful beyond this repo.  For example, switching between python2 and python3 is very easy with this system.
I hope that helps anyone who might have also encountered this problem and is consulting this issue for some answers.  Cheers.


Canary Istio Ingress Upgrade using Helm is unstable

Bug Description
We are automating istio canary upgrade worflow for istio using helm. Updating from 1.14.4 to 1.15.1.
As a POC for this task, I tried to update Istiod and base via canary method following the link -> https://istio.io/latest/docs/setup/upgrade/helm/#canary-upgrade-recommended. The upgrade goes well.
However, the real problem comes while doing canary updates for Istio-ingress via helm. There are new sections being added in the documentation that are mainly "Experimental".

I would like to know what is the official process to do so, lately I am observing the documentation being updated quite a lot?

a. https://istio.io/v1.14/docs/setup/additional-setup/gateway/#canary-upgrade-advanced - I tried to update istio ingress by creating deployment using helm, the External IP never gets assigned (The note of using Kubernetes YAML alone for this type is not helpful in our case because we are using helm). Is there a way by which we can upgrade istio ingress and shifting the config without any losses?

b. At the same time you have info here -> https://istio.io/latest/docs/setup/upgrade/canary/#data-plane that says, "Istio gateways do not run revision-specific instances, but are instead in-place upgraded to use the new control plane revision". Point a and this data is creating a bit of confusion, however, I tried to use the approach mentioned in this link (i.e. updating istiod and base via canary and ingress via in-place) but then I saw 2 Ingress pods being present, one of old ingress and other of newer one, newer never gets READY and it doesn't replace old pod as well.
At this point, there is no clear solution to the problem of canary based update for istio-ingress and thus we are blocked. Can anyone from istio clear this confusion or maybe help with providing the right set of guidelines for Helm based Canary upgrade workflow for istio.
Version
$  kubectl version --short
Client Version: v1.24.7+rke2r1
Kustomize Version: v4.5.4
Server Version: v1.24.7+rke2r1
$ helm version --short
v3.8.1+g5cb9af4

Additional Information
No response

hi

HI @Divyakhatnar, are you able to upgrade now?

These docs have been updated (note it was just docs, no code), can you verify if they are clear now?

Apologies for late response, I am no more associated with the project in which I wanted to canary update. I won’t be able to validate this. Thank you for taking some time to look into this.


Add additional payment schemes:

PPLNS
PPLNT (pay per set amount of time :D) #132

Leave suggestions below if you want to see anything else

Pay Per Last N Time Shares (PPLNT)
Block rounds are defined by a set time period.
To qualify your shares during the round for payment,
mine for at least 51% of the time period in the round.

we need this!

#132

PPLNT is now in the master branch 🥇

Suicidal PROP

Every defined units of time (hours, days, weeks), drop EVERY share making pool hoppers earn nothing.

Would love to know some opinions before I code it :)

The defined amount of time would need to be chosen carefully based on the pool's actual block interval. If it takes a few days to find a block, then suicidal dropping of the shares wouldn't hurt a new miner but it would remove the potential pool hoppers shares. This seems like a good addition to PPLT and/or PROP.

Maybe for established pools but for those of us struggling to build a userbase I don't think we could. We need to appeal to more miners not less.

I was thinking I would just put in suicidal in pools_config and how often per day it should reset the shares. 0 being never and the default.

Agree with fittsy once the pool has grown... Chasing away larger miners as they would not want to stake their hashing power when they lose so much...

PPLS and Pay Per Block (only how find block get all reward)

How to use PPS (pay per share) mode?


Error after update

Description
Today I just update the cyberdream colorscheme, and it tells me it has break changes. When I restart nvim there is an error message like this:

And I use lazy.vim.
Neovim version?
0.10.0
What should happen?
No Error message.
What happened instead?
Error message is showed.
Your configuration
return {
  "scottmckendry/cyberdream.nvim",
  {
    "LazyVim/LazyVim",
    opts = {
      colorscheme = "cyberdream",
    },
  }
}

I ran into this as well with my lazyvim config and was able to resolve it by updating my lualine config. I now have
return {
  ...
  {
    "nvim-lualine/lualine.nvim",
    opts = function()
      local cyberdream = require("lualine.themes.cyberdream").get_theme()
      return {
        options = {
          ...
          theme = cyberdream
        }
      }
  }

I've redacted some things but I think this is the minimum to get this working for now.

@muzichen thanks for raising the issue. @catoa is right. Take a look at the pinned issue #65 that has some more info on this.
This was the breaking change introduced in v2.

Ignore my last comment and the v2 release entirely. A big mess up on my part will have broken any lualine configs using the "auto" theme.
I've resolved this now with the v3 release. If your config working in v1 it should now work again.

@scottmckendry  Thanks for your great work and thanks @catoa , it works.


Taylor Series

Greetings, make sure you write your program with extension of file to specify language!
Waiting for your next PR!!!


Arm images (odroidC2)

As there is no availability of RPI4 at the moment, I'm attempting to do an arm installation on a arm64 board that I have at hand (OdroidC2, https://en.opensuse.org/HCL:OdroidC2), the HW is old and unsupported at the moment, and kernel support is stop at 3.x, so it might "just not work". Nevertheless, the skeleton and the tooling creates flashable images from container images, with additionally support for vendor specific bits (u-boot, etc) which can be extended in a later moment.
The PR also adds a CI workflow to create arm64 images for examples. Those can be images that are derivative, and which we can create images from.
ATM testing it on odroid with: ./images/arm-img-builder.sh --model odroid_c2 --docker-image quay.io/costoolkit/examples:odroid-c2-latest.
This will generate an SD card for odroid-c2 from the image samples. Very PoC state.
Update
The kernel doesn't start due to #785 , which doesn't look directly related to this work. Here we provide a basis for supporting other models as well
Todo:

[x] Cleanup
[x] Read packages from manifest, have work-out-of-the-box defaults
[x] CLI, help, docs
[x] Example Dockerfile should be based on standard image, and not hook into the builder CI images.
[x] ~Hook ARM images to CI pipelines, publish them~ Odroid images are not booting due to kernel issues, better not publishing them
[x] ~The firmware package should use zypper to take the required firmware files instead of wgetting them~ Leaving the package as an example
[x] ~Test basic functionalities are there (upgrade, reset, recovery)~  Cannot test them, as Odroid C2 kernel is not booting
[x] Take optionally a cloud-init config as input to place into the OEM partition

Seems default kernel for odroidc2 doesn't work. It automatically reboots, I can reproduce the same problem on official JeOS odroidc2 images
Signed-off-by: Ettore Di Giacinto<EMAIL_ADDRESS>

This script should be also part of the unified CLI https://github.com/rancher-sandbox/cOS-toolkit/issues/108

I'm having some difficulties in using zypper from amd64 to install the firmware packages which are arm64. anyhow, as the OdroidC2 is not booting due to kernel issues, I think I'd merge the package nevertheless just for an example for bringing in additional firmwares cc @kkaempf
I think the kernel/initrd issues I'm seeing are not relevant to the arm work here, but to the specific board which seems quite difficult to support (official support stopped at 3.x). I tried to create an image with the official kernel and 3.x but fails as needs efi embedded, and currently I think is out of scope building the kernel (even tho if can be done in a separate issue/hackweek work)

Im missing some docs on how to create this locally, guessing that will come afterwards?

FYI, this fails if you dont have a repo under the build dir as it tries to sync it and fails

also, if you have a local build dir repo with some x86 packages on it it will install those first...is that correct??
system/grub2-config | 0.0.14  |         | cOS

one last comment and I shut up..
would it be really difficult to transform this script into go? I mean, not adding more bash is always good :D

Im missing some docs on how to create this locally, guessing that will come afterwards?

I'm wondering about docs. I guess we should have just dev docs, as this shouldn't really be used outside of our CI.

one last comment and I shut up..
would it be really difficult to transform this script into go? I mean, not adding more bash is always good :D

I'd keep #108 for that. I think now is out of scope to start everything from scratch... following that reasoning we should really glob all the various builds-* commands then to that CLI.

FYI, this fails if you dont have a repo under the build dir as it tries to sync it and fails
And it does it AFTER downloading the 1Gb image....

good point! now it reads the local build only if --local is provided

kind of fails for me in the last part:
 INFO   Checking for file conflicts..
 INFO   📦  Package  firmware/odroid-c2-20170419-5.177 installed
442+0 records in
442+0 records out
442 bytes copied, 0.00415753 s, 106 kB/s
96+0 records in
96+0 records out
49152 bytes (49 kB, 48 KiB) copied, 0.0052235 s, 9.4 MB/s
1792+0 records in
1792+0 records out
917504 bytes (918 kB, 896 KiB) copied, 0.0310948 s, 29.5 MB/s
del devmap : loop3p4
del devmap : loop3p3
del devmap : loop3p2
del devmap : loop3p1
umount: /dev/loop3: not mounted.
umount: /tmp/arm-builder.42PtxukneO: not mounted.
umount: /dev/loop3: not mounted.
umount: /dev/loop3: not mounted.
umount: /dev/mapper/loop3p4: no mount point specified.
umount: /dev/mapper/loop3p3: no mount point specified.
umount: /dev/mapper/loop3p1: no mount point specified.
umount: /dev/mapper/loop3p2: no mount point specified.

I never get the message echo ">> Done writing $output_image" but not sure why is it failing during cleanup

Actually seems to be missing to copy some files, thats why its failing. I guess this needs either the firmware package pushed OR built locally :D

even with the firmware package locally, Im getting an error:
Downloading packages [1/1] █████████████████████████████████████████████████████████████████████ 100% | 0s
 INFO   Checking for file conflicts..
 INFO   📦  Package  firmware/odroid-c2-20170419-5.177 installed
442+0 records in
442+0 records out
442 bytes copied, 0.00382343 s, 116 kB/s
96+0 records in
96+0 records out
49152 bytes (49 kB, 48 KiB) copied, 0.00356591 s, 13.8 MB/s
1792+0 records in
1792+0 records out
917504 bytes (918 kB, 896 KiB) copied, 0.0349909 s, 26.2 MB/s
+ kpartx -dv /dev/loop6
del devmap : loop6p4
del devmap : loop6p3
del devmap : loop6p2
del devmap : loop6p1
+ umount /dev/loop6
umount: /dev/loop6: not mounted.
+ cleanup
+ sync
+ sync
+ sleep 5
+ sync
+ '[' -n /tmp/arm-builder.bX8nkKjN8t ']'
+ rm -rf /tmp/arm-builder.bX8nkKjN8t
+ '[' -n /tmp/arm-builder.wZXwQ74D3a ']'
+ rm -rf /tmp/arm-builder.wZXwQ74D3a
+ '[' -n /tmp/arm-builder.UBCBOowITH ']'
+ rm -rf /tmp/arm-builder.UBCBOowITH
+ '[' -n /tmp/arm-builder.KvdjKmTzhU ']'
+ umount /tmp/arm-builder.KvdjKmTzhU
umount: /tmp/arm-builder.KvdjKmTzhU: not mounted.
+ true
+ umount /dev/loop6
umount: /dev/loop6: not mounted.
+ true
+ rm -rf /tmp/arm-builder.KvdjKmTzhU
+ '[' -n /tmp/arm-builder.jSvqydPqsA ']'
+ rm -rf /tmp/arm-builder.jSvqydPqsA
+ '[' -n /dev/loop6 ']'
+ umount /dev/loop6
umount: /dev/loop6: not mounted.
+ true
+ '[' -n /dev/mapper/loop6p4 ']'
+ umount /dev/mapper/loop6p4
umount: /dev/mapper/loop6p4: no mount point specified.
+ true
+ '[' -n /dev/mapper/loop6p3 ']'
+ umount /dev/mapper/loop6p3
umount: /dev/mapper/loop6p3: no mount point specified.
+ true
+ '[' -n /dev/mapper/loop6p1 ']'
+ umount /dev/mapper/loop6p1
umount: /dev/mapper/loop6p1: no mount point specified.
+ true
+ '[' -n /dev/mapper/loop6p2 ']'
+ umount /dev/mapper/loop6p2
umount: /dev/mapper/loop6p2: no mount point specified.
+ true
+ losetup -D

even with the firmware package locally, Im getting an error:
Downloading packages [1/1] █████████████████████████████████████████████████████████████████████ 100% | 0s
 INFO   Checking for file conflicts..
 INFO   📦  Package  firmware/odroid-c2-20170419-5.177 installed
442+0 records in
442+0 records out
442 bytes copied, 0.00382343 s, 116 kB/s
96+0 records in
96+0 records out
49152 bytes (49 kB, 48 KiB) copied, 0.00356591 s, 13.8 MB/s
1792+0 records in
1792+0 records out
917504 bytes (918 kB, 896 KiB) copied, 0.0349909 s, 26.2 MB/s
+ kpartx -dv /dev/loop6
del devmap : loop6p4
del devmap : loop6p3
del devmap : loop6p2
del devmap : loop6p1
+ umount /dev/loop6
umount: /dev/loop6: not mounted.
+ cleanup
+ sync
+ sync
+ sleep 5
+ sync
+ '[' -n /tmp/arm-builder.bX8nkKjN8t ']'
+ rm -rf /tmp/arm-builder.bX8nkKjN8t
+ '[' -n /tmp/arm-builder.wZXwQ74D3a ']'
+ rm -rf /tmp/arm-builder.wZXwQ74D3a
+ '[' -n /tmp/arm-builder.UBCBOowITH ']'
+ rm -rf /tmp/arm-builder.UBCBOowITH
+ '[' -n /tmp/arm-builder.KvdjKmTzhU ']'
+ umount /tmp/arm-builder.KvdjKmTzhU
umount: /tmp/arm-builder.KvdjKmTzhU: not mounted.
+ true
+ umount /dev/loop6
umount: /dev/loop6: not mounted.
+ true
+ rm -rf /tmp/arm-builder.KvdjKmTzhU
+ '[' -n /tmp/arm-builder.jSvqydPqsA ']'
+ rm -rf /tmp/arm-builder.jSvqydPqsA
+ '[' -n /dev/loop6 ']'
+ umount /dev/loop6
umount: /dev/loop6: not mounted.
+ true
+ '[' -n /dev/mapper/loop6p4 ']'
+ umount /dev/mapper/loop6p4
umount: /dev/mapper/loop6p4: no mount point specified.
+ true
+ '[' -n /dev/mapper/loop6p3 ']'
+ umount /dev/mapper/loop6p3
umount: /dev/mapper/loop6p3: no mount point specified.
+ true
+ '[' -n /dev/mapper/loop6p1 ']'
+ umount /dev/mapper/loop6p1
umount: /dev/mapper/loop6p1: no mount point specified.
+ true
+ '[' -n /dev/mapper/loop6p2 ']'
+ umount /dev/mapper/loop6p2
umount: /dev/mapper/loop6p2: no mount point specified.
+ true
+ losetup -D

oh, I will fix it! I'm experimenting locally few changes to give a last chance to the Odroid kernel, so will add in a few
The image was actually built correctly, It's just the message which is misplaced

I've tried with the kernel built in https://github.com/rancher-sandbox/cOS-toolkit/commit/c31ebbd1ac151883b49a74fbf90955c38841eb3f . It's the old 3.16.y with EFI_STUB support added. I get the same result, EFI attempts to load kernel, and then blank screen and reboot. I'm trying to figure if it's something else that might be related to my devices as the JeOS one fails in the same way.

Going to merge it and debug further my board, but i think what I'm seeing here is very specific


Fix the build of yarpl under C++17 mode

std::is_callable became std::is_invocable and got a slightly different API shortly before C++17 was finalized.
To stay compatible with previous versions, use the backports in Folly.

The build passed, a test failed. I would expect this diff to only have build-time visible failures, and to have no runtime visible difference given that this only changes enable_if guards in ways that the compilation would simply fail if they were wrong.

Almost certainly a flakey test, I've reenqueued the failing build&run.


Does UIRecord provide screenshots as soon as an item is clicked?

Hi,
I am so sorry if this question has already been asked. I am just curios. Does WinAppDriverUIRecorder create screenshot immediately after click on an item? Or does exist some modul which provides this function? I am looking forward to your answers or ideas.
Greetings
Maya

No, the UI Recorder doesn't provide screenshot. You can use Appium Desktop Client in conjunction with WinAppDriver to capture screenshots. You can learn more about it here(YouTube) and here.


Delete things.rb

MAS-only, it seems.

Can be bought from http://sites.fastspring.com/culturedcode/product/main

Thank you. Missed that.


Sets selected icon style depending on component type

This resolves https://github.com/exponentjs/react-native-tab-navigator/issues/68

This doesn't work if you pass in a higher-order component that renders its own Text/Image child. We need a different approach.

@ide Yes, you are right. It does get rid of the warning message though. Custom components should just use the renderSelectedIcon property.

Will close since this issue is more than a year, feel free to a open a new if this is still a issue.


Obstacle avoidance and wall following

Week1 deliverable for final project.

CodeFactor found an issue: Using global for 'scd' but no assignment is done
It's currently on:
group7_ws\src\auefinals\aue_finals\scripts\wall_follower_obstacle_avoidance.py:16
Commit 154186432c5de368891562b1388efdbc97e965c2

CodeFactor found an issue: Global variable 'scd' undefined at the module level
It's currently on:
group7_ws\src\auefinals\aue_finals\scripts\wall_follower_obstacle_avoidance.py:9
Commit 154186432c5de368891562b1388efdbc97e965c2


proposal: crypto: add SignContext

It is often desirable for a custom crypto.Signer implementation to get a hold of a context.Context during a signing operation, especially so if the signing involves HTTP or RPC roundtrips.
For example, one may want to use Google Cloud KMS to sign digests by implementing the crypto.Signer interface. This could then be fed to x/crypto/acme.Client where each request needs to be signed using crypto.Signer.
We already have precedents:
go1.7.txt:pkg net, method (*Dialer) DialContext(context.Context, string, string) (Conn, error)
go1.7.txt:pkg os/exec, func CommandContext(context.Context, string, ...string) *Cmd
go1.8.txt:pkg database/sql, method (*DB) ExecContext(context.Context, string, ...interface{}) (Result, error)

Please add Go2 label.

@gopherbot please add go2

Note that you can already use a curried function to achieve a similar effect:
type CtxSigner = func(context.Context) crypto.Signer

func f(ctx context.Context, signCtx CtxSigner, […]) {
	sig, err := signCtx(ctx).Sign(rand, digest, opts)
}

That is, this may be more of an issue with the acme.Client API than with the crypto package itself. (See also #28342 and #20280.)

CC @FiloSottile

Added to proposal minutes, but the motivation here is quite old. Is this still an ongoing concern for anyone?
It does seem like having a Signer implementation that has a context inside it (in a closure, for example) would be fine and does not require adding a new interface that the crypto ecosystem has to adopt.

This proposal has been added to the active column of the proposals project
and will now be reviewed at the weekly proposal review meetings.
— rsc for the proposal review group

Based on the discussion above, this proposal seems like a likely decline.
— rsc for the proposal review group

No change in consensus, so declined.
— rsc for the proposal review group


✨ Mobile | Claim reward in-person

Hi team
Pain

Currently we have a workflow in the app for redeeming rewards to be sent to an address, but no way to claim a reward in-person (such as at a conference).
Suggested Solution

Update the redemption workflow to ask if the user is at an event and allow to be claimed without capturing an address.
Tasks

[ ] Investigate
[ ] Implement solution

Thanks!

Duplicate of https://github.com/SSWConsulting/SSW.Rewards.Mobile/issues/805


Mariadb integration

Integration branch for MariaDB appliance.

@benbjohnson I am seeing go test hang with a defunct innobackupex process.
Have you seen this before?

Source of the hang is TestIntegration_BackupRestore.
Looks like we might need better process handling, how about returning the *exec.Cmd or something from Backup() so that the caller can kill off the innobackupex process if needed?

@josephglanville Sorry, I had a temporary unit test committed that performed the commit and then waited indefinitely so I could manually verify that it worked. It was a temporary hack to test backups while I was getting the HTTP handler working:
https://github.com/flynn/flynn/blob/mariadb-integration/appliance/mariadb/process_test.go#L216
I'm guessing that's the cause of the hang. I removed the test in 5b75642 since it's being tested in the TwoNode test.

All good, just wasn't sure if it was intention etc. :)

@josephglanville I pushed up some minor fixes and clean up in cd4c3de. I also went through and verified that all the Exec() calls are idempotent (like CREATE USER) and fixed that where that wasn't the case.

@benbjohnson fixed the semi-sync issues. As a result I also had to skip setting up replication when running in singleton or the single node would wait forever for a slave to connect. On the plus side I did verify it works the way we intend. :smile:

@benbjohnson changed the two node test to not attempt to do a consistent read as we don't do this for postgres and it's not a property we get with semi-sync replication (or pg synchronous replication for that matter).
Remaining TODOs are:

[ ] zombie innobackupex children
[ ] unit tests fail when all run at once but work when run individually (they fail on streaming the backup which is quite confusing..)
[ ] provider databases API
[ ] main binary plumbing
[ ] deploy and add to controller during bootstrap

@josephglanville I'm looking into the unit tests failing when run all at once. It looks like something is preventing the processes from starting up in a timely manner and the backups and returning a 0 byte backup. I added a waitForUpstream and working status endpoint but I'm still tracking down exactly what is the cause for the stall. Just wanted to give you a heads up.

@benbjohnson makes sense. We might need to make the backup http handler a little better. I was thinking of exposing the *exec.Cmd or wrapping it with something so that we can both call Wait() on the process itself but also get non-0 exit statuses and stderr and log them.

@josephglanville I added stderr logging for the Cmd. The instructions for innobackupex say that you need to check for "completed OK!" at the end of stderr so we'll have to make some kind of reader that wraps the stdout & stderr.
On the restore side we'll need to add some kind of confirmation at the end. Either magic numbers or a checksum.  Well, at least the last one I know about. It seems to work now. Fixed in 89249e4883ddfecc45de063cc1829ce0482f1a5f.

@benbjohnson sorry about the unit tests the other night, was meant to push commit to fix it but forgot.
I am moving onto integrating up the stack using generalised primitives from the state machine. Namely I extracted and made the postgres client generic so it can be used by the deployment engine to automatically handle deployments for Sirenia compatible database appliances.

Fixed the innobackupex zombies, calling cmd.Wait() does the trick.

Pushed the provider API and a bunch of fixes to stuff.
Now that we are out of TODOs.. time for more..

[ ] Integration tests - if possible try generalize the pg tests so they can be run on any Sirenia compatible DB
[ ] Deployment bug, when deployment has replaced all peers the old peers don't seem to be terminating
[ ] Cleanup - lots of the code (well the stuff I did atleast) got a bit hacked at times, cleanup everything and rebase into one big commit for the mariadb appliance and seperate commits for anything that was done for Sirenia state machine extraction.

Status update. Fixed the deployment issue, we had forgotten to properly implement ReadWrite in the peer status endpoint.
I am now moving onto the integration tests for the deployment side of things.
@benbjohnson is working on implementing the CLI tools.

So I have hit something concerning. When I originally hit it I thought it was just something strange in the dialer code but now that I attempted it with a custom dialer I am now certain it's a bug in either the driver or semi-sync replication or an interaction between the two.
I noted it in the code where I worked around it but will paste there for ease of reading:
        // XXX(jpg): For some reason the MySQL driver hangs if CREATE DATABASE
        // is sent as soon as initDb is called.
        // Unfortunately it could be:
        //   a) Bug in go-sql-driver/mysql
        //   b) Bug in MySQL semi-sync replication
        // Both of which are pretty bad, b) ofcourse being much worse.
        // For now just sleep but it does imply there are possible issues here
        // that could effect user applications when a new primary is promoted
        // or a new cluster is newly created and not yet had time to settle.

Now the workaround is just a small sleep but it does imply something darker going on as when I did a goroutine stacktrace dump we see the MySQL driver code hanging on trying to fill a buffer from the established connection, it seemingly hangs here forever:
goroutine 26 [IO wait, 13 minutes]:
net.(*pollDesc).Wait(0xc2080fced0, 0x72, 0x0, 0x0)
	/usr/local/go/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc2080fced0, 0x0, 0x0)
	/usr/local/go/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).Read(0xc2080fce70, 0xc20812d000, 0x1000, 0x1000, 0x0, 0x7fdda3470dc8, 0xc2080dc1a8)
	/usr/local/go/src/net/fd_unix.go:242 +0x40f
net.(*conn).Read(0xc2080501a0, 0xc20812d000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	/usr/local/go/src/net/net.go:121 +0xdc
github.com/flynn/flynn/Godeps/_workspace/src/github.com/go-sql-driver/mysql.(*buffer).fill(0xc208043680, 0x4, 0x0, 0x0)
	/home/jpg/go/src/github.com/flynn/flynn/Godeps/_workspace/src/github.com/go-sql-driver/mysql/buffer.go:68 +0x3bd
github.com/flynn/flynn/Godeps/_workspace/src/github.com/go-sql-driver/mysql.(*buffer).readNext(0xc208043680, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/jpg/go/src/github.com/flynn/flynn/Godeps/_workspace/src/github.com/go-sql-driver/mysql/buffer.go:97 +0x68
github.com/flynn/flynn/Godeps/_workspace/src/github.com/go-sql-driver/mysql.(*mysqlConn).readPacket(0xc208043680, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/jpg/go/src/github.com/flynn/flynn/Godeps/_workspace/src/github.com/go-sql-driver/mysql/packets.go:30 +0xa1
github.com/flynn/flynn/Godeps/_workspace/src/github.com/go-sql-driver/mysql.(*mysqlConn).readResultSetHeaderPacket(0xc208043680, 0x100000003, 0x0, 0x0)
	/home/jpg/go/src/github.com/flynn/flynn/Godeps/_workspace/src/github.com/go-sql-driver/mysql/packets.go:470 +0x40
github.com/flynn/flynn/Godeps/_workspace/src/github.com/go-sql-driver/mysql.(*mysqlConn).exec(0xc208043680, 0xc2081326e0, 0x1b, 0x0, 0x0)
	/home/jpg/go/src/github.com/flynn/flynn/Godeps/_workspace/src/github.com/go-sql-driver/mysql/connection.go:293 +0x8a
github.com/flynn/flynn/Godeps/_workspace/src/github.com/go-sql-driver/mysql.(*mysqlConn).Exec(0xc208043680, 0xc2081326e0, 0x1b, 0xe66558, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/jpg/go/src/github.com/flynn/flynn/Godeps/_workspace/src/github.com/go-sql-driver/mysql/connection.go:274 +0x2e1
database/sql.(*DB).exec(0xc208058640, 0xc2081326e0, 0x1b, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/database/sql/sql.go:898 +0x2e2
database/sql.(*DB).Exec(0xc208058640, 0xc2081326e0, 0x1b, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/database/sql/sql.go:875 +0xcd
main.func·001(0xc20809c3c0, 0xc2080b8080, 0xc208067620)
	/home/jpg/src/flynn/test/test_mariadb.go:56 +0x6fe
main.testSireniaDeploy(0xc2080503e0, 0xc2080503e8, 0xc20809c3c0, 0xc208067620)
	/home/jpg/src/flynn/test/sirenia.go:190 +0xd61
main.(*MariaDBSuite).TestDeploySingleAsync(0xc208053090, 0xc20809c3c0)
	/home/jpg/src/flynn/test/test_mariadb.go:88 +0x141
reflect.Value.call(0xab8780, 0xc208053090, 0x313, 0xae5650, 0x4, 0xc2080edf78, 0x1, 0x1, 0x0, 0x0, ...)
	/usr/local/go/src/reflect/value.go:419 +0x10e5
reflect.Value.Call(0xab8780, 0xc208053090, 0x313, 0xc2080edf78, 0x1, 0x1, 0x0, 0x0, 0x0)
	/usr/local/go/src/reflect/value.go:296 +0xbc
github.com/flynn/flynn/Godeps/_workspace/src/github.com/flynn/go-check.func·004(0xc20809c3c0)
	/home/jpg/go/src/github.com/flynn/flynn/Godeps/_workspace/src/github.com/flynn/go-check/check.go:809 +0x401
github.com/flynn/flynn/Godeps/_workspace/src/github.com/flynn/go-check.func·002()
	/home/jpg/go/src/github.com/flynn/flynn/Godeps/_workspace/src/github.com/flynn/go-check/check.go:703 +0x92
created by github.com/flynn/flynn/Godeps/_workspace/src/github.com/flynn/go-check.(*suiteRunner).forkCall
	/home/jpg/go/src/github.com/flynn/flynn/Godeps/_workspace/src/github.com/flynn/go-check/check.go:704 +0x3fd

A more sophisticated workaround is probably to timeout the statement and redial but I think we should try get to the bottom of this one.

@benbjohnson rebased on master because the base image updates result in super long builds if you switch between branches heh.

In my efforts to understand hangs in the integration suite I was able to track the last issue to a deadlock between innobackupex and issuing DDL like "CREATE DATABASE" when the sync is not yet connected.
There is a reasonable workaround for this which is waiting until downstream replication has connected and caught up before attempting to issue DDL or other database wide locking operations.
This workaround is reasonable for a few reasons. Namely that this condition can only really occur during initial setup where we want to pull a backup from the primary to setup the Sync. Anytime after this there should always be one node with enough data to take over for the Sync without requiring a base backup.
Secondly is we control all operations that would happen during this window.
There is also a real fix. Which is to avoid taking full database locks when doing physical backups.
This can be achieved by changing the InnoDB settings to ensure the database is consistent on disk (we should probably do this anyway even if it costs performance) and working out a method to find the most recent event from an on disk database (or be able to work it out after we have started the slave ontop of it).
For now I am going to implement the workaround.
As we need to look at making volumes persistent to make this appliance production ready I will look into feasibility of doing dynamic mount/umount or dataset replacement then which would solve the issue for good and also probably decrease time required to initialise a new slave from an upstream.

@benbjohnson I have rebased the commits and added your sign-off and co-authorship.
@titanous this is now rebased and ready for review.

@josephglanville :clap: :tada:

:heart:

@titanous comments addressed.

Some things that need to be done:

[ ] Add to the status app
[ ] Add data dump/restore to app backup/restore
[ ] Add data dump/restore to cluster backup/restore

(most) Review comments addressed. I'm not sure about the lazy log message and for now I am going to leave the HTTP handler. When we move onto MongoDB I will see how much we can pull into the Sirenia package.

Did restoration from cluster backup get implemented? (host/cli/bootstrap.go)

@titanous Implemented the cluster restore side.

@titanous this is ready for another look, I have implemented and tested restoring from a pre-MariaDB backup.

@josephglanville Did you also test taking a backup from a cluster that doesn't have MariaDB running or released? (ie after restoring to it from a backup without MariaDB, or a cluster that predates the appliance)

@titanous updated to address backing up when using the new code when mariadb doesn't exist.
There is a slight problem however that concerns both MariaDB and Redis, which is that the status app isn't aware that these features weren't added so it will report unhealthy. A result of this is restoring from a backup that doesn't have MariaDB or Redis in it with a version of the status app that expects it reports the cluster as unhealthy even though it is healthy.
A possible fix may be a feature matrix with toggles or something, not sure. Getting into the realm of stuff that actually needs to be thought about properly.

One option is to split MariaDB and Redis out into an "optional" category that doesn't cause the overall status to go to unhealthy. I expect that some users will scale MariaDB and Redis down to save resources if they don't use them. Since they are not critical to the operation of anything I think this is an easy approach until we resolve more of the issues around generalizing data appliances.

LGTM! Great work!
The status change can go in a separate PR, file an issue if you're not going to handle it immediately.

:cake: :tada:

:clap: :smile: :clap:

:cake: :tada: :balloon: :+1: :clap:

🍰 👏


Home Screen performance

The cloud backup should be done during wallet initialisatiton and not on Home Screen.

-This is not happening on dev app v1.5.0(250)

@AliMeer Sir, we are not using cloud on Home screen now. So I am assigning this issue to you


Connection issues

1)Which raspberry Pi is needed low cost
2)Can I connect rc to raspberry Pi so it will be be efficient
3)How to connect from WiFi
4) please help me with that can you give your email address
My email address is<EMAIL_ADDRESS>Thanks

Hey @saisurya9999 please give me your any contact I want do this project please help me me with that
Please give reply immediately please

Hey @saisurya9999 please contact me please
My mail id is<EMAIL_ADDRESS>so please
I will give your charges so please contact me


[Bug] Hash value is not present in URL object of PageProps and POST requests

I cannot seem to access the hash value of the URL server side in my Fresh application, which I'm assuming I should.
Example code:
export const handler: Handlers = {
  async POST(req, ctx) {
    console.log("POST", req)
  }
}

when submitting a POST request to http://localhost:8000/#delete I get the following in the console:
POST Request {
  bodyUsed: false,
  headers: Headers {
  accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
  "accept-encoding": "gzip, deflate, br",
  "accept-language": "en-GB,en;q=0.5",
  "cache-control": "no-cache",
  connection: "keep-alive",
  "content-length": "40",
  "content-type": "application/x-www-form-urlencoded",
  host: "localhost:8000",
  origin: "http://localhost:8000",
  pragma: "no-cache",
  referer: "http://localhost:8000/",
  "sec-fetch-dest": "document",
  "sec-fetch-mode": "navigate",
  "sec-fetch-site": "same-origin",
  "sec-fetch-user": "?1",
  "upgrade-insecure-requests": "1",
  "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:106.0) Gecko/20100101 Firefox/106.0"
},
  method: "POST",
  redirect: undefined,
  url: "http://localhost:8000/"
}

and if I access via an implicit GET to load index.html, pageProps shows the following:
export default function Home(data: PageProps<SearchData>) {
  console.log(data);
  return (<></>);
}

{
  url: URL {
    href: "http://localhost:8000/",
    origin: "http://localhost:8000",
    protocol: "http:",
    username: "",
    password: "",
    host: "localhost:8000",
    hostname: "localhost",
    port: "8000",
    pathname: "/",
    hash: "",
    search: ""
  },
  route: "/",
  data: undefined,
  state: {},
  params: {}
}

As you can see the hash value #delete is missing in both cases.

The hash is client-side only and not sent to the server by clients. It's intended to refer to a fragment identifier in the current document. That's the way the internet works and URLs have been specified. If you open the "Network" tab in your browser's DevTools panel, you'll see that the hash will never be sent to the browser. Same is true for curl or anything else that works with URLs for that matter.
There is a good explanation paragraph on that in the wikipedia article about URIs:

The fragment identifier functions differently than the rest of the URI: namely, its processing is exclusively client-side with no participation from the server — of course the server typically helps to determine the MIME type, and the MIME type determines the processing of fragments. When an agent (such as a Web browser) requests a resource from a Web server, the agent sends the URI to the server, but does not send the fragment. Instead, the agent waits for the server to send the resource, and then the agent processes the resource according to the document type and fragment value.[2]

Source: http://en.wikipedia.org/wiki/Fragment_identifier
Here is the relevant section in [RFC 3986])https://datatracker.ietf.org/doc/html/rfc3986#section-3.5)


Distributed Training Error on Customized Dataset

Hi guys, recently I tried to use datasets to train a dual encoder.
I finish my own datasets according to the nice tutorial
Here are my code:
class RetrivalDataset(datasets.GeneratorBasedBuilder):
    """CrossEncoder dataset."""

    BUILDER_CONFIGS = [RetrivalConfig(name="DuReader")]

    # DEFAULT_CONFIG_NAME = "DuReader"

    def _info(self):
        return datasets.DatasetInfo(
            features=datasets.Features(
                {
                    "id": datasets.Value("string"),
                    "question": datasets.Value("string"),
                    "documents": Sequence(datasets.Value("string")),
                }
            ),
            supervised_keys=None,
        )

    def _split_generators(self, dl_manager):
        """Returns SplitGenerators."""

        train_file = self.config.data_dir + self.config.train_file
        valid_file = self.config.data_dir + self.config.valid_file

        logger.info(f"Training  on {self.config.train_file}")
        logger.info(f"Evaluating on {self.config.valid_file}")

        return [
            datasets.SplitGenerator(
                name=datasets.Split.TRAIN, gen_kwargs={"file_path": train_file}
            ),
            datasets.SplitGenerator(
                name=datasets.Split.VALIDATION, gen_kwargs={"file_path": valid_file}
            ),
        ]

    def _generate_examples(self, file_path):
        with jsonlines.open(file_path, "r") as f:
            for record in f:
                label = record["label"]
                question = record["question"]

                # dual encoder
                all_documents = record["all_documents"]
                positive_paragraph = all_documents.pop(label)
                all_documents = [positive_paragraph] + all_documents

                u_id = "{}_#_{}".format(
                    md5_hash(question + "".join(all_documents)),
                    "".join(random.sample(string.ascii_letters + string.digits, 7)),
                )
                item = {
                    "question": question,
                    "documents": all_documents,
                    "id": u_id,
                }
                yield u_id, item

It works well on single GPU, but got errors as follows when used DDP:
Detected mismatch between collectives on ranks. Rank 1 is running collective: CollectiveFingerPrint(OpType=BARRIER), but Rank 0 is running collective: CollectiveFingerPrint(OpType=ALLGATHER_COALESCED)

Here are my train script on a two A100 mechine:
export TORCH_DISTRIBUTED_DEBUG=DETAIL
export TORCH_SHOW_CPP_STACKTRACES=1
export NCCL_DEBUG=INFO
export NCCL_DEBUG_SUBSYS=INIT,COLL,ENV
nohup torchrun --nproc_per_node 2 train.py experiments/de-big.json >logs/de-big.log 2>&1&

I am not sure if this error below related to my dataset code when use DDP. And I notice the PR(#5369 ), but I don't know when and where should I used the function(split_dataset_by_node) .
@lhoestq  hope you could help me?

Hmm the error doesn't seem related to data loading.
Regarding split_dataset_by_node: it's generally used to split an iterable dataset (e.g. when streaming) in pytorch DDP. It's not needed if you use a regular dataset since the pytorch DataLoader already assigns a subset of the dataset indices to each node.

@lhoestq regarding split_dataset_by_node : Can we avoid using it and use distributed sampler instead as a sampler in torch data loader?


Fixed typo in StrategyOptions, made verifyOptions fields all optional

Hey, sorry this was overlooked for so long.


How to get custom attributes from claims?

Please follow the issue template below. Failure to do so will result in a delay in answering your question.
Library

[ ]<EMAIL_ADDRESS>or<EMAIL_ADDRESS>[x ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>
Description
This document describes steps to select user attributes to appear in claims token:

You should now see ShoeSize in the list of attributes collected during the sign-up journey, and see it in the token sent back to your application.

After following above steps custom attributes do not appear in the token sent back to my application.  What am I doing wrong?
See also this stackoverflow ticket

@sam-wheat This looks like a question for the B2C service, can you open a support ticket with them?


How to transform tcomb types to React proptypes?

I have noticed that I am duplicating a lot of my domain definition in both tcomb and in React ProptTypes. Is there a seamless way of transforming type definitions from tcomb to React proptypes?

Voilà https://github.com/gcanti/tcomb-react


Workaround pip issue 4059

Symptom:
http://jenkins.cgcloud.info/job/toil-pull-requests/2029/testReport/src.toil.test.src.resourceTest/ResourceTest/testVirtualEnv/
Upstream ticket:
https://github.com/pypa/pip/issues/4059
We should prevent the latest pip from being installed in the virtualenv.

Does this need to be backported? It seems to be showing up on the 3.3.x branch
http://jenkins.cgcloud.info/job/toil-pull-requests/2059/testReport/junit/src.toil.test.src.resourceTest/ResourceTest/testVirtualEnv/

Yes. Cherrypicking won't work, though as the changes are scattered around.  For the original fix I search for all occurrences of virtualenv. Would mind taking this over?

Sure, I'll take it


Added one useful resource

Added the AI and Machine Learning blog URL to the Research and Industry newsletter section, providing useful insights to aspiring tech professionals in artificial intelligence and machine learning.
Please let me know if you need any more changes.
Thank you

Thanks but this seems like just a commercial learning platform


Setup Unity-Test UI/portal, and get domain approved by URS

As a necessary prerequisite to getting https://github.com/unity-sds/unity-project-management/issues/71 done, we want to make sure some basic domain name support is in place on the Unity-Test account.
Specifically, the Unity-Test account should have a portal, that is accessed by means of https://unity-sds.jpl.nasa.gov/.
For this to happen, two main steps are required:

Stand up a Shared Services “main” public API Gateway endpoint on our MCP account, that points to a skeleton Unity website in Unity-Test, made to NASA templates/standards
This site is most likely, https://58nbcawrvb.execute-api.us-west-2.amazonaws.com/test/portal/index.html, but @mike-gangl will confirm.

Reach out to URS, and get the above URL/domain approved for Unity-Test

See also:  https://urs.jpl.nasa.gov/URLWebsiteAuthorConditionallyApproved=630058
Acceptance Criteria:

[ ] Portal is deployed (with API Gateway) on Unity-Test
[ ] Portal has UI that's NASA compliant
[ ] URS has reviewed the portal/endpoint, and approved of the domain
[ ] The necessary AWS glue is configured so that the portal is using the domain.
[ ] Confirm that accessing https://unity-sds.jpl.nasa.gov/ takes a User to the portal

UPDATE: @mike-gangl requested a URS review of our portal to get our unity-sds.jpl.nasa.gov domain name


[RELEASE] - utils.CommandsBase.execute now functional. subprocess_call is a TODO

[RELEASE] - utils.CommandsBase.execute now functional. subprocess_call is a TODO

[RELEASE] - utils.CommandsBase.execute now functional. subprocess_call is a TODO


Fix: Persistent Dark Mode Across Page Refreshes #174

Title and Issue number

Title: Persistent Dark Mode Across Page Refreshes
Issue No.: #174
Close #174

Screenshots/Video (mandatory)
https://github.com/user-attachments/assets/310007ad-6dbd-4557-a778-614a5d90a4f4

Checklist:

[x] I have mentioned the issue number in my Pull Request.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] I have created a helpful and easy-to-understand README.md if it's a new page/tech stack.
[x] I have gone through the contributing.md file before contributing.

Additional context (Mandatory):
Are you contributing under any Open-source programme?

[x] I'm a GSSOC-EXT contributor
[x] I'm a HACKTOBERFEST contributor

Well done @amitb0ra


Closing Window of Running Query Doesn't Cancel Query on Server

Azure Data Studio Version: 1.33.0-insider
OS Version: Darwin x64 20.6.0

Steps to Reproduce:

Open a new query window
Connect to SQL Server or Azure SQL DB instance
SELECT @@SPID to capture the session id
Run a long-running query
While query is running, close the query window
Connect to the SQL instance from Step 2
sp_who2 @@SPID from Step 3
Session is still run[nable | ning]
KILL @@SPID from Step 3

When closing a window with an actively running query, the behaviour should mimic SSMS: prompt to cancel the query.
Otherwise, the window disappears and the query continues to run on the server --or-- the session stays active on the server in "sleeping" status.
Try this:

In one window,

PRINT @@SPID;
GO
WHILE (1 = 1)
  WAITFOR DELAY '00:01:00';
GO

In the second window,

sp_who2 @@SPID

Close the first window (whether the file is saved or not doesn't seem to matter)

Rerun Step 2

This result is variable: either the session is still "running" or is "sleeping" but either way, the session is still active. If the query does cancel, the session is still open. But, more often than not, the query itself does not cancel.

Does this issue occur when all extensions are disabled?: Yes

I just tested the same scenario on Azure Data Studio 1.32.0; and this does also occur. In this case, I did as above with one small change: instead of the WAITFOR, I used a PRINT ...
 From the Azure Query Editor (Preview), I ran the sp_who command for the SPID, and it alternates between 'RUNNABLE', 'RUNNING', and 'SUSPENDED'. Even closed the entire Azure Data Studio window, and the session is still active on the server.


FIX: MarketClient.get_candlestick params

According to https://huobiapi.github.io/docs/spot/v1/en/#market-data-2 interval parameter should be changed to period

@Infatum thanks for your contribution! Your request has been merged.


Keep instrumentation and unit tests separate

Is there any reason why the tests "have" to be with the instrumentation tests in androidTest?

I don't think I understand the question. Could you elaborate more?

Instrumentation tests should go into the androidTest folder while unit tests should go into the test folder.

I agree with your statement. I don't understand where it's coming from.

I don't understand where it's coming from.

From your README.md:

Write your tests
Tests must be placed in the ./src/androidTest/groovy directory.
 See the spock-android-sample project and Spock >Framework for more details.

It clearly says: "Tests must be placed in the ./src/androidTest/groovy directory."

That is not an incorrect statement.

If you have a suggestion for an edit, feel free to do a pull request.

Why are you forcing users to put tests in the androidTest folder? Why and what are the limitations?

If I remember correctly it's this https://github.com/groovy/groovy-android-gradle-plugin/blob/master/src/main/groovy/groovyx/grooid/GroovyAndroidPlugin.groovy#L77

I guess I could make a pull request there. I would like to be able to use Spock with my current tests. I guess this is just an example repo and not the actual plugin itself. Sorry about the confusion.

The library itself provides some spock extensions and ability to use spock mocks in Android. That's all for now.

Sounds good.


File opens two tabs with inconsistent edits in each?

Duplicate file tab opens on its own, with incorrect file-name capitalization, and showing corrupted/inconsistent/incomplete edits that were being performed in the originally opened tab.

VSCode Version: 1.9.1
OS Version: Windows 10

Steps to Reproduce:

create ts file 'Container.js'
add code and save
rename the file using the vscode file explorer, to  ... 'container.ts' (changed cap C to lowercase c)
open file in tab to make edits ... while editing code ...
a new tab opens as 'Container.ts' with same content. ... two tabs (container.ts, Container.ts)
while editing, each tab shows incomplete and inconsistent edits.
often, closing the Container.ts file, then saving the container.ts file creates an error ...
'File on disk is newer than file being saved.'
Note: only one file exists in the file explorer window ... (container.ts)
renamed file 'container.ts' to 'newContainer.ts' and problem no longer exists

I built a small project to attempt to reproduce the problem as described above, and was unable to reproduce this issue?  The original issue showed up in a large project. After renaming the file in the original project, using a unique name rather than just a capitalization change, no problems have been observed.
Again, I cannot reproduce this issue?

@nhrones me neither, can you try again a bit more, would love to understand what is going on

in my original project, after renaming the file to a new unique name, I'm
unable to reproduce the problem.  The problem seemed to be about renaming
with only a caps change?  If no one else has reported this, I would
disregard it.
On Wed, Feb 22, 2017 at 1:33 AM, Benjamin Pasero<EMAIL_ADDRESS>wrote:

@nhrones https://github.com/nhrones me neither, can you try again a bit
more, would love to understand what is going on
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/vscode/issues/21011#issuecomment-281582312,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADIHw3juc3W4f5vFM3JhSLGNhQSVfmiwks5re9a0gaJpZM4MHwIT
.

Sounds good.

More info ... I had this happen again.
The issue is with the import statements.
The file name 'container.ts ' contains 'export default class Container implements iContainer {'
In several files the import is ' import Container from "./container" '
In a new file I had added an import that was  ' import Container from "./Container" '
During edits to container.ts, two edit tabs would open ... Container.ts and container.ts ... with each having inconsistent/partial edits.
The 'fix' again, was to rename the file and all import statements to consistent capitalization.
Hope this helps.

@nhrones I pushed a fix today for https://github.com/Microsoft/vscode/issues/12448, can you see if this still reproduces with our insiders build from today:  You can give our preview releases a try from: http://code.visualstudio.com/Download#insiders


pull request for e2e test at 11/11/2016 13:26:09

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

optest/docs/updated_at.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


JavaScript

JavaScript
User Story
As a boot camp student
I want the prework notes to be structured on a webpage
So that I can easily find and read the information
Acceptance Criteria
GIVEN a Prework Study Guide website
WHEN I view the study guide
THEN I can see the four topics I learned listed along with a suggestion on what I should study first

so you want a webpage that stores notes for different topics , and allows user to set priority to notes of certain topic , so that they can be recommended afterwards . right ?


Add ERC: Vanilla Options

When opening a pull request to submit a new EIP, please use the suggested template: https://github.com/ethereum/EIPs/blob/master/eip-template.md
We have a GitHub bot that automatically merges some PRs. It will merge yours immediately if certain criteria are met:

The PR edits only existing draft PRs.
The build passes.
Your GitHub username or email address is listed in the 'author' header of all affected PRs, inside .
If matching on email address, the email address is the one publicly listed on your GitHub profile.

Hey @SamWilsn, thanks so much for your recommendations! Will work on that.

Hey @SamWilsn, would you like to be included in the author part? Because you're helping a lot ;)

Nope, I'm just an editor!

Was this ready for re-review, or are you still working on it? Some of my comments are unaddressed.

Just has to fix some minor things, will tell you when it's ready :)

Hey, concerning the errors, should I remove all words 'eip' and 'erc'?

Make sure to work on this while in draft:

These definitions should be in your specification section. Your abstract should be a terse high-level overview of your proposal and how it works, but your specification section should be understandable without first reading the abstract.


Feature: Add djangoflow_video_player module

I noticed that we are using videos quite frequently now so having it separate can be useful. This can work along with our Django models and can include

[x] VideoPlayerPage(full page video player), VideoPlayerWidget(for showing video in list/grid view), -
[x] VideoPlayerWidgetBuilder(if needed customized ui)
[ ] Some utility method to choose the correct format of video or parse the links etc

VideoPlayerPage is not needed as with little customization we achieve it via VideoPlayerWidgetBuilder


LayoutLMv3: IndexError: index out of range in self on some inputs

Describe the bug
Model I am using (UniLM, MiniLM, LayoutLM ...):
LayoutLMv3
The problem arises when using:

my own modified scripts: (give details below)

I'm using LayoutLMv3 from huggingface transformers - https://huggingface.co/docs/transformers/model_doc/layoutlmv3#transformers.LayoutLMv3Model - and I am getting an "IndexError: index out of range in self" on some inputs. It works fine for some inputs, but fails for others. I found a similar issue here -https://github.com/microsoft/unilm/issues/771 - but there, the problem was with bboxes. However, I am using the full processor with OCR that creates the bounding boxes for me, so my only actual input are PIL images.
I initialize the processor with
processor = AutoProcessor.from_pretrained("microsoft/layoutlmv3-base", apply_ocr=True)
and the call it with
processor(img1, return_tensors="np", padding='max_length') (img1 is PIL image)
The full stack trace is
Traceback (most recent call last):
  File "/home/h/projects/layoutLM/main_layoutLM.py", line 58, in <module>
    main()
  File "/home/h/projects/layoutLM/main_layoutLM.py", line 37, in main
    output1, output2 = net(img0, img1)
  File "/home/h/projects/layoutLM/venv/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl
    return forward_call(*input, **kwargs)
  File "/home/h/projects/layoutLM/layoutlm_classifier_contrastive.py", line 36, in forward
    output1 = self.forward_once(input1)
  File "/home/h/projects/layoutLM/layoutlm_classifier_contrastive.py", line 29, in forward_once
    output = self.layout_LM(**x)
  File "/home/h/projects/layoutLM/venv/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl
    return forward_call(*input, **kwargs)
  File "/home/h/projects/layoutLM/venv/lib/python3.9/site-packages/transformers/models/layoutlmv3/modeling_layoutlmv3.py", line 833, in forward
    embedding_output = self.embeddings(
  File "/home/h/projects/layoutLM/venv/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl
    return forward_call(*input, **kwargs)
  File "/home/h/projects/layoutLM/venv/lib/python3.9/site-packages/transformers/models/layoutlmv3/modeling_layoutlmv3.py", line 261, in forward
    position_embeddings = self.position_embeddings(position_ids)
  File "/home/h/projects/layoutLM/venv/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl
    return forward_call(*input, **kwargs)
  File "/home/h/projects/layoutLM/venv/lib/python3.9/site-packages/torch/nn/modules/sparse.py", line 158, in forward
    return F.embedding(
  File "/home/h/projects/layoutLM/venv/lib/python3.9/site-packages/torch/nn/functional.py", line 2199, in embedding
    return torch.embedding(weight, input, padding_idx, scale_grad_by_freq, sparse)
IndexError: index out of range in self

Process finished with exit code 1

where output = self.layout_LM(**x) is the actual calling of LayoutLM, which is created by
self.layout_LM = AutoModel.from_pretrained("microsoft/layoutlmv3-base")
I have no idea what could be wrong, as I said, it works fine for some inputs and I don't see anything special about cases where it fails

Platform: Ubuntu 20.04
Python version: 3.9
PyTorch version (GPU?): 1.12.0+cpu

This problem seems to be caused by some position_ids being larger than the embedding size. I suggest you find the exact sample causing this problem and analyze its minimum and maximum indices. You can also check some related answers here and here.

I am closing this issue for now, since it is inactive.


boards: arm: particle_*: add code-partition fix for mcuboot apps

To build apps for mcuboot, a zephyr,code-partition needs to be
identified in the DTS chosen block.  Without this entry, the
following configs will always be 0:
CONFIG_FLASH_LOAD_OFFSET
CONFIG_FLASH_LOAD_SIZE
Signed-off-by: Michael Scott<EMAIL_ADDRESS>

@ekarlso feel free to review as well.

Codecov Report

Merging #14086 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master   #14086   +/-   ##
=======================================
  Coverage   52.61%   52.61%
=======================================
  Files         307      307
  Lines       45472    45472
  Branches    10530    10530
=======================================
  Hits        23923    23923
  Misses      16666    16666
  Partials     4883     4883

Continue to review full report at Codecov.

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

NOTE: a 2nd patch to conditionally enable SPI when !BOOTLOADER_MCUBOOT is also needed.  nRF SPI driver crashes when !MULTITHREADED.


instructions / setup to use local stack for aws mocking

Idea is for devs to all do this the same way. Want to document and come together on this.
This is a new incarnation of LD4P/bfe/issues/16

I can start this off by creating a document based on the instructions that @cmh2166 provided for me via slack. If that sounds good, should I put it in a repo wiki, or just a google doc in the project folder?

We should decide where links to this should live

moving it back to backlog for now.


Messages aren't evenly distributed to multiple Key_Shared consumers

I tested pulsar 2.7.1 docker on my local machine. Also java client version is 2.7.1
1 producer with 4 consumer in a single app container configured below.
The producer produced messages orderly with message key ranged from test-0 to test-9
private static final AtomicLong KEY_GENERATOR = new AtomicLong();

private static String randomKey() {
    var idx = KEY_GENERATOR.getAndIncrement() % 10;
    return "test-" + idx;
}

@Bean
public Producer<String> producer(PulsarClient client) throws PulsarClientException {
    return client.newProducer(Schema.STRING)
            .topic("topic-test")
            .sendTimeout(.5, TimeUnit.SECONDS)
            .create();
}

@Bean
public List<Consumer<String>> consumer(PulsarClient client) throws PulsarClientException {
    var consumers = new ArrayList<Consumer<String>>(4);
    for (var i = 0; i < 4; i++) {
        var consumer = client.newConsumer(Schema.STRING)
                .topic("topic-test")
                .subscriptionName("sub-test")
                .subscriptionType(SubscriptionType.Key_Shared)
                .subscribe();
        consumers.add(consumer);
    }
    return consumers;
}

When I first run only one app container. The consumer statistics output seems not evenly distributed.
{
    "consumer-thread-2":[
        "test-2",
        "test-1",
        "test-0",
        "test-6",
        "test-4"
    ],
    "consumer-thread-3":[
        "test-9"
    ],
    "consumer-thread-0":[
        "test-3"
    ],
    "consumer-thread-1":[
        "test-8",
        "test-7",
        "test-5"
    ]
}

Then 30 seconds later, I started a new app container. Now there are two containers running at the same time.
The previous contiainer consumer statistics output changed!
{
    "consumer-thread-2":[
        "test-4"
    ],
    "consumer-thread-3":[
        "test-9"
    ],
    "consumer-thread-0":[
        "test-3"
    ],
    "consumer-thread-1":[
        "test-8",
        "test-7"
    ]
}

And the newer container consumer statistics output like this.
{
    "consumer-thread-0":[
        "test-2",
        "test-1",
        "test-0",
        "test-6"
    ],
    "consumer-thread-1":[
        "test-5"
    ]
}

Part of consumer in the newer container is even not distributed to consume any message.
Is there some best practice advices for Key_Shared subscription? I think this is a comman situation in production environment. The app containers may be deployed dynamically and caused subscription change.

Originally posted by @mrkingfoxx in https://github.com/apache/pulsar/issues/10523#issuecomment-835871561

Have you tune the receiver queue size.  When consumer polls the messages from pulsar, if the requested messages is greater than total number of messages, pulsar won't be able to evenly distribute the messages.
Pulsar uses poll model, not push model.  If you want consumers to be evenly distributed, try setting the receiver queue size to 1.
https://pulsar.apache.org/docs/en/cookbooks-message-queue/#client-configuration-changes

Can you test if setting .enableBatching(false) on the producer makes a difference?
If so, the problem might be fixed by #7266 .

I dropped the time drastically.

The issue had no activity for 30 days, mark with Stale label.


fix: reduce opts.MaxTableSize to default for LNs

We set badger's opts.MaxTableSize to  64 << 20, so that badger takes about 80mb in memory all the time. in go-badger-ds, they mention that they do not notice a significant performance impact with it set to 64, and it can be reduced to the default for LNs. But we need to actually profile light nodes first, to see how it actually effects performance!
Related: #2020

Done


Repo ownership

Hi @benjizhai
The EVM RPC canister has evolved significantly since it's inception over a year ago. At this stage and with a number of people depending on it as part of their workflows, we'd like to either a) migrate the repo to the @dfinity organization, or b) add a few stakeholders from within DFINITY (such as @gregorydemay, myself, and @rvanasa) as admins to this repo.
What do you think?
Thanks!

Dieter is org admin and can do all the changes, but I've added you all.


Preserve graph options for magictype

One-line summary [问题简述]
Echarts doesn't provide an option to configure default rendering for magictype. For example, the default option is the tiled line graph, but we also want to show stacked bar chart on rendering.
Version & Environment [版本及环境]

ECharts version [ECharts 版本]: 4.0.2
Browser version [浏览器类型和版本]: chrome 65.0.3325.181
OS Version [操作系统类型和版本]: macOS 10.13.2

Expected behaviour [期望结果]
Provide default rendering options for magictype/
ECharts option [ECharts配置项]

option = {
  toolbox: {
                feature: {
                  dataZoom: {
                    title: {
                      zoom: 'Zoom',
                      back: 'One step back'
                    },
                    yAxisIndex: 'none'
                  },
                  restore: {
                    title: 'Restore'
                  },
                  magicType: {
                    type: ['line', 'bar', 'stack', 'tiled'],
                    title: {
                      line: 'Line Chart',
                      bar: 'Bar Chart',
                      stack: 'Stack',
                      tiled: 'Tiled'
                    }
                  },
                  dataView: {
                    title: 'DataView',
                    lang: ['DataView', 'Close', 'Refresh']
                  },
                  saveAsImage: {
                    title: 'Save as Image'
                  }
                }
              },
}

Other comments [其他信息]

Is there any way to preserve magicType so that data can be stacked/unstacked or choose between bar and line. Can we use dispatchAction to select any type?