text:
Intermittent Pool Exhaustion when using a Spring LazyConnectionDataSourceProxy

We have a custom class: ReadOnlyAwareDataSourceProxy, which implements LazyConnectionDataSourceProxy.
It instantiates with 2 connection pools (Read-Write / Read-Only)
Basically, we use @Transaction(readOnly=true), and it picks up and delegates to the RO connection if the whole Transaction is read-only.
This class has been in place (and in use across several teams) for several years at this point, and generally works.
Recently, we re-worked our config setup from the legacy XML to @Configuration beans, and we've been getting some semi-regular failures only on the Read-Only connection.
Our current Versions:

java 1.8
SPRING_VERSION = "4.0.5.RELEASE"
SPRING_SECURITY_VERSION = "3.2.4.RELEASE"
HIBERNATE_VERSION = "4.2.0.Final"
'com.zaxxer:HikariCP:jar:2.4.5',
"mysql:mysql-connector-java:jar:5.1.38",

The startup configs for the 2 pools (as reported by Hikari):
DEBUG com.zaxxer.hikari.HikariConfig - Read-Only-Pool - configuration: DEBUG com.zaxxer.hikari.HikariConfig - allowPoolSuspension.............false DEBUG com.zaxxer.hikari.HikariConfig - autoCommit......................true DEBUG com.zaxxer.hikari.HikariConfig - catalog.........................null DEBUG com.zaxxer.hikari.HikariConfig - connectionInitSql...............null DEBUG com.zaxxer.hikari.HikariConfig - connectionTestQuery.............null DEBUG com.zaxxer.hikari.HikariConfig - connectionTimeout...............10000 DEBUG com.zaxxer.hikari.HikariConfig - dataSource......................com.mysql.jdbc.jdbc2.optional.MysqlDataSource@5a8a5957 DEBUG com.zaxxer.hikari.HikariConfig - dataSourceClassName.............null DEBUG com.zaxxer.hikari.HikariConfig - dataSourceJNDI..................null DEBUG com.zaxxer.hikari.HikariConfig - dataSourceProperties............{password=<masked>} DEBUG com.zaxxer.hikari.HikariConfig - driverClassName.................null DEBUG com.zaxxer.hikari.HikariConfig - healthCheckProperties...........{} DEBUG com.zaxxer.hikari.HikariConfig - healthCheckRegistry.............null DEBUG com.zaxxer.hikari.HikariConfig - idleTimeout.....................600000 DEBUG com.zaxxer.hikari.HikariConfig - initializationFailFast..........true DEBUG com.zaxxer.hikari.HikariConfig - isolateInternalQueries..........false DEBUG com.zaxxer.hikari.HikariConfig - jdbc4ConnectionTest.............false DEBUG com.zaxxer.hikari.HikariConfig - jdbcUrl.........................null DEBUG com.zaxxer.hikari.HikariConfig - leakDetectionThreshold..........30000 DEBUG com.zaxxer.hikari.HikariConfig - maxLifetime.....................1800000 DEBUG com.zaxxer.hikari.HikariConfig - maximumPoolSize.................50 DEBUG com.zaxxer.hikari.HikariConfig - metricRegistry..................null DEBUG com.zaxxer.hikari.HikariConfig - metricsTrackerFactory...........null DEBUG com.zaxxer.hikari.HikariConfig - minimumIdle.....................10 DEBUG com.zaxxer.hikari.HikariConfig - password........................<masked> DEBUG com.zaxxer.hikari.HikariConfig - poolName........................"Read-Only-Pool" DEBUG com.zaxxer.hikari.HikariConfig - readOnly........................false DEBUG com.zaxxer.hikari.HikariConfig - registerMbeans..................true DEBUG com.zaxxer.hikari.HikariConfig - scheduledExecutorService........null DEBUG com.zaxxer.hikari.HikariConfig - threadFactory...................null DEBUG com.zaxxer.hikari.HikariConfig - transactionIsolation............null DEBUG com.zaxxer.hikari.HikariConfig - username........................null DEBUG com.zaxxer.hikari.HikariConfig - validationTimeout...............5000 2016-03-28 15:32:32,293 [localhost-startStop-1] INFO  com.zaxxer.hikari.HikariDataSource - Read-Only-Pool - Started.
Read-Write:
DEBUG com.zaxxer.hikari.HikariConfig - Read-Write-Pool - configuration: DEBUG com.zaxxer.hikari.HikariConfig - allowPoolSuspension.............false DEBUG com.zaxxer.hikari.HikariConfig - autoCommit......................true DEBUG com.zaxxer.hikari.HikariConfig - catalog.........................null DEBUG com.zaxxer.hikari.HikariConfig - connectionInitSql...............null DEBUG com.zaxxer.hikari.HikariConfig - connectionTestQuery.............null DEBUG com.zaxxer.hikari.HikariConfig - connectionTimeout...............10000 DEBUG com.zaxxer.hikari.HikariConfig - dataSource......................com.mysql.jdbc.jdbc2.optional.MysqlDataSource@52c9c4b DEBUG com.zaxxer.hikari.HikariConfig - dataSourceClassName.............null DEBUG com.zaxxer.hikari.HikariConfig - dataSourceJNDI..................null DEBUG com.zaxxer.hikari.HikariConfig - dataSourceProperties............{password=<masked>} DEBUG com.zaxxer.hikari.HikariConfig - driverClassName.................null DEBUG com.zaxxer.hikari.HikariConfig - healthCheckProperties...........{} DEBUG com.zaxxer.hikari.HikariConfig - healthCheckRegistry.............null DEBUG com.zaxxer.hikari.HikariConfig - idleTimeout.....................600000 DEBUG com.zaxxer.hikari.HikariConfig - initializationFailFast..........true DEBUG com.zaxxer.hikari.HikariConfig - isolateInternalQueries..........false DEBUG com.zaxxer.hikari.HikariConfig - jdbc4ConnectionTest.............false DEBUG com.zaxxer.hikari.HikariConfig - jdbcUrl.........................null DEBUG com.zaxxer.hikari.HikariConfig - leakDetectionThreshold..........30000 DEBUG com.zaxxer.hikari.HikariConfig - maxLifetime.....................1800000 DEBUG com.zaxxer.hikari.HikariConfig - maximumPoolSize.................50 DEBUG com.zaxxer.hikari.HikariConfig - metricRegistry..................null DEBUG com.zaxxer.hikari.HikariConfig - metricsTrackerFactory...........null DEBUG com.zaxxer.hikari.HikariConfig - minimumIdle.....................10 DEBUG com.zaxxer.hikari.HikariConfig - password........................<masked> DEBUG com.zaxxer.hikari.HikariConfig - poolName........................"Read-Write-Pool" DEBUG com.zaxxer.hikari.HikariConfig - readOnly........................false DEBUG com.zaxxer.hikari.HikariConfig - registerMbeans..................true DEBUG com.zaxxer.hikari.HikariConfig - scheduledExecutorService........null DEBUG com.zaxxer.hikari.HikariConfig - threadFactory...................null DEBUG com.zaxxer.hikari.HikariConfig - transactionIsolation............null DEBUG com.zaxxer.hikari.HikariConfig - username........................null DEBUG com.zaxxer.hikari.HikariConfig - validationTimeout...............5000 2016-03-28 15:32:32,957 [localhost-startStop-1] INFO  com.zaxxer.hikari.HikariDataSource - Read-Write-Pool - Started.
ReadOnly is not explicitly set at the connection startup since it was spamming the Reset (readOnly) so I couldn't quite suss out the issues.
So here is what is interesting, after some event we start getting "can not prepare statements".
What I'm seeing watching the logs is this:
2016-03-28 12:29:31,895 [Read-Write-Pool housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - Read-Write-Pool - Pool stats (total=10, active=1, idle=9, waiting=0) 2016-03-28 12:30:01,895 [Read-Write-Pool housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - Read-Write-Pool - Before cleanup stats (total=11, active=0, idle=11, waiting=0) 2016-03-28 12:30:01,896 [Read-Write-Pool housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - Read-Write-Pool - After cleanup  stats (total=10, active=0, idle=10, waiting=0) 2016-03-28 12:30:31,896 [Read-Write-Pool housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - Read-Write-Pool - Pool stats (total=10, active=0, idle=10, waiting=0)
So far, so good, right? But we NEVER see those for the read-only pool.
[www:api ~]$ grep -i housekee /var/log/tomcat7/catalina.out | grep -i Read-Write | wc -l 1919 [www:api ~]$ grep -i housekee /var/log/tomcat7/catalina.out | grep -i Read-Only | wc -l 1
That line is
SEVERE: The web application [/api] appears to have started a thread named [Read-Only-Pool housekeeper] but has failed to stop it. This is very likely to create a memory leak. Mar 28, 2016 3:31:52 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads SEVERE: The web application [/api] appears to have started a thread named [Read-Write-Pool housekeeper] but has failed to stop it. This is very likely to create a memory leak. Mar 28, 2016 3:31:52 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
These are printed at shutdown along with other external clients we have, that happen on a restart.
So, what we ARE seeing is when the DB connection disappears is this:
[Read-Only-Pool connection closer] DEBUG com.zaxxer.hikari.pool.PoolBase - Read-Only-Pool - Closing connection com.mysql.jdbc.JDBC4Connection@29c2d615: (conne ction has passed maxLifetime) [Read-Write-Pool housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - Read-Write-Pool - Pool stats (total=10, active=0, idle=10, waiting=0) DEBUG com.zaxxer.hikari.pool.HikariPool - Read-Only-Pool - Timeout failure stats (total=0, active=0, idle=0, waiting=255) WARN  org.hibernate.engine.jdbc.spi.SqlExceptionHelper - SQL Error: 0, SQLState: null ERROR org.hibernate.engine.jdbc.spi.SqlExceptionHelper - Read-Only-Pool - Connection is not available, request timed out after 10058m s. ERROR com.xxx.service.authentication.UserDeviceServiceImpl - Cannot Get Device:  org.hibernate.exception.JDBCConnectionException: could not prepare statement
The waiting connections eventually recover. But there are no active or idle connections available and this starts triggering monitoring, etc.
I've enabled the LeakDetection trigger, and occasionally get a method that goes over 30k.
wait_time on both slaves and master are not set, so I believe that's the default of 90s.
This seems to be where stuff is happening, but its looking like Hikari is closing all the idle connections after timing out, and then not properly-re-adding them. Again, I'm not seeing this on the almost identically configured Read-Write connection.
Any ideas?

@liamchristopher I know it might be large, but can you attach (not post) a thread-dump here, when the Read-Only-Pool goes to zero?

Sorry it took so long to respond. The problem died down for a while, but we're still getting this about once a week, but we were able to get a thread dump over the weekend. I've redacted company information, but otherwise it is intact.
thread_dump_redacted.txt
Thanks! Very impressed with this project.

We have just experienced the same behavior when upgraded to 2.4.5 from 2.4.3. There haven't been a change of the pool configuration. Downgrading back to 2.4.3 resolved the issue.
Java 8, Spring 3.2.x, PostgresSQL JDBC 9.4.1208
Thank you.

@georgeangeletos can you please check with 2.4.6 too and confirm ?

We are using HikariCP 2.4.3 and same situation. Once a week this situation occurs, nothing strange at database logs.
Environment:
Java 8, Spring 4.2.5, PostgresSQL JDBC 9.4.1207

@everybody Please upgrade to 2.4.6, 2.4.5 had a serious issue regarding connection retirement and replacement.
If you still see errors on 2.4.6, we are willing to investigate, but too many times we've spent many hours investigating an issue only to discover that it was already fixed.

@brettwooldridge We have been using 2.4.6 for the last two weeks in dev and uat and the issue seems fixed. Thanks you.

@brettwooldridge We're still getting this issue with 2.4.7, but I think I have a little more insight:
In an isolated load test the pool acts properly. This is using ab to hit a URL doing a single DB lookup, and running hundreds of thousands of requests with a high concurrency.
However, in larger load tests, we see Tomcat choke, and several of our apps clients (http, sql, hbase) all start having connection issues. I suspect its an issue of socket exhaustion, and we're working on fixing why certain boxes get overloaded.
When this happens, the other services recover, but each connection then gets these:

2016-07-26 20:21:30,200 [http-apr-7305-exec-488] DEBUG com.zaxxer.hikari.pool.HikariPool - Read-Only-Pool - Timeout failure stats (total=0, active=0, idle=0, waiting=2)
2016-07-26 20:21:30,201 [http-apr-7305-exec-488] WARN  org.hibernate.engine.jdbc.spi.SqlExceptionHelper - SQL Error: 0, SQLState: null
2016-07-26 20:21:30,201 [http-apr-7305-exec-488] ERROR org.hibernate.engine.jdbc.spi.SqlExceptionHelper - Read-Only-Pool - Connection is not available, request timed out after 10000ms.

So, the DB is fine. Other boxes are hitting it fine, and the other clients and apps have all recovered, but the pool now continuously times out trying to get new connections. These expire, and the pool tries to add more than timeout, and so forth, but the connections don't seem to ever go outbound.
This is a pool size 10 going to a VIP fronting a small cluster of Read-Only slaves. We have another pool that goes to a single master and does not exhibit this behavior, but is configured identically.
I turned the timeouts to lower levels, and this just makes the box fail more quickly. After they timeout or are closed they just never re-attach.
So again, to stress, this happens under heavy load, but not necessarily under heavy DB calls.
It seems like once it fails getting a socket out, that no more connections can be created.
I know this is different from the title line, but its the same behavior. Any ideas why this would happen under mysql?

Closing this. The issue is that the Adder thread is getting blocked during heavy events and it looks like our LB is holding the connection and not timing out. This blocks the adder thread from creating a  new pool entry and then the rest of the pool expires with MaxLifetime, leaving the pool empty. I have a more concise thread dump and will open a new issue if we can't tune this one away.

authors: brettwooldridge eugene-kamenev georgeangeletos liamchristopher nitincchauhan

repo: brettwooldridge/HikariCP


text:
Add support for Baidu's new sql db -- Tera

Baidu recently released a scalable, high-performance distributed database, called Tera ( https://github.com/baidu/tera ). Tera is Baidu's largest new sql database, which is used to store all web pages and link's meta data, and  there is trillion of data store in tera untill now. Tera is written in c++, and its design inspires a lot from BigTable. So I think it is necessary for ycsb to add support for tera.

@caijieming-baidu feel free to put together a PR.

i am working on it.  :-)

source: gharchive/issue

authors: caijieming-baidu risdenk

repo: brianfrankcooper/YCSB

license_type: permissive

license_source: bigquery


text:
updates to cloudspanner

Updated version of Google Cloud Spanner client to more recent version (0.20.3-beta) and fixed associated breaking change (closeAsync -> close).

Merged in 9135cc16c6cee647b4b859be1e8367b0faae0ae7. Thanks!

thanks!

source: gharchive/pull-request

authors: manolama samizuh


text:
[BUG]: Website header is fixed, but keeps with no background

Description
The header seems to be fixed at the top of the viewport, but it doesn't change the background on scroll, neither has something to handle it.
Screenshots

If it is needed, I'm able to open a PR fixing the issue

Hey @esau-morais! I'd love to jump in and task this one, can you assign it on me?

The problem is that you've added 0 as the forth argument (alpha/opacity) to rgb, so it means it is transparent.

Possible solutions

Use Docusaurus style property to navbar
Remove sticky styling, so it only shows at the top (not recommended)
Add a different background color

Closing due to inactivity

authors: brinobruno esau-morais

repo: bridge-codes/bridge

license: MIT

license_source: github-api


text:
Coalesce mirrored associations

Two items may be connected with associations that are identical, save for the the source and destination are reversed. Currently this is rendered as below:

This adds clutter/noise for not much benefit. Either a double-headed arrow, or even a no-headed arrow would convey this information better.

In graphviz a connection in a directed graph may be annotated with [dir = none]

Current thinking is that an Association has a field isDirected or something. Someone could even annotate it as false in the yaml model if they wanted?
Certainly at the view level, these mirrored associations (due to implicit relationships) could be replaced with a single, undirected arrow.
Stretch goals would be to separate out common tags from the opposing relationships. Adding an undirected association with the union of the tags.

repo: briggySmalls/archie


text:
[Errata] TU&R 2ed Chapter 2 Page 63 "A Note on Default Virtual Private Clouds.."

TU&R 2ed Chapter 2 Page 63 says "see A Note on Default Virtual Private Clouds for more background information". Where is said information?

What format are you reading the book in? PDF? ePub? Paperback? And where did you get it?
In PDF format, that should be a clickable / tappable link:

And that link should take you right to the proper section:

This is in the paperback print edition.

And where did you get it?

From my local trusty bookseller Heffers in Cambridge, at about £15 more than Amazon.
Can I get a pdf?
S
Sent from my iPhone

On 20 Oct 2020, at 10:09, Yevgeniy Brikman notifications@github.com wrote:

What format are you reading the book in? PDF? ePub? Paperback? And where did you get it?
In PDF format, that should be a clickable / tappable link:
And that link should take you right to the proper section:
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

This is in the paperback print edition.

Huh, in paperback, I though those links would be replaced with the same text and the page number to go look at? Do you not get any page number there?

Huh, in paperback, I though those links would be replaced with the same text and the page number to go look at? Do you not get any page number there?

Nope.

That image is too small/blurry to see, but I'll take your word for it. That's a real bummer. I'll check with O'Reilly, the publisher, to figure out what the issue is, as there are quite a few cross-links like this that should unroll into page number references in the print version.

Hi
Ok, thanks for the update.
I guess there are possibly a number of notes missing. Please can I get a
pdf, perhaps from the publisher? I can provide my till receipt if needed.
BTW the  translated samples for GCP no longer work for tf 0.12.26.
Regards
S
On Mon, Oct 26, 2020 at 10:06 AM Yevgeniy Brikman notifications@github.com
wrote:

That image is too small/blurry to see, but I'll take your word for it.
That's a real bummer. I'll check with O'Reilly, the publisher, to figure
out what the issue is, as there are quite a few cross-links like this that
should unroll into page number references in the print version.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/brikis98/terraform-up-and-running-code/issues/64#issuecomment-716444727,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMUY4VKUX4LAUSPDTKVXCALSMVCZDANCNFSM4SV6TYDA
.

OK, sounds like that issue only happened in a couple places in the book, and we're working on fixing it for future re-prints.
Please email me your receipt (jim at ybrikman dot com) for a PDF copy!

Hi
As requested, please find attached the purchase receipt for your book 2nd
Ed.. Please could I have a pdf as reported on github?
Thanks
SImon
[image: IMG_1787.jpeg]
On Mon, Nov 16, 2020 at 9:02 AM Yevgeniy Brikman notifications@github.com
wrote:

Closed #64
https://github.com/brikis98/terraform-up-and-running-code/issues/64.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/brikis98/terraform-up-and-running-code/issues/64#event-3999156076,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMUY4VK54LASWGDDS5I66XTSQDTDZANCNFSM4SV6TYDA
.

Please email me!


text:
Doesn't work with Vite 3 ([vite:react-babel] Support for the experimental syntax 'flow' isn't currently enabled)

Some files are not being transpiled.
[vite:react-babel] /home/runner/work/vite-plugin-ssr/vite-plugin-ssr/node_modules/.pnpm/vikepress@0.0.20_ef5jwxihqo6n7gxfmzogljlgcm/node_modules/vikepress/src/utils/Emoji/Emoji.ts: Support for the experimental syntax 'flow' isn't currently enabled (7:8):
   5 |
   6 | export { Emoji }
>  7 | export type { EmojiName }
     |        ^
   8 |
   9 | type EmojiName =
  10 |   | 'warning'
Add @babel/preset-flow (https://github.com/babel/babel/tree/main/packages/babel-preset-flow) to the 'presets' section of your Babel config to enable transformation.

same here

This has actually been fixed.
@StarHosea you shouldn't use VikePress:

Do not use this. Consider this code private-use only (while public-readable).

authors: StarHosea brillout

repo: brillout/vikepress


text:
mixed type arrays

Collect(), union(), array/set/map expressions should all support converted mixed type inputs and turn them into unions.  This is all in one issue here since they will all use new foundational support function(s).

Similar to #3171?

authors: mccanne philrz

repo: brimdata/zed


text:
zql function naming conventions

we need a group consensus around naming conventions.  The current name all are package-style but we don't have packages so that seems wrong.  I'm not sure about lower camelCase.  It seems a little arbitrary.  Also for a interactive query language where a user often type lots of stuff rapid fire, getting capitalization right seems like a mistake.  I guess I am arguing for snake case where underscores are used only for long names that are less often typed.  How about I leave this for now and we do a PR soon on whatever we decide.

Remember to change grammar rule for FunctionName when we drop "." from the names.  If we ever add a package selector to functions down the road, then the "." should be parsed and not of the name.

Why was this closed?  I don't think the work has been done.

Why was this closed? I don't think the work has been done.

Maybe because you wrote "Issue #1426" in https://github.com/brimsec/zq/pull/1394#discussion_r499958099 ?
(Seems like confusing UX if so).

I can't explain it either. The GitHub behavior of automatically closing issues is only supposed to be triggered by references in PR descriptions and commit messages, but not comments. Also, whenever an issue gets closed, I consistently see a message in the issue's history event stream that says who closed it & when, and there's none here. Based on the comment exchange, I assume @mccanne reopened it, but I don't see an entry here about that either. It seems like a straight-up bug. We could take it up with GitHub Support if you'd like, though I must admit my record of getting responses out of them is not great (the last problem I reported it to them, it took months to get a response, and despite their apologetic tone when they got back to me, they also never actually addressed the problem. 🙄 )
If it helps put your mind at ease, we do have a backstop that would have caught this. As part of my obsessive need to verify all our Closed issues, if I'd come across an issue in the Closed column that had no linked PR or other comment indicating it had been solved elsewhere or closed as a duplicate/wontfix, I'd have started asking questions. 😉

I think this can be closed because #1575 started the ball rolling by adding the alternate snake case syntax (after having established consensus with the Dev team that this was desirable), and #1379 is tracking the eventual deprecation of the package name syntax. Waiting on confirmation from @mccanne before closing.

authors: henridf mccanne philrz

repo: brimsec/zq


text:
plot_cell_annotation_sc not found

I've been using your package to deconvolute some visium data following the tutorial. I have successfully made it to the ad_map creation. However, when I try to plot I receive the below error and it looks like it can't find the function. Any help is appreciated!
AttributeError: module 'tangram' has no attribute 'plot_cell_annotation_sc'

Hi @kguion1 May I know the version of tangram you are using?

tangram-sc                0.4.0                    pypi_0    pypi

@kguion1 the current version of Tangram is 1.0.3 and all the tutorials work best with this version of Tangram.
The 'plot_cell_annotation_sc' is a new function added in the recent versions. Thank you for using Tangram!

okay! I was using the 0.4.0 because of the link to this yaml so might be worth updating: https://github.com/scverse/squidpy_notebooks/blob/main/envs/tangram_environment.yml in one of the tutorials.
Thanks so much for your help :)

Hi, after updating to the new version, now it cannot find the pp_adatas function. My tangram-sc package is version 1.0.3

repo: broadinstitute/Tangram


text:
Upgrade to Spark Dataflow 0.4.0, which implements Dataflow 0.4.150727.

This upgrades Spark Dataflow to the correct version of Dataflow (Spark Dataflow 0.3.0 targets 0.4.150710). This fixes the runtime exception when running Spark tests due to library mismatches.

The build failure is unrelated.

:+1:

authors: lbergelson tomwhite

repo: broadinstitute/hellbender


text:
Chainable/sequential builds and/or lifecycle hooks

I'm looking for a way to access the compiled output of one step (the tmp file) in another step.
My goal is to compile C++ with emscripten and require it from transpiled ES6 code, packaged with browserify (don't ask why :)
Here's my main.js file (before babel):
// main.js

import * as cpp from './cpp'
console.log(cpp.boo())
console.log(cpp.bla())

And my Brocfile:
// Brocfile.js

var funnel = require('broccoli-funnel')
var concat = require('broccoli-concat')
var merge = require('broccoli-merge-trees')
var babel = require('broccoli-babel-transpiler')
var emscripten = require('./lib/broccoli-emscripten')
var browserify = require('broccoli-fast-browserify')
var replace = require('replace')

var src = 'src'
var cpp = 'cpp'

var html = funnel(src, {
  files: ['index.html']
})

cpp = emscripten(cpp, {
  inputFiles: ['**/*.cpp'],
  outputFile: './cpp.js',

  callback: function(outputPath) {
    replace({
      match: /\.\/cpp/g,
      replacement: './' + outputPath,
      paths: ['./src/main.js']
    });
  }
})

var js = babel(src)
js = merge([js, cpp])

js = browserify(js, {
  bundles: {
    'web.js': {
      entryPoints: ['**/main.js'],
    }
  },
  browserify: {
    debug: false
  }
})

module.exports = merge([html, js])

Obviously browserify is looking for a cpp.js file which isn't there as it's in the tmp folder.
My naive idea was to get the tmp file name from a callback in the emscripten step and to replace the import string in main.js to point to the temp file. However this doesn't work as the other steps seem to run before the callback.
So my question is: is there a way to chain the steps together to run sequentially or be notified when one step is complete before handing off to the next step?
Or is there an easier way to achieve this with Broccoli?
If not consider this a feature request #271 :-)
Thanks!

I'm looking for a way to access the compiled output of one step (the tmp file) in another step.

Chaining build steps like this is exactly what Broccoli is made for. Your Brocfile looks perfectly reasonable for doing this.

Obviously browserify is looking for a cpp.js file which isn't there as it's in the tmp folder.

I'm not sure what's going on - I'd expect it to look in the tmp folder that belongs to the js tree you're passing in. You'll have to debug this. I'd suggest wrapping the tree in instrument.print from broccoli-debug or taking a look at the broccoli-fast-browserify source code.

Thanks, I'll give broccoli-debug a try. The docs say you can inspect the tree with ls, does this mean via the shell?

Yup.

Thanks I got this working, I just hadn't understood how broccoli tree transformations work.

authors: joliss meleyal

repo: broccolijs/broccoli

license: mit


text:
Rename CaffeExecutor

CaffeExecutor should have a more appropriate name (as CaffeClassifier also uses the executor framework)

Fixed in https://github.com/brollb/deepforge/commit/908bdf3e67173d1e023ccd0428846ca030017594

repo: brollb/deepforge


text:
[Bug]: T8424 Enable Motion Detection not working and Stream state stays Idle

Client version
Latest avaible one in Home assistant
Node version
same as above
Operating System type
Other
Operating system version
HASSOS
Describe the bug
The state of the Camera T8424 stays idle. all the time. IF i watch tru the app or enable the stream with the button press....State stays idle
TRied from the app, i can see the video but the system doesnt update the state. It stays idle.
Also, enable motion detection doest work. when flipping the switch to on, it say not detected and flips back.
To reproduce

Go to '...'
Click on '...'
Scroll down to '....'
See error

Screenshots & Logfiles
No response
Additional context
No response

Updated to latest WS 1.3.5. Removed the addon and re-added it again.
Now i get more: When i press start stream....it says preparing stream and stays on preparing and is flooding he loogook on the right of the addon.
Diagnostic sensor says: Stream.PREPARING.
Webcamsensor stays black
Looks like this:
`
Back door Video Queue Size changed to 1305
18:13:20 - 4 minutes ago
Back door Video Queue Size changed to 1304
18:13:20 - 4 minutes ago
Back door Video Queue Size changed to 1303
18:13:20 - 4 minutes ago
Back door Video Queue Size changed to 1302
18:13:20 - 4 minutes ago
Back door Video Queue Size changed to 1301
18:13:20 - 4 minutes ago
Back door Video Queue Size changed to 1300
18:13:20 - 4 minutes ago
Back door Video Queue Size changed to 1299
18:13:20 - 4 minutes ago
Back door Video Queue Size changed to 1298
18:13:20 - 4 minutes ago
Back door Video Queue Size changed to 1297
18:13:20 - 4 minutes ago
Back door Video Queue Size changed to 1296
18:13:20 - 4 minutes ago
Back door Video Queue Size changed to 1295
18:13:20 - 4 minutes ago
Back door Video Queue Size changed to 1294
18:13:20 - 4 minutes ago
Back door Video Queue Size changed to 1293
18:13:20 - 4 minutes ago
Back door Video Queue Size changed to 1292
18:13:20 - 4 minutes ago
Back door Video Queue Size changed to 1291
18:13:20 - 4 minutes ago
Back door Video Queue Size changed to 1290
18:13:20 - 4 minutes ago
Back door Video Queue Size changed to 1289
18:13:20 - 4 minutes ago
Back door Video Queue Size changed to 1288
`
attached the DEBUG log (quite large, it deals with the T8424N1021291061 station)...
T8424.log

Noticed similar thing happing to doorbell 2K (battery but wired here)

@bropat foudn some time and seems like similar to the floodcam.
EVerything works fine with the eufy app, doorbell and floodcam are a nogo. The PAn & tilt's seem to works fine (over P2P)
T8210.log

I am facing the same issue with the T8423 (Eufy Security Floodlight 2K Pro). Just purchased and happy to provide logs or support in any way.

Never mind - found the issue (can't read!). I had not installed the RTSP server as described here. I wonder if there could be some sort of time out if the status stays on pending for too long which could hint users towards this.

repo: bropat/eufy-security-client


text:
[Bug]: entry sensors not updating correctly

Version
1.3.0
Node version
?
Operating System type
Linux
Operating system version
HA OS 10.1
Describe the bug
I’ve installed the addon now twice following all steps. It looks like it is working but I have a strange problem with all of my entry sensors. It seems they are not updating when a door is opened or closed.
I figured that the open/close event is to short before a new “fetch” but also when I open a door for longer then, let’s say, 30 minutes it’s not updating. I looked in the logs and found it full of errors.
Once I reboot the addon and reboot home assistant everything seems to work fine. The log shows me the following but after a while it goes back to what happened above…
To reproduce
No clue
Screenshots & Logfiles
Log 1:
      at P2PClientProtocol.handleDataControl (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1450:43)       at P2PClientProtocol.handleData (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1043:18)       at P2PClientProtocol.parseDataMessage (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1031:26)       at P2PClientProtocol.handleMsg (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:868:26)       at Socket.<anonymous> (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1732:56)       at Socket.emit (node:events:513:28)       at UDP.onMessage [as onmessage] (node:dgram:930:8),   payload: '{"cmd":1550,"payload":{"status":0}}\x00' } 2023-05-17 17:14:44.887  ERROR Station T8010P2322381E5F - CMD_NOTIFY_PAYLOAD Error:  {   error: SyntaxError: Unexpected token  in JSON at position 35       at JSON.parse (<anonymous>)       at P2PClientProtocol.handleDataControl (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1450:43)       at P2PClientProtocol.handleData (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1043:18)       at P2PClientProtocol.parseDataMessage (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1031:26)       at P2PClientProtocol.handleMsg (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:868:26)       at Socket.<anonymous> (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1732:56)       at Socket.emit (node:events:513:28)       at UDP.onMessage [as onmessage] (node:dgram:930:8),   payload: '{"cmd":1550,"payload":{"status":1}}\x00' } 2023-05-17 17:15:04.631  ERROR Station T8010P2322381E5F - CMD_NOTIFY_PAYLOAD Error:  {   error: SyntaxError: Unexpected token  in JSON at position 35       at JSON.parse (<anonymous>)       at P2PClientProtocol.handleDataControl (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1450:43)       at P2PClientProtocol.handleData (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1043:18)       at P2PClientProtocol.parseDataMessage (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1031:26)       at P2PClientProtocol.handleMsg (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:868:26)       at Socket.<anonymous> (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1732:56)       at Socket.emit (node:events:513:28)       at UDP.onMessage [as onmessage] (node:dgram:930:8),   payload: '{"cmd":1550,"payload":{"status":0}}\x00' } 2023-05-17 17:16:21.928  ERROR Station T8010P2322381E5F - CMD_NOTIFY_PAYLOAD Error:  {   error: SyntaxError: Unexpected token  in JSON at position 35       at JSON.parse (<anonymous>)       at P2PClientProtocol.handleDataControl (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1450:43)       at P2PClientProtocol.handleData (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1043:18)       at P2PClientProtocol.parseDataMessage (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1031:26)       at P2PClientProtocol.handleMsg (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:868:26)       at Socket.<anonymous> (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1732:56)       at Socket.emit (node:events:513:28)       at UDP.onMessage [as onmessage] (node:dgram:930:8),   payload: '{"cmd":1550,"payload":{"status":1}}\x00' } 2023-05-17 17:16:25.998  ERROR Station T8010P2322381E5F - CMD_NOTIFY_PAYLOAD Error:  {   error: SyntaxError: Unexpected token  in JSON at position 35       at JSON.parse (<anonymous>)       at P2PClientProtocol.handleDataControl (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1450:43)       at P2PClientProtocol.handleData (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1043:18)       at P2PClientProtocol.parseDataMessage (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1031:26)       at P2PClientProtocol.handleMsg (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:868:26)       at Socket.<anonymous> (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1732:56)       at Socket.emit (node:events:513:28)       at UDP.onMessage [as onmessage] (node:dgram:930:8),   payload: '{"cmd":1550,"payload":{"status":0}}\x00' } 2023-05-17 17:21:29.544  ERROR Station T8010P2322381E5F - CMD_NOTIFY_PAYLOAD Error:  {   error: SyntaxError: Unexpected token  in JSON at position 35       at JSON.parse (<anonymous>)       at P2PClientProtocol.handleDataControl (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1450:43)       at P2PClientProtocol.handleData (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1043:18)       at P2PClientProtocol.parseDataMessage (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1031:26)       at P2PClientProtocol.handleMsg (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:868:26)       at Socket.<anonymous> (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1732:56)       at Socket.emit (node:events:513:28)       at UDP.onMessage [as onmessage] (node:dgram:930:8),   payload: '{"cmd":1550,"payload":{"status":1}}\x00' } 2023-05-17 17:21:35.362  ERROR Station T8010P2322381E5F - CMD_NOTIFY_PAYLOAD Error:  {   error: SyntaxError: Unexpected token  in JSON at position 35       at JSON.parse (<anonymous>)       at P2PClientProtocol.handleDataControl (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1450:43)       at P2PClientProtocol.handleData (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1043:18)       at P2PClientProtocol.parseDataMessage (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1031:26)       at P2PClientProtocol.handleMsg (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:868:26)       at Socket.<anonymous> (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1732:56)       at Socket.emit (node:events:513:28)       at UDP.onMessage [as onmessage] (node:dgram:930:8),   payload: '{"cmd":1550,"payload":{"status":0}}\x00' } 2023-05-17 17:32:07.292  ERROR Station T8010P2322381E5F - CMD_NOTIFY_PAYLOAD Error:  {   error: SyntaxError: Unexpected token  in JSON at position 35       at JSON.parse (<anonymous>)       at P2PClientProtocol.handleDataControl (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1450:43)       at P2PClientProtocol.handleData (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1043:18)       at P2PClientProtocol.parseDataMessage (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1031:26)       at P2PClientProtocol.handleMsg (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:868:26)       at Socket.<anonymous> (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1732:56)       at Socket.emit (node:events:513:28)       at UDP.onMessage [as onmessage] (node:dgram:930:8),   payload: '{"cmd":1550,"payload":{"status":0}}\x00' }
Log 2 after rebooting:
2023-05-17 18:05:59.105  INFO  Eufy Security server listening on host 0.0.0.0, port 3000  2023-05-17 18:06:09.324  INFO  Connected to station T8010P2322381E5F on host 192.168.1.180 and port 25192  2023-05-17 18:06:12.764  INFO  Push notification connection successfully established  2023-05-17 18:07:13.363  INFO  Disconnected from station T8010P2322381E5F  2023-05-17 18:07:18.444  INFO  Connected to station T8010P2322381E5F on host 192.168.1.180 and port 26767  2023-05-17 18:08:22.297  INFO  Disconnected from station T8010P2322381E5F  2023-05-17 18:08:27.358  INFO  Connected to station T8010P2322381E5F on host 192.168.1.180 and port 18258  2023-05-17 18:09:31.248  INFO  Disconnected from station T8010P2322381E5F  2023-05-17 18:09:36.310  INFO  Connected to station T8010P2322381E5F on host 192.168.1.180 and port 28795  2023-05-17 18:10:40.205  INFO  Disconnected from station T8010P2322381E5F  2023-05-17 18:10:45.282  INFO  Connected to station T8010P2322381E5F on host 192.168.1.180 and port 17378  2023-05-17 18:11:49.131  INFO  Disconnected from station T8010P2322381E5F  2023-05-17 18:11:54.189  INFO  Connected to station T8010P2322381E5F on host 192.168.1.180 and port 16541  2023-05-17 18:12:49.943  INFO  Alarm mode for station T8010P2322381E5F changed to: DISARMED  2023-05-17 18:12:50.504  INFO  Received push notification for changing guard mode  {   guard_mode: 63,   current_mode: 63,   stationSN: 'T8010P2322381E5F' } 2023-05-17 18:12:56.293  INFO  Alarm mode for station T8010P2322381E5F changed to: HOME  2023-05-17 18:12:56.654  INFO  Received push notification for changing guard mode  {   guard_mode: 1,   current_mode: 1,   stationSN: 'T8010P2322381E5F' }
Additional context
No response

Where and how do it update? I just reinstalled it from the addon store so I suppose this is automatically the latest version?

Please follow the guideline from here: https://github.com/bropat/hassio-eufy-security-ws
This repository is the latest one

So I've updated and in good spirit I hoped it would fix anything. However the entry sensors are still not updating. I can change the alarm state do that part works. I opened a window in the hous for aprox 6 hours and it never updated the state to open. The logs shows me this:
s6-rc: info: service s6rc-oneshot-runner: starting s6-rc: info: service s6rc-oneshot-runner successfully started s6-rc: info: service fix-attrs: starting s6-rc: info: service fix-attrs successfully started s6-rc: info: service legacy-cont-init: starting s6-rc: info: service legacy-cont-init successfully started s6-rc: info: service legacy-services: starting s6-rc: info: service legacy-services successfully started 2023-05-17 19:18:27.028  INFO  Eufy Security server listening on host 0.0.0.0, port 3000  2023-05-17 19:18:37.211  INFO  Connected to station T8010P2322381E5F on host 192.168.1.180 and port 25561  2023-05-17 19:18:37.281  INFO  Push notification connection successfully established  2023-05-17 19:19:00.392  INFO  Alarm mode for station T8010P2322381E5F changed to: undefined  2023-05-17 19:19:00.715  INFO  Received push notification for changing guard mode  {   guard_mode: 6,   current_mode: 6,   stationSN: 'T8010P2322381E5F' } 2023-05-17 19:19:06.464  INFO  Alarm mode for station T8010P2322381E5F changed to: HOME  2023-05-17 19:19:06.789  INFO  Received push notification for changing guard mode  {   guard_mode: 1,   current_mode: 1,   stationSN: 'T8010P2322381E5F' } 2023-05-18 01:08:50.969  WARN Station T8010P2322381E5F - Heartbeat check failed. Connection seems lost. Try to reconnect...  2023-05-18 01:08:50.977  INFO  Disconnected from station T8010P2322381E5F  2023-05-18 01:09:11.190  WARN Station T8010P2322381E5F - Tried all hosts, no connection could be established  2023-05-18 01:09:11.194  INFO  Timeout connecting to station T8010P2322381E5F  2023-05-18 01:09:18.212  INFO  Connected to station T8010P2322381E5F on host 192.168.1.180 and port 28665

So yeah, I finally figured it out.
The entry sensors will only work in HA if you have push-notification put on "on" in the eufy app.. Kinda strange but oh well it works :)

@RemcoveHA Hi. Which notification setting exactly did you put to "on"? For entry/contact sensor I have 2 options: Notification when sensor is open for X minutes/hours OR notify me if it's still open after XX:XX hour every day.
My doorbell works fine in HA, but the contact sensor never synced. Hoped to fix it by using this addon, but cant get it to work yet. Thanks in advance for your input.

@Jordi-m hello, I meant the push notification in the eufy security app itself. When you disable the notification home assistant won't update anymore.. super annoying but no other option.

@RemcoveHA Yes, I'm refering to the (Android in my case) app as well. But whatever I enable, I don't get any sync signal for the contact sensor. That;s why I was curious which notification you exactly enabled? I have notifications enabled for a bunch of things, but cant seem to find any device-specific notification toggles.

authors: Jordi-m RemcoveHA fuatakgun

repo: bropat/eufy-security-ws


text:
Corregida puntuaciones y otras cuestiones asociadas a la orotgrafía

Se han llevado a cabo algunas correcciones con las puntuaciones y un poco de ortografía. No se ha profundizado en la gramática ni semántica del texto.

no pretendo ofender, pero me resultó cómico ver un PR para correcciones ortográficas con errores ortográficos en el título :grin:

@arivasvera Corregido, Somos todos humanos :)
Gracias!

authors: arivasvera brunocascio cristianbarbaro

repo: brunocascio/docker-espanol


text:
Normalize callbacks

The callbacks for the async methods are not consistent both between and within raspi-i2c methods, depending on which i2c-bus method was called. These need to be wrapped and normalized

@bryan-m-hughes what are the inconsistencies here?

it's in writeByte and writeWord. If a register is not specified, we call i2cWrite under the hood, which calls it's callback with (err, bytesWritten, buffer), but if we do specify a register, we call writeByte under the hood which only calls back with (err). Same thing with the *Word variants

authors: bryan-m-hughes fivdi


text:
Duplicate declaration "delete_at" : ElixirScript.Tuple.js

Another issue with the Babel compilation of ElixirScript standard library output:
ElixirScript.Tuple.js Line 45:
...
const delete_at = Elixir.Core.Patterns.defmatch(Elixir.Core.Patterns.make_case([Elixir.Core.Patterns.variable(), Elixir.Core.Patterns.variable()],function(tuple,index)    {
...
The error is:
Compiling of 'web/static/js/Elixir.ElixirScript.Tuple.js' failed. web/static/js/Elixir.ElixirScript.Tuple.js: Line 45: Duplicate declaration "delete_at"
This issue occurs during the Babel compilation phase after ElixirScript Brunch performs its compilation from Elixir to JavaScript in a Phoenix application.

This should be cleared up now in the latest version on master

authors: bryanjos scitesy

repo: bryanjos/elixirscript


text:
in_place_stop_source ::stop_possible has inconsistent semantics

The semantics of in_place_stop_source::stop_possible differ from those of std::stop_source::stop_possible.
in_place_stop_source::stop_possible:
Returns: true if the stop state inside *this has not yet received a stop request; otherwise, false.

std::stop_source::stop_possible (see: http://eel.is/c++draft/thread.stoptoken#stopsource.mem-2):
 Returns: true if *this has ownership of a stop state; otherwise, false.

This leads to different return values after request_stop() was called.

The reason for the difference is that in_place_stop_source maintains all its state internally. It doesn't dynamically allocate a stop state, so there isn't a sense in which it could "own" or "not own" a stop state.

This leads to different return values after request_stop() was called.

This isn't clear to me. How?

The reason for the difference is that in_place_stop_source maintains all its state internally. It doesn't dynamically allocate a stop state, so there isn't a sense in which it could "own" or "not own" a stop state.

I understand. This part is not the issue, rather the fact that stop_token still returns true from stop_possible() even if request_stop() was called.

This leads to different return values after request_stop() was called.

This isn't clear to me. How?

Our unit tests for stop_token report problems when used for in_place_stop_token, as said the return value from stop_possible() is different for both (if implemented as specified).

I'll need @griwes and @lewissbaker to weigh in here. Lewis designed the cancellation system. I strongly suspect this is by design, but I'll let Lewis and Michal speak.

The semantics for in_place_stop_token::stop_possible() should be to return true if it is not a null stop token (ie was obtained from in_place_stop_source::get_token()), otherwise false if it is a null stop token (ie was default constructed)

authors: ericniebler hkaiser lewissbaker


text:
Vertical split line has no consistent width

At the current line in left pane the split border is 1px smaller than normal. This happens also to other lines as you can see in screenshot. I don't see a pattern and it looks random.

Could this be happen because the cursor is 1px bigger than the width of a vim column? As you can see here the cursor is bigger than the "visual block" selection:

Thanks for logging the issue and the screenshots, @hoschi !
I think this may be more sub-pixel rendering issues in the CanvasRenderer - probably a related issue to #162 and #731

I'm going to optimistically close this out now we have the WebGL renderer.... if this doesn't end up being fixed we can re-open it, but every other instance of sub-pixel rendering issues seems to have been sorted!

authors: CrossR bryphe hoschi

repo: bryphe/oni


text:
Define forward and backward differentiation rules for contract on EinExpr

Closes #12

Backward derivation rules are on the way.

@emapuljak @jofrevalles I've finished implementing the reverse derivation rule. I'm merging directly since the structure of the tests is more or less the same as with frule.
If you have any suggestion or question, ask me through Mattermost or write an issue.


text:
Fix block transactions range check error

Max transaction index should be numTx-1 not numTx

Done elsewhere.

authors: imnisen jcvernaleo

repo: btcsuite/btcutil

license: isc


text:
Calling Client.UpdateStatus from Updated results in another Updated event.

I'm not sure if this is working as intended, but the following code thus results in an infinite loop:
protected override async Task<TimeSpan?> Updated(MyEntity resource)
{
    resource.Status.Progressing = true;
    Client.UpdateStatus(resource);

    //Even if I do nothing here, just switch the states around, it will still re-trigger the Updated event asynchronously.
    await base.Updated(resource);

    resource.Status.Progressing = false;
    Client.UpdateStatus(resource);

    //The second UpdateStatus can yield in a 409 conflict response. Pretend that's fixed by Client.Get()'ing the up to date resource and applying the state change to that again, before re-calling Client.UpdateStatus.
}

I understand that there's also a StatusModified event callback, of which the docs state:
// "StatusModified" (i.e. when only the status was updated)
Is Updated meant to be called when we only update the status object of the entity/resource?

Our Status object is a complex type. I have simplified it in the original post, but I fear that simplification might actually cause things to go right. Our status object (serialized) will look something along the lines of:
{
   "conditions": [
      {"type": "Progressing", "status": true, "lastModifiedTime": "2020-10-23T17:21:23.000"},
      {"type": "Healthy", "status": false, "lastModifiedTime": "2020-10-23T17:21:23.000"},
      {"type": "Degraded", "status": false, "lastModifiedTime": "2020-10-23T17:21:23.000"},
   ]
}

Line 79 on ResourceCache suggests that the detection of the change being "just a status change" is limited to properties directly under Status. Is that assumption correct? If so, would it be possible to extend that detection to handle changes deeper inside a complex object?

For the first post: Updated is called when something in the object has changed. StatusUpdated is called when only the subobject (status) has changed.
For the second post: Your assumption is correct. As I thought, status was a simple object. I didn't found any other documentation or example from kubernetes itself or anywhere else that stated, that status should be a complex object.
It could be done to upgrade the cache logic of course. If this is not an antipattern with kubernetes.
Do you have any readings about the matter?

For the code you provided, I don't think this should be as you intend it to. Kubernetes operator functions should "kind of be atomic", in the sense that - for what I saw as examples and from kubebuilder and others - the operation runs and performs some task. To check if something is right now "executing", a "last processed" timestamp would be a better aproach.
One of the reasons being that if your operator crashes during the processing part, maybe your resource never get out of the "processing" state.

I just tested it, it is not intended (and possible) to use complex status objects.
Everytime I tried to update a complex status object, some parts were not updated by kubernetes itself.
It seems that it's not intended to use. So I'd suggest to use plain simple objects on status as it is intended (at least by kubernetes v1.18)

The status object of a lot of standard Kubernetes objects are certainly complex objects.
Take for example the 'Pod' object.  It has a 'conditions' field which is an array of objects (with lastProbeTime, lastTransitionTime, type and status) and also another subobject containerStatuses.

Well, thanks @willemm :-)
Then I need to investigate this further.

I understand that there's also a StatusModified event callback, of which the docs state:
// "StatusModified" (i.e. when only the status was updated)
Is Updated meant to be called when we only update the status object of the entity/resource?

@willemm I actually ran into this myself too. I can see the StatusModified callback being thrown for built-in entities, but not anything defined by a CRD.

For the first post: Updated is called when something in the object has changed. StatusUpdated is called when only the subobject (status) has changed.
For the second post: Your assumption is correct. As I thought, status was a simple object. I didn't found any other documentation or example from kubernetes itself or anywhere else that stated, that status should be a complex object.
It could be done to upgrade the cache logic of course. If this is not an antipattern with kubernetes.

Status should (and can be) whatever the resource defines at as. I think the simple object comes from how IKubernetes requires the Status property to be of type object, and nothing more complex, in order to use the UpdateStatus method.
In fact, I actually had to do not a small bit of funny business to support a typed status, but if the below referenced method signature can be updated to not specifically restrict to object, we should be fine.
https://github.com/buehler/dotnet-kubernetes-client/blob/b2cc147c1cb3f6eaf5d85c4609ddae04d781f124/src/DotnetKubernetesClient/KubernetesClient.cs#L241-L242
The only thing Kubernetes checks for is that there is a property named "Status" when using the associated endpoint, as that is all that it will update on the resource.
(sample of what I had to do to support that)
public abstract class CustomKubernetesEntityWithStatus<TSpec, TStatus> : CustomKubernetesEntity<TSpec, object>
        where TSpec : new() where TStatus : class, new()
{
  public new TStatus Status
  {
    get => base.Status as TStatus;
    set => base.Status = value;
  }
}

As far as avoiding having status updates trigger the Update call for CRDs, the best I can think of is run all the update calls through a function which compares the last seen object state with current, to determine if spec/meta or status changed (or both), and rerouting the request accordingly.
I'm not sure how that fares as far as scalability or performance when possibly comparing large objects quickly, but its what I got.

Hey @erin-allison
Thank you for the investigation. I think there might be a solution to this matter.
I'll have a look at your suggestion :-)
Thanks!

So I did some more digging and it looks like you already do what I mentioned above:

As far as avoiding having status updates trigger the Update call for CRDs, the best I can think of is run all the update calls through a function which compares the last seen object state with current, to determine if spec/meta or status changed (or both), and rerouting the request accordingly.

All events are run against a cache, and the comparison result against that cache is what determines the event call that is thrown. For some reason, though StatusModified isn't being used for any of my custom objects, only build-in Kubernetes types.
Upon stepping into ResourceCache<TEntity>.CompareCache, I can see where the logic issue lies.
https://github.com/buehler/dotnet-operator-sdk/blob/eb1ba60e8d01ff0f422969de56d116118be4879d/src/KubeOps/Operator/Caching/ResourceCache.cs#L66-L83
The comparison checks if the properties that differ are all direct children of "Status" (that's what the constant of that name resolves to). This falls through on any more complex objects, as the differences may lie more than 1 level deep.

Additionally, I saw a case where when adding a status object (when there previously was none), the check would return Modified since the differing property was "Status", not one of its direct descendants.

This should be an easy fix to see if PropertyName is "Status" or if ParentPropertyName is a period-separated string beginning with "Status", in addition to checking if ParentPropertyName is "Status"

authors: TeunKooijman buehler erin-allison willemm

repo: buehler/dotnet-operator-sdk


text:
[#477] add WithProtoJSONOptions() expose protojson marshalling options

r? @akshayjshah
I'd like to merge this fork from @greg-montoux / @xxgreg  into the main repository. I'm experiencing the same challenges customizing my protojson marshalling/unmarshalling options as proposed in: Issue https://github.com/bufbuild/connect-go/issues/477
In my specific case, I have a large body of legacy JSON APIs maintained with lower_snake_case and the default camelCase marshaling is throwing some consistency curveballs my way.
I think this option method should be available to everyone as soon as convenience allows. My alternative is to maintain a fork this repository.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

(Replying from my other GH account)
Another API worth considering is to export a constructor for protoJSONCodec and allow setting the options there.
This would look something like:
mopts := protojson.MarshalOptions{
...
}
uopts := protojson.UnMarshalOptions{
...
}
cn.NewClient(..., cn.WithCodec(cn.NewProtoJSONCodec(mopts, upots))

It looks like the workaround in the meantime is to fork the protoJSONCodec struct, which isn't too bad either.

In general, I'm reluctant to expose APIs from connect-go that don't require access to significant chunks of the package internals. Over time, this keeps the surface area of connect-go as small and approachable as possible.
The protojson codec is so small that I don't think this API carries its weight. It's relatively easy, and just as functional, to provide this configurability from a separate package that replicates the JSON marshaling logic. I've done just that, so you can use  go.akshayshah.org/connectproto today. (Please do keep in mind that this is a small personal repo rather than an official Buf project!)
We're sorting out the best way to make third-party packages like these more discoverable, but hopefully this unblocks you in the short term. I'll leave this PR open for a bit in case there's more discussion, but I don't intend to merge it.

I ended up going with @akshayjshah suggestion above, thanks everyone!

authors: CLAassistant akshayjshah natemurthy xxgreg

repo: bufbuild/connect-go


text:
[PLAT-6614] Stop session being reported if app is launched in the background

Goal
A session should not be reported if an app was started in the background (for example to perform a background fetch.)
Only once a user opens the app (and it moves to the foreground) should a session be recorded.
Changeset
BugsnagClient now checks whether the app is in the foreground before starting a session.
BugsnagSessionTracker now starts a session as soon as the app moves into the foreground if there was no previous session.
Testing
Manual testing only because it's not possible to trigger a background launch via Appium.
In one of the example Xcode projects, add the background fetch capability and then in the scheme's run options enable the Background Fetch option. Note: this only works when debugging an app.
E2E tests verify that automatic sessions reporting still works when an app is launched in the foreground.

Does this mean if the app crashes during a background fetch, we'll no longer get crash reports? I'm not sure that's desirable. It's still useful to know about app crashes, since iOS can stop calling you for background fetches if the app is misbehaving

@sethfri this does not stop crashes being reported, but it does mean they will no longer count against the app's stability score.

@nickdowell Thanks for clarifying!

authors: nickdowell sethfri

repo: bugsnag/bugsnag-cocoa


text:
Add SystemExit & Interrupt to ignore_classes by default

Re-adds commonly seen exit 'exceptions' to default ignore_classes set to prevent them automatically triggering a notification.

Adds SystemExit and Interrupt to ignore_classes set by default.
Fixes issue described in #383

Thank you!

authors: Cawllec leesmith

repo: bugsnag/bugsnag-ruby


text:
Signing Crates

https://github.com/sigstore/community/issues/25
https://github.com/rust-lang/cargo/issues/4768
https://github.com/rust-lang/crates.io/issues/75
https://github.com/CycloneDX/cyclonedx-rust-cargo

We now sign our crates with cosign

You might be interested in this RFC: https://github.com/rust-lang/rfcs/pull/3403

Thank you @tarcieri .. we were just discussing it.

authors: metaclips mrinalwadhwa tarcieri

repo: build-trust/ockam


text:
Add Heroku and AWS EBS deployment instructions to book

Because Now v1 will be deprecated, and new users of Now will not be able to deploy using v1, let's add instructions for deploying with Heroku and AWS EBS.
We will still keep the instructions for deploying with Now v1 for book readers who signed up with Now before January 1, 2019 (anyone who signed up after that date will not be able to use Now v1). We will just add 2 additional sections at the end of Chapter 8 to provide alternative methods of deployment.

Click to see Hill for issue #198

Click to see Hill for all issues

created by Async

Do you expect it will be so difficult to deploy with Now 2?
May be you are not so happy with Zeit hosting at all? Why?
Or just no enough time for upgrade/testing?

@YuriGor Pretty happy with Now v1 and happy with all other product of Zeit team. We highly recommend.
We could not find any reason to refactor app to make it deploy-able on Now v2.
Many people says it's cheaper.
Maybe. But was overhead considered in the price?

To those who learn to code, you should not care about cheaper hosting when you learn basics of coding. Learn good habits, try to become compassionate with end users of what you code.
To those building their own software business, you should probably find easiest hosting solution (Now v1, Heroku, AWS Elastic Beanstalk) and care about your app's business logic - that's what your customers care about. Not how you split your APIs into cloud functions.
If you work with some big enterprise-level app, I guess cloud functions make sense. But this public repo is not about entreprise-level app and not about cloud functions.

Book was written way before Now v2 was launched. We never promised to add Now v2 to the book. There are no plans to do it.
Having said that:

we are eager to learn about your and anyone else's reasons for deploying a simple app such as builderbook using cloud functions
we are open to PR or tutorial showing us how to refactor builderbook's APIs to be deploy-able  as cloud functions
and we are more than happy to add link or mention if such PR or tutorial is shared with us

@klyburke Thanks for creating this issue. I will be working on adding Heroku to Chapter 8.

Well as for me, I already invested some time to study Now ecosystem, and I am going to use it for several projects.
I have no apps deployed with Now 1.
Since Now 2 is nearest future and Now 1 is going to be deprecated, I have no reasons to learn Now 1 and use it for new apps.
I already tested Now 2 a bit for a litle static Nextjs app, and I like the idea of Now 2 'builders'.
It looks possible to create partially static and partially dynamic nextjs app by just specifying correct set of builders in now config.
Currently I didn't try 'lambdas'. When I'll have a chance - I'll give you feedback how it may look for builderbook app.
As a quick compromise solution docs are saying it's possible to easily migrate from Now 1 to Now 2 using Node.js Server Builder

This Builder takes any Node.js HTTP server and wraps it inside a lambda.
When to use it
To best take advantage of the granularity of serverless, we recommend focusing on exposing function entrypoints to your APIs.
However, to ease the upgrade process to Now 2.0, porting over old non-serverless applications or testing out the system with an existing app, we created and maintain @node/node-server.

@klyburke @YuriGor Added Heroku subsection to Chapter 8, please check it up when you have a moment.

Hi @tima101, I am quite busy with main job, so I'll not be able to check it soon.

authors: YuriGor klyburke tima101

repo: builderbook/builderbook


text:
Aligned baselines of location and jobs in job-list.

The goal was to make the baseline of the H2 text (the location of the jobs) and the first row of job card text to the right be aligned.
After some trial and error, I found that switching to flexbox to do the layout was the only way the align-items: baseline; had the desired effect consistently in Chrome, Firefox and Safari.
Maintaining the CSS grid-based layout didn't work everywhere. Only having flex on the outer job-list component but continuing to use CSS columns on the job cards didn't work in Firefox. etc.

@danbull Good spot! I've just pushed a fix for that issue

repo: buildit/gravity-ui-sass


text:
refactor(page intro): font size is incorrect

affects: @buildit/gravity-ui-web
It looks like the font sizes changes slightly since when I set them to be smaller. Adjusted now.

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

authors: buildit-dev dw-buildit

repo: buildit/gravity-ui-web


text:
unlocked => unblocked

Minor typo (I think) that I noticed while reading docs

Thanks for that @mvines! Much appreciated 😊

authors: harrietgrace mvines

repo: buildkite/docs


text:
#347: SelectionControlGroup: remove paddingY config

Closes #347
Test Plan
tests performed

A Test Plan is used to show what you tested to make sure your code works fine. You should write here all that you did to test, and provide some results of your testing.

These results can be screenshots, query results, or even just pointers to unit tests that successfully passed.

tests not performed (domain coverage)

At times not everything can be tested, and writing what hasn't been tested is just as important as writing what has been tested.

An example of partial test is a field displaying 4 possible values. If 3 values are tested, with screenshots, and 1 is not, then it should be mentioned here.

😕 @marcopiii, looking at the diff highlighted by Chromatic, I think I make a mistake when I migrated the issue on GitHub. For horizontal groups, the vertical padding should still be verticalInternalSpacing / 2, instead of horizontalInternalSpacing / 2.
@Phyele could you confirm this is what we decided?

authors: marcopiii veej

repo: buildo/bento-design-system


text:
Concise Output

Previously the output of the detect phase was way too verbose printing the id and version of every buildpack and whether it passed or failed.  Given large buildpack groups this was a large block of text that was difficult to visually parse for useful information.
A recent change to the output then simplified it to describe only the number of buildpacks that were participating in the build phase, but removed their id and version.  This version of the output ended up being too terse, removing the genuinely useful information of what buildpacks were manipulating your application.
This change splits the difference between the two previous attempts.  It prints the number of buildpacks participating out of the number of options (implying that the others failed or skipped) and then prints the id and version of each of the participating buildpacks.  The detailed information about the non-participating buildpacks is still useful in some circumstances, and should be added back once logging levels are implemented in the lifecycle. A recommendation would be the current output at Info, and full output at Debug.
Example output:
===> DETECTING
[detector] 8 of 35 buildpacks participating
[detector] io.pivotal.openjdk                   1.0.7-2-gee0dfc5
[detector] io.pivotal.jvmapplication            1.0.24
[detector] io.pivotal.tomcat                    1.0.33
[detector] io.pivotal.springboot                1.0.29
[detector] io.pivotal.distzip                   1.0.29
[detector] io.pivotal.clientcertificatemapper   1.0.31
[detector] io.pivotal.containersecurityprovider 1.0.27
[detector] io.pivotal.springautoreconfiguration 1.0.33

I like this better than what I have in #183. But I'm not sure if I'm keen on the of <X>. Does that number include all buildpacks in all groups? I'm not sure how useful it is that way. I'm also wondering how often this will print 1 of 1. Could it be only X buildpacks participating?

@jkutner it corresponds to done here.  It's a shorthand way of indicating that there were some buildpacks that chose not to participate.  On our side, it'll never be 1 of 1 as we don't have any situation where we use only a single buildpack (not even Golang).

I guess the situation i'm thinking of is this: a Ruby program who wants to build a Rails app with the Heroku builder. They see:
===> DETECTING
[detector] 1 of 9 buildpacks participating
[detector] heroku/ruby                   1.0.0

The "9" here is extraneous because those other buildpacks are Java, PHP, Go, etc. It might even confuse people ("I thought i was just using the Ruby buildpack?").
The problem, IMO, is that it leaks the underlying implementation to the user. A user doesn't need to know or care how many buildpacks are in a builder--they only need it to work and build their image.
If the --verbose flag would expose all groups and all buildpack statuses, do we need to show this in the info logs?
FYI: not going to die on this hill. I generally like you're change here.

Overall I like this change. Do we just build our builders differently of what we put them in? i.e. do you have a Java or Go as separate builders?

@hone Ah, that must be the difference!  We have multiple languages in the same builder, but they're all handled as separate groups.  So in your case, you'd likely see a single "1 of 1" for whatever language you picked.

@nebhale ohhhh, that makes much more sense. Could we add a check, and if len(trial) == len(done) we don't show the of X?

Sure @jkutner.  Elide the whole line or just the of X bit?

@nebhale elide the whole line. no need to shame the 1 buildpack for being a loner :)

authors: hone jkutner nebhale

repo: buildpack/lifecycle


text:
How to use color system

This is a doubt about how to use the color property of calendars
I got this number as the color of my calendar:
-6644481
how do i convert that number to a color?

this was my plain inexperience with flutter
Color(calendar.color)
solves this


text:
🛑 VODA-SA is down

In 878c710, VODA-SA ($SECRET_SITE2) was down:

HTTP code: 403
Response time: 1147 ms

Resolved: VODA-SA is back up in e37ea50 after 11 minutes.

repo: buluma/uptime


text:
Remove unused dups

Hello!
I've started looking into bundler sources recently and found that dups call in cli/install.rb can be removed, options already dups in cli.rb before passing into cli/install.rb initializer.
Tests successfully passes locally and I hope I've no broke anything.
Thank you for your hard work!
Sincerelly, Nikolay.

Thanks!

authors: indirect kohgpat

repo: bundler/bundler


text:
[Docs] Add update --bundler

\c @indirect

@homu r+

:pushpin: Commit e3a1ba5 has been approved by indirect

:hourglass: Testing commit e3a1ba5 with merge 1a7c5b3...

:sunny: Test successful - status

authors: homu indirect segiddins


text:
callback url handling

A little patch to handle call back URL to return to original resource after authorization.
index 9ed14f3..462e03a 100644
--- a/src/main.go
+++ b/src/main.go
@@ -212,7 +212,8 @@ func login(c *gin.Context) {
        if err == nil {
                if _, err = VerifyCookie(token); err == nil {
                        // user already authorized
-                       c.Status(200)
+                       //c.Status(200)
+                       c.Redirect(302, c.Query("callback"))
                        return
                }
        }

nginx.conf error_page for protected resource:
error_page 401 = https://sso.example.net/login?callback=$scheme://$host$request_uri;

I just pushed a release that includes this and other changes, I'm going to close this issue now...
https://github.com/burakkavak/nginx-auth-server/releases/tag/0.0.9

authors: burakkavak umask

repo: burakkavak/nginx-auth-server


text:
markdown書式の未反映

markdownで書かれた箇条書きの書式が紙ベースでは反映されていない。
自動生成側でmarkdownが未対応なのか、たまたま見逃されたバグなのか、その他の事由なのか。

手動変換漏れです。すみません。次回の変換でFIXします。

authors: busyoucow nanbuwks

repo: busyoucow/spaceBeans


text:
在小程序中使用sentry后，插件会出问题

你当前是什么框架(必填)：uniapp

你使用的是哪个包(必填)："@lucky-canvas/uni"

你当前插件的版本(必填)："@lucky-canvas/uni": "0.0.10"

当前环境是小程序还是浏览器(选填)：小程序

详细描述你的bug：
在同时使用sentry监听小程序报错和luckycanvas的时候会报Image is not a constructor，原因是sentry往小程序里面添加了window，而作者的代码中utils是使用window区分的小程序和h5

问题代码(重要)：就是在小程序里面自定义一个window之后，再使用lucky-canvas的就会出现

没错, 我是通过window来区分小程序和web端的

因为依赖包里我也是通过window区分当前环境的, sentry这样搞就很难受, 我感觉没有其他更好的方案了

我想着也不太好解决，，，我去尝试下替换别的sentry依赖试试，能解决的话我来这边说下就把这个问题关了。

判断的地方也不是很多, 主要是没有好的替代方案, 你能打印一下他的window吗, 我看看里面都有啥

我console 了一下，打出来的是undefined，但是他肯定是有的。因为我在sentry-mina源码中找到了
function(t,e){"undefined"==typeof window?window={console:console}:window.console||(window.console=console)}

我这边替换了一个uni   sentry依赖现在已经可以了。
目前使用的是sentry-miniapp

authors: Yukiball buuing

repo: buuing/lucky-canvas


text:
Separate queuing library from the server

I'm using this library to delay processing of items in my Rails app.  Unfortunately, when I require 'resque_scheduler', it loads 'resque/server' and transitively 'sinatra/base'.  Sinatra ends up interfering with Rails via rack.
This change is to separate the data-access library that can be used from anywhere (resque_scheduler) and the admin UI server (resque_scheduler/server).  This follows the Resque convention of keeping the library (resque) separate from the server (resque/server)

+1
Thanks in advance!

authors: rykov stas

repo: bvandenbos/resque-scheduler


text:
🛑 Sraddha Whitecliff 2 is down

In 116be5a, Sraddha Whitecliff 2 (https://cloud.tymly.in/status/1034) was down:

HTTP code: 521
Response time: 220 ms

Resolved: Sraddha Whitecliff 2 is back up in c5df5ff.

repo: bvenkysubbu/tymlymonitor


text:
🛑 SMR Vinay Cascade B Block is down

In 251679b, SMR Vinay Cascade B Block (https://cloud.tymly.in/status/1093) was down:

HTTP code: 521
Response time: 20222 ms

Resolved: SMR Vinay Cascade B Block is back up in e193c4a.


text:
🛑 Trifecta Esplanade D Block is down

In 97cf35a, Trifecta Esplanade D Block (https://cloud.tymly.in/status/1156) was down:

HTTP code: 521
Response time: 224 ms

Resolved: Trifecta Esplanade D Block is back up in d1fb669.


text:
🛑 SMR Vinay Cascade B Block is down

In 2416946, SMR Vinay Cascade B Block (https://cloud.tymly.in/status/1093) was down:

HTTP code: 521
Response time: 20218 ms

Resolved: SMR Vinay Cascade B Block is back up in 1952125.


text:
🛑 VBHC Serene Town B Block is down

In e41049d, VBHC Serene Town B Block (https://cloud.tymly.in/status/1130) was down:

HTTP code: 521
Response time: 20240 ms

Resolved: VBHC Serene Town B Block is back up in 00fcf8b.


text:
🛑 Sai Gardens Community Hall is down

In eecea9c, Sai Gardens Community Hall (https://cloud.tymly.in/status/1073) was down:

HTTP code: 521
Response time: 235 ms

Resolved: Sai Gardens Community Hall is back up in 4ffb717.


text:
🛑 PSR Aster 1 is down

In 9a14ea9, PSR Aster 1 (https://cloud.tymly.in/status/1059) was down:

HTTP code: 521
Response time: 20241 ms

Resolved: PSR Aster 1 is back up in 9b134f6.


text:
🛑 White Breeze 2 is down

In d693cf7, White Breeze 2 (https://cloud.tymly.in/status/1097) was down:

HTTP code: 521
Response time: 20242 ms

Resolved: White Breeze 2 is back up in ea5eec0.


text:
🛑 Desai Grandeur 2 is down

In 2510e48, Desai Grandeur 2 (https://cloud.tymly.in/status/1134) was down:

HTTP code: 521
Response time: 20237 ms

Resolved: Desai Grandeur 2 is back up in 4e6e5e8.


text:
🛑 Prakruthi Villas Sarjapura is down

In 0fa16cb, Prakruthi Villas Sarjapura (https://cloud.tymly.in/status/1058) was down:

HTTP code: 521
Response time: 20227 ms

Resolved: Prakruthi Villas Sarjapura is back up in 475fcfe.


text:
🛑 Casa Gopalan Block B Lift is down

In fa82214, Casa Gopalan Block B Lift (https://cloud.tymly.in/status/1005) was down:

HTTP code: 521
Response time: 20440 ms

Resolved: Casa Gopalan Block B Lift is back up in 3f17e90.


text:
🛑 SBB Touchstone B Block is down

In d539c80, SBB Touchstone B Block (https://cloud.tymly.in/status/1018) was down:

HTTP code: 521
Response time: 228 ms

Resolved: SBB Touchstone B Block is back up in a2a5dab.


text:
🛑 SMR Vinay Cascade B Block is down

In 6711b47, SMR Vinay Cascade B Block (https://cloud.tymly.in/status/1093) was down:

HTTP code: 521
Response time: 20219 ms

Resolved: SMR Vinay Cascade B Block is back up in d2b412f.


text:
🛑 VBHC Serene Town A Block is down

In a66035b, VBHC Serene Town A Block (https://cloud.tymly.in/status/1129) was down:

HTTP code: 521
Response time: 216 ms

Resolved: VBHC Serene Town A Block is back up in fd01d86.


text:
🛑 VBHC Serene Town D Block is down

In 814e2d8, VBHC Serene Town D Block (https://cloud.tymly.in/status/1131) was down:

HTTP code: 521
Response time: 3283 ms

Resolved: VBHC Serene Town D Block is back up in 670786e.


text:
🛑 Dasta Concerto Entrance is down

In 6eb46c6, Dasta Concerto Entrance (https://cloud.tymly.in/status/1137) was down:

HTTP code: 521
Response time: 20237 ms

Resolved: Dasta Concerto Entrance is back up in 9282eab.


text:
🛑 SMR Vinay Cascade A Block is down

In ce95d4d, SMR Vinay Cascade A Block (https://cloud.tymly.in/status/1094) was down:

HTTP code: 521
Response time: 231 ms

Resolved: SMR Vinay Cascade A Block is back up in ba9dd48.


text:
🛑 SBB Touchstone A1 Block is down

In d376bbe, SBB Touchstone A1 Block (https://cloud.tymly.in/status/1186) was down:

HTTP code: 521
Response time: 222 ms

Resolved: SBB Touchstone A1 Block is back up in 4e3e7ef.


text:
🛑 Dasta Concerto Clubhouse Gym is down

In b9a697a, Dasta Concerto Clubhouse Gym (https://cloud.tymly.in/status/1189) was down:

HTTP code: 521
Response time: 20218 ms

Resolved: Dasta Concerto Clubhouse Gym is back up in 13ebf81.


text:
🛑 Sterling Villa Grande is down

In d911739, Sterling Villa Grande (https://cloud.tymly.in/status/1068) was down:

HTTP code: 521
Response time: 232 ms

Resolved: Sterling Villa Grande is back up in 5f65378.


text:
🛑 SMD Altezz Block B is down

In 8d3ac6e, SMD Altezz Block B (https://cloud.tymly.in/status/1176) was down:

HTTP code: 521
Response time: 20227 ms

Resolved: SMD Altezz Block B is back up in b80ee22.


text:
🛑 SMR Vinay Cascade B Block is down

In c0716bf, SMR Vinay Cascade B Block (https://cloud.tymly.in/status/1093) was down:

HTTP code: 521
Response time: 21128 ms

Resolved: SMR Vinay Cascade B Block is back up in ea117f8.


text:
🛑 Dasta Concerto Entrance is down

In f4f96d6, Dasta Concerto Entrance (https://cloud.tymly.in/status/1137) was down:

HTTP code: 521
Response time: 20248 ms

Resolved: Dasta Concerto Entrance is back up in 30af8ca.


text:
🛑 Trifecta Esplanade Clubhouse is down

In 6fec597, Trifecta Esplanade Clubhouse (https://cloud.tymly.in/status/1167) was down:

HTTP code: 521
Response time: 20243 ms

Resolved: Trifecta Esplanade Clubhouse is back up in bf9810d.


text:
🛑 Madhuban Brindavan B Block is down

In cf05d2a, Madhuban Brindavan B Block (https://cloud.tymly.in/status/1136) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Madhuban Brindavan B Block is back up in faa3bb8 after 869 days, 23 hours, 59 minutes.


text:
🛑 SMD Altezz Block B Basement is down

In 6da30b9, SMD Altezz Block B Basement (https://cloud.tymly.in/status/1204) was down:

HTTP code: 521
Response time: 253 ms

Resolved: SMD Altezz Block B Basement is back up in 52a41be after 4 days, 2 hours, 7 minutes.


text:
🛑 Madhuban Brindavan A Block is down

In 821e0d1, Madhuban Brindavan A Block (https://cloud.tymly.in/status/1135) was down:

HTTP code: 521
Response time: 20256 ms

Resolved: Madhuban Brindavan A Block is back up in e2f87b4 after 10 minutes.


text:
🛑 Sterling Villa Grande is down

In ecee946, Sterling Villa Grande (https://cloud.tymly.in/status/1068) was down:

HTTP code: 521
Response time: 234 ms

Resolved: Sterling Villa Grande is back up in 5c45f2c.


text:
🛑 Sumadhura Silver Ripples Club House is down

In b8ec4a3, Sumadhura Silver Ripples Club House (https://cloud.tymly.in/status/1090) was down:

HTTP code: 521
Response time: 20232 ms

Resolved: Sumadhura Silver Ripples Club House is back up in b7a09c8.


text:
🛑 Balaji Sunflower is down

In 4d613dc, Balaji Sunflower (https://cloud.tymly.in/status/1062) was down:

HTTP code: 521
Response time: 20229 ms

Resolved: Balaji Sunflower is back up in a56fa1b.


text:
Add around functionality to ChannelMessages

The discord api has the ability to specify an around parameter to the GET/channels/{channel.id}/messages call. Mostly it would be used for pulling the most recent set of messages including the most recent on a channel in an end user client or the like. It should just be a small change to the ChannelMessages function such that aroundID can be passed and used just as beforeID and afterID currently are.
The other option I can think of is to change the function to make the around call to discord if both the before and after ids have values but that seems to be a bit complicated and counter intuitive to me.
I am willing to make any of the changes, I just wanted to check and see what people might prefer.

This was done here : https://github.com/bwmarrin/discordgo/commit/c4c950207210734e54f1289406f2fe79ea72257d

authors: SirRujak bwmarrin

repo: bwmarrin/discordgo


text:
No longer able to control Air Purifier H7122

What issue do you have? Please be as thorough and explicit as possible.
I am no longer able to control the fan speed of my Govee Air Purifier (H7122). This was previously working but broke with an update. I am able to see the following message in the logs:
[08/10/2022, 00:54:34] [Govee] [Big Air Purifier] could not be updated as no connection method available at file:///usr/local/lib/node_modules/homebridge-govee/lib/platform.js:1569:13.

Details of your setup.

Do you use (1) Homebridge UI-X (2) Homebridge CLI or (3) HOOBS?
1 Homebridge UI

Which version of Homebridge/HOOBS do you have?
v1.5.0

Which platform do you run Homebridge/HOOBS on (e.g. Raspberry Pi/Windows/HOOBS Box)? Please also mention your version of Node.js/NPM if known.
Raspberry Pi

Which version of this plugin (homebridge-govee) do you have? Has the issue started since upgrading from a previous version?
v6.0.4. Issue seems to be caused by upgrading.

Which Govee devices do you have that are causing issues? Please include product models if applicable.
H7122

Please paste any relevant logs below.

[08/10/2022, 00:54:34] [Govee] [Big Air Purifier] could not be updated as no connection method available at file:///usr/local/lib/node_modules/homebridge-govee/lib/platform.js:1569:13.

Hi @rmaes4
Do you find that the purifier does in fact change to the correct speed even though you receive this message in the logs?

Can you try the new beta version of the plugin?

Hi @bwp91
I just updated to the beta. When changing the fan speed for the air purifier, I no longer see an error message. The fan speed of the purifier does not change at all though. I see the following message in the logs when changing the air purifier fan speed:
[08/10/2022, 23:58:13] [Govee] [Big Air Purifier] [AWS] receiving update [{"cmd":"ptReal","cmdVersion":0,"data":{"command":["MwUCAAAAAAAAAAAAAAAAAAAAADQ="]},"transaction":"v_1665291493532000","type":1,"source":"AWS"}].

happy to message directly on discord about this and the smart outlet if easier for you.

@bwp91 sure, that works for me

Closing this issue as it is now resolved

Closing this issue as it is now resolved

@rmoff Thank you for telling us how to fix the issue. So considerate

Closing this issue as it is now resolved

@rmaes4 Thank you for telling us how to fix the issue. So considerate

@Mr-Tech-13 I did not tell you how to fix the issue because I did not do anything to fix it. This required a plugin update that was implemented by @bwp91 If you simply update to the latest version of the plugin your issue should be resolved.

Thank you for the help. Although a plugin update is considered doing something to fix it

keeping this plugin updated is definitely considered a best practice as I release fairly frequently.
I also maintain a readme with changes.
Thanks to @rmaes4 for all the work you put into helping me to implement this device since I don't own it myself.
I don't think the sarcastic So considerate is fair to @rmaes4 considering the work he put in to help me with this.
If you have any further issues @Mr-Tech-13 please feel free to open a new ticket!
Thanks


text:
feat: Add speed and swing controls for fan (H7101)

I've added support for speed and swing controls specifically for the model H7101 and updated it to Fanv2. I also took the liberty of cleaning up the code a bit . Hopefully it this also works for other govee fans (if they have any).
I should note that this is my first homebridge integration so probably I haven't added all the features that I could have, a side of locking the physical controls (I skipped it mainly because is something I wouldn't use, but if some one wants it I'm more than happy to add it).
If you know if it's possible to add the different fan modes please let me know, that would be cool next feature and I have the codes already.

Hi @bwp91
Thank you for the review! I have updated the code accordingly.
I will implement the other features in that case, and submit a new PR soon :)

thanks again for this. i made a small final commit just in a couple of cases where the hap characteristic needed to be updated.
but merged in now and part of beta version 5.2.1-beta.11 I have just published!

It'd be great to get this to also apply to H1701!
Here's the list of codes: https://paste.kodi.tv/ovigocinud
Now I need to buy a H1711 clearly. ;)

@keithah I checked and they use the same codes, It should work straight away

Was this PR for the H7101?
@keithah this PR has still not been made into a release (I need to make a release soon) but it's available in the beta version of the plugin)
Chances are it will also work for the H7111

Yes It was for the H7101

This is correct, it does work now, I can adjust speed and oscillate from Home w/ my H7111, thank you! (that's what I meant, sorry I confused them)

authors: AlZeck bwp91 keithah