Cannot disable zipkin tracing when installing via IstioOperator

Bug description
Cannot disable zipkin tracing via istioOperator

Portion configuring meshconfig in IstioOperator CR

...
  meshConfig:
    accessLogFile: /dev/stdout
    accessLogFormat: ...
    defaultConfig:
      envoyAccessLogService:
        address: gateway-proxy-access-logger.istio-system:8083
        tlsSettings:
          mode: DISABLE
      proxyMetadata:
        ISTIO_META_DNS_CAPTURE: "true"
        ISTIO_META_PROXY_XDS_VIA_AGENT: "true"
      tracing: {} # <-- Set tracing to {}
    dnsRefreshRate: 60s
    enableEnvoyAccessLogService: true
    enableTracing: false # <-- set to false
    outboundTrafficPolicy:
      mode: REGISTRY_ONLY
  profile: default
  values:
    meshConfig:
      accessLogEncoding: JSON

Istio-proxy envoy config contains STRICT_DNS cluster tyep created for zipkin tracing, however we do not use it and this results in alot of unnecessary calls to coreDNS.
Followed direction from #29898 and #31658 but IstioOperator logs reflect
warning: destination for tracing is a table. Ignoring non-table value <nil>
and istio configmap reflects no change:

accessLogEncoding: JSON
accessLogFile: /dev/stdout
accessLogFormat: '{"upstream_local_address":"%UPSTREAM_LOCAL_ADDRESS%","downstream_local_address":"%DOWNSTREAM_LOCAL_ADDRESS%","downstream_remote_address":"%DOWNSTREAM_REMOTE_ADDRESS%","requested_server_name":"%REQUESTED_SERVER_NAME%","start_time":"%START_TIME%","method":"%REQ(:METHOD)%","upstream_cluster":"%UPSTREAM_CLUSTER%","protocol":"%PROTOCOL%","duration":"%DURATION%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","upstream_host":"%UPSTREAM_HOST%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","response_flags":"%RESPONSE_FLAGS%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","user_agent":"%REQ(USER-AGENT)%","request_id":"%REQ(X-REQUEST-ID)%","correlation_id":"%REQ(CORRELATION_ID)%","authority":"%REQ(:AUTHORITY)%","path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","response_code":"%RESPONSE_CODE%","upstream_transport_failure_reason":"%UPSTREAM_TRANSPORT_FAILURE_REASON%","grpc_status":"%GRPC_STATUS%"}'
defaultConfig:
  discoveryAddress: istiod.istio-system.svc:15012
  envoyAccessLogService:
    address: gateway-proxy-access-logger.istio-system:8083
    tlsSettings:
      mode: DISABLE
  proxyMetadata:
    DNS_AGENT: ""
    ISTIO_META_DNS_CAPTURE: "true"
    ISTIO_META_PROXY_XDS_VIA_AGENT: "true"
  tracing:
    zipkin:
      address: zipkin.istio-system:9411  # <-- NOT UPDATED
dnsRefreshRate: 60s
enableEnvoyAccessLogService: true
enablePrometheusMerge: true
enableTracing: false
outboundTrafficPolicy:
  mode: REGISTRY_ONLY
rootNamespace: istio-system
trustDomain: cluster.local

IstioOperator Logs
2021-07-12T08:33:07.683192Z     info    installer       Reconciling IstioOperator
2021-07-12T08:33:07.685432Z     info    installer       Updating IstioOperator
2021-07-12T08:33:07.685467Z     info    installer       Loading values from compiled in VFS at path profiles/default.yaml
2021-07-12T08:33:07.845418Z     info    installer       Detecting third-party JWT support
2021-07-12T08:33:08.895447Z     info    klog    Throttling request took 1.047166952s, request: GET:https://***:443/apis/metrics.k8s.io/v1beta1?timeout=32s[]
2021-07-12T08:33:11.141341Z     info    warning: destination for tracing is a table. Ignoring non-table value <nil>
2021-07-12T08:33:11.152538Z     info    installer       Applying Kubernetes overlay:
- kind: Deployment
  name: cluster-local-gateway
  patches:
  - path: spec.template.spec.terminationGracePeriodSeconds
    value: 635

2021-07-12T08:33:11.259613Z     info    warning: destination for tracing is a table. Ignoring non-table value <nil>
2021-07-12T08:33:11.350362Z     info    installer       Applying Kubernetes overlay:
- kind: Deployment
  name: istio-ingressgateway
  patches:
  - path: spec.template.spec.terminationGracePeriodSeconds
    value: 635

2021-07-12T08:33:11.355230Z     info    installer       AddonComponents is waiting on dependency...
2021-07-12T08:33:11.355273Z     info    installer       Processing resources from manifest: Base for CR default-istio-istio-system-Base-https://***:443
2021-07-12T08:33:11.355291Z     info    installer       IstiodRemote is waiting on dependency...
2021-07-12T08:33:11.355307Z     info    installer       Pilot is waiting on dependency...
2021-07-12T08:33:11.355317Z     info    installer       IngressGateways is waiting on dependency...
2021-07-12T08:33:11.355332Z     info    installer       EgressGateways is waiting on dependency...
2021-07-12T08:33:11.355368Z     info    installer       Cni is waiting on dependency...
2021-07-12T08:33:11.552118Z     info    installer       Generated manifest objects are the same as cached for component Base.
2021-07-12T08:33:11.552155Z     info    installer       Unblocking dependency Pilot.
2021-07-12T08:33:11.552168Z     info    installer       Unblocking dependency IstiodRemote.
2021-07-12T08:33:11.552176Z     info    installer       Dependency for IstiodRemote has completed, proceeding.
2021-07-12T08:33:11.552185Z     info    installer       Processing resources from manifest: IstiodRemote for CR default-istio-istio-system-IstiodRemote-https://***:443
2021-07-12T08:33:11.552192Z     info    installer       Generated manifest objects are the same as cached for component IstiodRemote.
2021-07-12T08:33:11.552200Z     info    installer       Dependency for Pilot has completed, proceeding.
2021-07-12T08:33:11.552228Z     info    installer       Processing resources from manifest: Pilot for CR default-istio-istio-system-Pilot-https://***:443
2021-07-12T08:33:11.843826Z     info    installer       Generated manifest objects are the same as cached for component Pilot.
2021-07-12T08:33:11.843871Z     info    installer       Unblocking dependency Cni.
2021-07-12T08:33:11.843883Z     info    installer       Unblocking dependency IngressGateways.
2021-07-12T08:33:11.843887Z     info    installer       Unblocking dependency EgressGateways.
2021-07-12T08:33:11.843903Z     info    installer       Dependency for Cni has completed, proceeding.
2021-07-12T08:33:11.843907Z     info    installer       Dependency for IngressGateways has completed, proceeding.
2021-07-12T08:33:11.843962Z     info    installer       Processing resources from manifest: Cni for CR default-istio-istio-system-Cni-https://***:443
2021-07-12T08:33:11.843986Z     info    installer       Processing resources from manifest: IngressGateways for CR default-istio-istio-system-IngressGateways-https://***:443
2021-07-12T08:33:11.843891Z     info    installer       Unblocking dependency AddonComponents.
2021-07-12T08:33:11.844117Z     info    installer       Dependency for AddonComponents has completed, proceeding.
2021-07-12T08:33:11.844132Z     info    installer       Processing resources from manifest: AddonComponents for CR default-istio-istio-system-AddonComponents-https://***:443
2021-07-12T08:33:11.844156Z     info    installer       Generated manifest objects are the same as cached for component AddonComponents.
2021-07-12T08:33:11.848144Z     info    installer       Generated manifest objects are the same as cached for component Cni.
2021-07-12T08:33:11.843914Z     info    installer       Dependency for EgressGateways has completed, proceeding.
2021-07-12T08:33:11.940263Z     info    installer       Processing resources from manifest: EgressGateways for CR default-istio-istio-system-EgressGateways-https://***:443
2021-07-12T08:33:11.940279Z     info    installer       Generated manifest objects are the same as cached for component EgressGateways.
2021-07-12T08:33:12.045309Z     info    installer       Generated manifest objects are the same as cached for component IngressGateways.
- Pruning removed resources

* Restarted pods, still see zipkin tracing configured in envoy bootstrap config
[ ] Docs
[x ] Installation
[ ] Networking
[ ] Performance and Scalability
[x ] Extensions and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
[ ] Upgrade
Expected behavior

Expect envoy bootstrap config to not contain zipkin tracing after setting tracing: {} and restarting pods with istio-proxy

Steps to reproduce the bug

Install via Istio-operator with default profile
set meshConfig.defaultConfig.tracing: {}
Check istioOperator pod logs

Version (include the output of istioctl version --remote and kubectl version --short and helm version --short if you used Helm)
➜ istioctl version --remote
client version: 1.10.0
control plane version: 1.8.5
data plane version: 1.8.5 (13 proxies)

Client Version: v1.20.2
Server Version: v1.18.20

How was Istio installed?
IstioOperator
Environment where the bug was observed (cloud vendor, OS, etc)
Additionally, please consider running istioctl bug-report and attach the generated cluster-state tarball to this issue.
Refer cluster state archive for more details.

Looking through the charts here. Looks like if you set values.global.proxy.tracer to openCensusAgent then it will take tracer config from meshConfig.defaultConfig.tracing. And correctly set tracing option in istio ConfigMap to an empty object. Does this solve the problem?
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  profile: default
  meshConfig:
    defaultConfig:
      tracing: {}
    enableTracing: false
  values:
    global:
      proxy:
        tracer: openCensusAgent

Hi @anyname2 thanks for the suggestion. It does work, there are no more calls to coredns for zipkin service. However, there is an error in the configmap data.mesh field (looks like some templating problem), it doesn't cause affect the outcome, but what could be the root cause?
apiVersion: v1
data:
  mesh: |-
    Error: 'error converting YAML to JSON: yaml: line 8: mapping values are not allowed in this context'
    accessLogEncoding: JSON
    accessLogFile: /dev/stdout
    accessLogFormat: ...
    defaultConfig:
      envoyAccessLogService:
        address: gateway-proxy-access-logger.istio-system:8083
        tlsSettings:
          mode: DISABLE
      proxyMetadata:
        DNS_AGENT: ""
        ISTIO_META_DNS_CAPTURE: "true"
        ISTIO_META_PROXY_XDS_VIA_AGENT: "true"
      tracing: {}  # <--- works
    dnsRefreshRate: 60s
    enableEnvoyAccessLogService: true
    enablePrometheusMerge: true
    enableTracing: false
    outboundTrafficPolicy:
      mode: REGISTRY_ONLY
    rootNamespace: istio-system
  meshNetworks: 'networks: {}'
kind: ConfigMap

I have previously circumvented the DNS lookups by forcing the zipkin collector address to a (also non-existent) value tracing.zipkin.address=localhost:9411

@shydefoo you might have something else that generates the error. I couldn't get any errors to be generated in the config map.
I am using:
➜ istioctl version
client version: 1.10.1
control plane version: 1.10.1
data plane version: 1.10.1 (11 proxies)

➜ kubectl version --short
Client Version: v1.20.7
Server Version: v1.20.7

Do you get the same error if you generate manifests locally? What about latest version?
istioctl manifest generate -f install.yaml -o istio-manifest
cat istio-manifest/Base/Pilot/Pilot.yaml

@shydefoo Facing a similar issue. I see the same parsing error in the config map but it did solve the problem I no more see DNS requests for zipkin.istio-system. Did you find any solution? I'm using istio-1.9.5

Any instructions didn't works for me, but after all I disabled zipkin by explicity add podAnnotation to every pod with sidecar and istio gateways:
        podAnnotations:
          proxy.istio.io/config: |
            tracing: {}

That will overwrite any upstream settings.


Update dependencies

Overview

Up Mockito for Java 11 support
Up Vertx & Checkstyle

Definition of Done

[x] There are no TODOs left in the code
[x] Changelog is updated if needed (in case of notable or breaking changes)
[ ] The continuous integration build passes

Pull Request Test Coverage Report for Build 1473

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

Totals

Change from base Build 1464:
0.0%

Covered Lines:
2583

Relevant Lines:
3201

💛  - Coveralls


Group add/desktop 1188

@keybase/react-hackers
Implements the group add component for desktop.
This is a bit different than the mobile one because it's a smaller component that lives inside something else.
Take a look at https://github.com/keybase/client/pull/3047 first. This extends that PR

:mag_right: These commits introduced some visual changes:

Added: user_search-Normal

Added: user_group-Chat_enabled

👍


update prawn-icon to 1.0.0

Update Prawn/Icon from v0.6.4 to 1.0.0.
The only (potentially) breaking changes involve the use of a small number of icons removed from the octicon font. See the  changelog.

The only (potentially) breaking changes involve the use of a small number of icons removed from the octicon font.

Given how new the icon integration is in Asciidoctor PDF (and that Asciidoctor PDF is still alpha), I'm not concerned about these changes at all.

Thanks!


raster_image.image unit tests

Codecov Report

Merging #24 into dev will increase coverage by 5.05%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##              dev      #24      +/-   ##
==========================================
+ Coverage   16.06%   21.11%   +5.05%
==========================================
  Files           8       10       +2
  Lines         529      554      +25
==========================================
+ Hits           85      117      +32
+ Misses        444      437       -7

Impacted Files
Coverage Δ

cw_geodata/data/__init__.py
100% <100%> (ø)

cw_geodata/raster_image/image.py
100% <100%> (+63.63%)
:arrow_up:

tests/test_raster_image/test_image.py
100% <100%> (ø)

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 972b2b1...25f3de3. Read the comment docs.


App won´t build

I'm submitting a ...  (check one with "x")
[X] bug report
[ ] feature request
[ ] support request => Please do not submit support requests here, use one of these channels: https://forum.ionicframework.com/ or http://ionicworldwide.herokuapp.com/
Current behavior:
App build crashes with "build dev failed: Cannot set property 'fileSystem' of null"
Steps to reproduce:

clone rep and run 'serve'

Other information:
Ionic info: (run ionic info from a terminal/cmd prompt and paste output below):
Cordova CLI: 6.4.0
Ionic Framework Version: 2.0.0-rc.3-201612081620
Ionic CLI Version: 2.1.18
Ionic App Lib Version: 2.1.9
Ionic App Scripts Version: 0.0.46
ios-deploy version: 1.9.1
ios-sim version: 4.1.1
OS: macOS Sierra
Node Version: v6.7.0
Xcode version: Xcode 8.2.1 Build version 8C1002

Thanks for the issue! Could you try updating your CLI:
npm uninstall -g ionic
npm install -g ionic

and then pull down the latest and run the following commands in the project folder:
rm -rf node_modules/
npm install
ionic serve

and let me know if you're still having this error? Thanks!

Hello! As it seems it has been a while since there was any activity on this issue i will be closing it for now. Feel free to comment if you are still running into this issue. Thanks for using Ionic!


Error after run category_index = label_map_util.create_category_index_from_labelmap(PATH_TO_LABELS, use_display_name=True)

This template is for miscellaneous issues not covered by the other issue categories.
For questions on how to work with TensorFlow, or support for problems that are not verified bugs in TensorFlow, please go to StackOverflow.
If you are reporting a vulnerability, please use the dedicated reporting process.
For high-level discussions about TensorFlow, please post to<EMAIL_ADDRESS>for questions about the development or internal workings of TensorFlow, or if you would like to know how to contribute to TensorFlow, please post to<EMAIL_ADDRESS>

Please fill in issue template for the bug category, not for the miscellanous one.

@goms12
Please update as per above comment


⚠ ClamAV has degraded performance

In 0336d7d, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 63 ms

Resolved: ClamAV performance has improved in 0251eaa.


Issues/141 npm test fails

Checklist:

[x] Test your work and double check you didn't break anything
[x] Update any relevant READMEs and docs

Description:
This PR seeks to resolve #141
When running: npm test the developer would get an error and the tests wouldn't run.
This is partly do the fact that we didn't have any test.
This change - fixes some of the dependencies, including the compatibility with jest and babel-7.
You will also find the addition of a simple test.  This is because the jest test runner considers it a failure to not have any tests.
Note: I didn't have any strong opinions about what tests we should have, or what tools we should use. It seems that jest was already chosen and that the react community seems to like enzyme as well and prefers that tests live close to the code they test.

I am closing this PR after a conversation with @nick via Discord.
My takeaway was that we have not yet decided on a testing strategy for demo-app and are hyper focused on delivering features and therefore there is a fair amount of churn in the code base. Testing  would slow us down.
I am going to open an issue to have a discussion as to when and how we will decide on a testing strategy.


Config flag to disable root domain redirect when default language in …

Following with #6064 , I created a simple patch with a flag for config files:
disableDefaultLanguageSubdirRedir can be set to True or False:
When the config flag: defaultContentLanguageInSubdir is set to True, Hugo manually creates a redirect file in the alias format that redirects from the root domain to the subfolder for the language.

When the key is not present Hugo behaves according to its defaults: the alias at the root path of /index.html will redirect to the default language subfolder,
The same will be true when this key will be set to False,
When this key will be set to True the alias file at: /index.html wil not be created.

Things still to consider:

Updating the docs with simple instruction on how to use: URL front-matter variable to create a /index.html file for the default language, so it is not placed in teh subfolder,
Maybe changing he config flag name to: disableDefaultLanguageRootRedirect to combine the case of the root domain and default langauge in subdir setting,
Adding the code to handle this flag and generate this file automatically.

The rational behind this fix is that most if not all websites have content at their root / baseURL in Hugo's terminology. This alias with a redirect was created manually, and was not possible to be overwridden with regular Hugo's logic where content with the same filename overwrites the alias file of the same name.
It changes just 5 lines of code, has no sideeffects when the key is not present.

 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.


retdec-tests-runner.sh on macOS prints "find: -executable: unknown primary or operator" and exits with 0

When running retdec-tests-runner.sh on macOS, it prints
Running all unit tests in retdec/install/bin ...
find: -executable: unknown primary or operator

The script then ends with return code 0 and no tests are run. This can be also seen on Travis CI (e.g. here). Since the script exits with 0, it causes the job to succeed even though it should have failed.
It is expected that the tests should run, e.g. retdec-tests-runner.sh on macOS should print
Running all unit tests in retdec/install/bin ...

retdec-tests-bin2llvmir
[  PASSED  ] 437 tests.

retdec-tests-capstone2llvmir
[  PASSED  ] 3069 tests.

...

Just like on Linux.

Fixed in def3bcdd5e5436b517941f590b2b1921819a0a86. Also, in d28767d96ff293a32fd5b6212b6d9863f9b3d10b, I have updated the script to exit with 1 if not tests run. This is better than exiting with 0, which was the original behavior.
Details
As the error message from the issue description suggests, on macOS, find does not support the -executable parameter. Therefore, on macOS, we have to use -perm +111. To explain, + means "any of these bits" and 111 is the octal representation for the executable bit on owner, group, and other. Unfortunately, we cannot use -perm +111 on all systems because find on Linux/MSYS2 does not support +. It supports only /, but this is not supported by find on macOS... Hence, we need an if.


Quip in Pip

I'm working on a quip integration and noticed that the python client isn't in PyPi, which was weird since the NodeJS version is in NPM.
I was wondering if this was an active decision / if it would be possible for your company to submit the client. It'd be especially nice if it was added as "quipclient" (it would just pair nicely with Slack's slackclient, and "quip" is already taken).
Link for pypi/pip: https://pypi.org/project/pip/

FYI I created an unofficial Pypi package so it can be pip installed.
Following your request I used the name quipclient
pip3 install quipclient
pip3 show quipclient
Name: quipclient
Version: 0.1
Summary: Quip API Python Client
https://pypi.org/project/quipclient/

wondering looks I can install by
 pip3 install quip-api  --index https://pypi.tuna.tsinghua.edu.cn/simple


Pipelined commands and MULTI/EXEC does not always return a list with answers

Redix.pipeline and MULTI/EXEC currently returns a list when executing multiple commands but only a single answer when executing a single command. I found this quite surprising, ex:
commands = [
  ["SET", "pipe", "10"],
  ["INCR", "pipe"],
  ["GET", "pipe"]
]
Redix.pipeline(conn, commands)
=> {:ok, ["OK", 11, "11"]}

Redix.pipeline(conn, [["SET", "pipe_single", "10"]])
=> {:ok, "OK"}

Expected {:ok, ["OK"]} for last command.
Same for MULTI/EXEC:
Redix.command(conn, ["MULTI"])
=> {:ok, "OK"}
Redix.command(conn, ["INCR", "multifoo"])
=> {:ok, "QUEUED"}
Redix.command(conn, ["INCR", "multibar"])
=> {:ok, "QUEUED"}
Redix.command(conn, ["INCRBY", "multifoo", 4])
=> {:ok, "QUEUED"}
Redix.command(c, ["EXEC"])
=> {:ok, [1, 1, 5]}

Redix.command(conn, ["MULTI"])
=> {:ok, "OK"}
Redix.command(conn, ["SET", "multifoo", "10"])
=> {:ok, "QUEUED"}
Redix.command(c, ["EXEC"])
=> {:ok, "OK"}

Expected {:ok, ["OK"]} for last command.

Hey @behe, great find! I fixed this issue in d723d236eb522f5980b931e091aac26acc34c361 and release v0.2.1 with the fix. Just mix deps.update redix and you should be good to go :) Let me know if it works!

Great, thanks! Also added #12 for completeness.


Crash in requestPermissions()

Used your code in a new Android application:
 requestPermissions(Manifest.permission.ACCESS_FINE_LOCATION) {
            requestCode = 1
            resultCallback = {
                handlePermissionsResult(this)
            }
        }

It crashes with:
java.lang.NoSuchMethodError: No virtual method getRequestCode()I in class Lcom/eazypermissions/common/model/PermissionResult; or its super classes (declaration of 'com.eazypermissions.common.model.PermissionResult' appears in base.apk)
at com.eazypermissions.dsl.PermissionManager.onPermissionResult(PermissionManager.kt:35)
at com.eazypermissions.common.BasePermissionManager.requestPermissions(BasePermissionManager.kt:82)
at com.eazypermissions.dsl.PermissionManager.access$requestPermissions(PermissionManager.kt:30)
at com.eazypermissions.dsl.PermissionManager$Companion._requestPermissions(PermissionManager.kt:129)
The "requestCode" is shown as unresolved in
override fun onPermissionResult(permissionResult: PermissionResult) {
        callbackMap[permissionResult.requestCode]?.let {
            permissionResult.it()
        }
        callbackMap.remove(permissionResult.requestCode)
    }

Hi, I think the error is in the Permission class Result of version 2.0.0 of the dslpermission library
implementation 'com.sagar: dslpermission: 2.0.0'
does not have the attribute
val requestCode: Int
that if it is in 2.0.1 of com.sagar: coroutinespermission and
com.sagar: livedatapermission,
the error is fixed when adding any of these, but technically it is not correct, please update the PermissionResul class for dslpermission ...
version 2.0.1

version 2.0.0

There is no com.sagar:dslpermission:2.0.1 :/

@LucianoFromTrelew @AlbertoChamorro Thanks for reporting. Will release updated version of DSL soon.

@AlbertoChamorro  @LucianoFromTrelew @adrynov
I have pushed a fix for this Please review #34

@AlbertoChamorro @LucianoFromTrelew @adrynov This should have been fixed in the latest release. Please check.


Help with private data and methods

Hey guys, I'm hoping you can help me out here.  Let's say I have a User stamp that looks like this:
// User.js

let numUsers = 0;

export default stampit().init(function() {
    var userID = ++numUsers;

    this.getUserID = function() {
        return userID;
    };

    this.getUserInfo = function() {
        return {
            userID: userID,
            complicated: complicated()
        };
    };

    function complicated() { // Private method
        // Do lots of complicated stuff
        return result;
    }
});

If I understand correctly, this is no good because if I create a million instances of it, each one of those objects has its own copy of all of those functions totally unnecessarily, resulting in a huge waste of memory - I don't need a million copies of those functions floating around in memory, just one of each would be fine.
However, if I try to fix that by doing something like this:
// User.js

let numUsers = 0;

export default stampit().init(function() {
    var userID = ++numUsers;
}).methods({
    getUserID() {
        // Ugh, no way to access userID from here!
    },
    complicated() {
        // Ugh, this should not be a public method!
    }
});

Well, now all of the methods that I wanted to be private/privileged are public, and furthermore... there's no way to access the private data from them!
I'm hoping there is a stampit way to achieve private data without being so wasteful with memory.  Thanks so much in advance for any guidance.

There are various ways you can do that in JS.

Use WeakMap

const myWeakMap = new WeakMap();

export default stampit().methods({
  accessingPrivateData() {
    const privateData = myWeakMap.get(this); // getting the private data
  }
});

Another approach (for JS environments without WeakMap):

let numUsers = 0;

export default stampit().init(() => {
  const userID = ++numUsers;

  const myProto = Object.getPrototypeOf(this);
  if (!myProto.accessingPrivateData) { // key line
    this.accessingPrivateData = () => {
      return userID;
    }
  }
});

A side note on that "userID". It's generally recommended to avoid numeric IDs for anything. UUIDs are much better in many ways.

ES6 Symbols. :)

Thank you - those are both very innovative, @koresar!  :+1:
A couple of questions for you:

Did you mean to put myProto.accessingPrivateData = () => { on approach #2?  This approach is tripping me out... so the fist time I create an instance, it will add that method to its prototype... won't then all future objects be referring to the first object's userID (and all return 1)?  I'm going to try this and report back.
Will WeakMap return the same value for a given object even after you change that object's properties?  I would guess it just uses the reference/pointer and not the value of the object... (I suppose I can do a quick test to find out!)
Could I perhaps coerce you into giving an example with ES6 Symbols?  :)

I'm afraid solution 1 doesn't work because when the garbage collector collects an object, it will leave all of its private data behind...

Sorry, I surely meant myProto. Corrected.

I'm using the approach myself. It worked last time. :)
Basically, the JS engine creates new closure, but does not create a new copy of the function.

Yes, the WeakMap uses references.

Here is my favourite introduction to Symbols - http://www.2ality.com/2014/12/es6-symbols.html
Although, I must mention that this is a semi-private approach. Symbols of an can be iterated through.

And sure enough, with approach 2:
import User from './User';

const user_a = User();
const user_b = User();

console.log(user_a.getUserID()); // 1
console.log(user_b.getUserID()); // 1

Number 1:
Not sure what you mean.
Number 2:
I would need to double check my code then. :\

Feel free to have more real time chat here: https://gitter.im/stampit-org/stampit

If anyone else stumbles across this issue:
@koresar pointed out in chat that WeakMap actually doesn't cause any memory leaking because it will let go of the private data when there are no other references to the given object.  I'm going to go with that approach for now!

A new stamp was developed - https://www.npmjs.com/package/@stamp/privatize
This is how it works:
import Privatize from '@stamp/privatize';

let accessPassword, accessSetPassword;
const Original = compose({
  properties: {password: '123'},
  methods: {
    setPassword(value) { this.password = value; },
    checkAccess() {
      accessPassword = this.password;
      accessSetPassword = this.setPassword;
    }
  }
});

// Add Privatize behavior, additionally protect the 'setPassword' method
const Stamp = Original.compose(Privatize).privatizeMethods('setPassword');

// All properties and the method 'setPassword' are undefined
const instance = Stamp();
expect(instance.password).toBeUndefined();
expect(instance.setPassword).toBeUndefined();

// But the 'checkAccess' method have access to the properties and 'setPassword'
instance.checkAccess();
expect(accessPassword).toBe('123');
expect(accessSetPassword).toBe(Original.compose.methods.setPassword);


🔥Unable to build! Warning: Checkout failed! exit status 128

Since a few days and possibly after upgrading to 3.16.0 we are seeing failed builds all across our build pipelines. Here is an example from our backend
$ cd /var/lib/buildkite-agent/builds/ip-172-21-69-51-3/xxxxxx/xxxxxx-backend
--
  | # Host "github.com" already in list of known hosts at "/var/lib/buildkite-agent/.ssh/known_hosts"
  | $ git remote set-url origin git@github.com:xxxxxx/yyyyyy-api.git
  | $ git clean -ffxdq
  | # Fetch and checkout pull request head from GitHub
  | $ git fetch -v --prune origin refs/pull/1452/head
  | From github.com:xxxxxx/yyyyyy-api
  | * branch            refs/pull/1452/head -> FETCH_HEAD
  | # FETCH_HEAD is now `599ffd60e3797cffdc86ef088a1cf383cc0529dd`
  | $ git checkout -f d3b8fa47dce0aeab39e869212a4aeb6bc43e3505
  | fatal: reference is not a tree: d3b8fa47dce0aeab39e869212a4aeb6bc43e3505
  | ⚠ Warning: Checkout failed! exit status 128 (Attempt 1/3 Retrying in 2s)
  | # Host "github.com" already in list of known hosts at "/var/lib/buildkite-agent/.ssh/known_hosts"
  | $ git remote set-url origin git@github.com:xxxxxx/yyyyyy-api.git
  | $ git clean -ffxdq
  | # Fetch and checkout pull request head from GitHub
  | $ git fetch -v --prune origin refs/pull/1452/head
  | From github.com:xxxxxx/yyyyyy-api
  | * branch            refs/pull/1452/head -> FETCH_HEAD
  | # FETCH_HEAD is now `599ffd60e3797cffdc86ef088a1cf383cc0529dd`
  | $ git checkout -f d3b8fa47dce0aeab39e869212a4aeb6bc43e3505
  | fatal: reference is not a tree: d3b8fa47dce0aeab39e869212a4aeb6bc43e3505
  | ⚠ Warning: Checkout failed! exit status 128 (Attempt 2/3 Retrying in 2s)
  | # Host "github.com" already in list of known hosts at "/var/lib/buildkite-agent/.ssh/known_hosts"
  | $ git remote set-url origin git@github.com:xxxxxx/yyyyyy-api.git
  | $ git clean -ffxdq
  | # Fetch and checkout pull request head from GitHub
  | $ git fetch -v --prune origin refs/pull/1452/head
  | From github.com:xxxxxx/yyyyyy-api
  | * branch            refs/pull/1452/head -> FETCH_HEAD
  | # FETCH_HEAD is now `599ffd60e3797cffdc86ef088a1cf383cc0529dd`
  | $ git checkout -f d3b8fa47dce0aeab39e869212a4aeb6bc43e3505
  | fatal: reference is not a tree: d3b8fa47dce0aeab39e869212a4aeb6bc43e3505
  | ⚠ Warning: Checkout failed! exit status 128 (Attempt 3/3 Retrying in 2s)
  | 🚨 Error: exit status 128

The only solution is to delete the entire build directory and do a fresh checkout.
We tracked the issue down to the pull request number. In the logs and in the environment variables we see BUILDKITE_PULL_REQUEST="1452" whereas the pull request number that triggered the build is 1540.
The pull request 1452 is indeed a pull request for the same branch/base branch combination (the pull request tries to merge "develop" to "master") but the 1452 is from early October and was successfully merged.
Do you have any hints for us why buildkite picks up that specific old pull request instead of the current one? If you need more details, I'm happy to assist.

The support replied to our email and they had to reset a cache issue on buildkite's end that caused this. Thanks for the quick support buildkite team <3


python app.py is not executing

File "/home/kali/Desktop/Android-InsecureBankv2/AndroLabServer/app.py", line 19
print "InsecureBankv2 Backend-Server"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
any solution for this ????

Hi @AdarshDebug,
this error is happening because this project is in python2 and you are running it in python3

@AdarshDebug you can install versions of python 2 using pyenv by following this tutorial, https://www.kali.org/docs/general-use/using-eol-python-versions/
Though, do take note that the import for wsgiserver will fail, so you need to change the import:
From this:
from web.wsgiserver import CherryPyWSGIServer

To this:
from cheroot.wsgi import Server as CherryPyWSGIServer

Then it should work, though I have yet to fully test it out.


Create contributing.md

Issue #85  task 2

Hey @eduardonard . Thanks for the effort but we already did have a docs/contributing.md on the dev branch. That's why the task 2 in #85 says "update" rather than "create". The issue is about adding a Makefile that would replace the three manual steps required after cloning this repo (and then updating the documentation).
BTW I have just merged dev into main to avoid further confusion about the issues all being related to newer stuff - sorry! If you'd like to add the Makefile along with docs, feel free to open a new PR.


chore(vendor): update go-common-libs/go-iscsi-helper and resolve breaking changes

ref: https://github.com/longhorn/longhorn/issues/7960
Update dependencis and resolve the breaking changes.

go-iscsi-helper
go-common-libs

The PR is mainly based on this PR https://github.com/longhorn/longhorn-manager/pull/2103/files
Talos support is not backported to v1.5.x. But we did some refactors on the common libs at the same time
So those refactors were not backported as well.
I am thinking maybe in the future, refactors can be in separated PR so we can backport those refactors immediately.

Note:

This PR depends on longhron-engine: longhorn-engine in the vendor also needs to be refactored and updated here, or the image build will still fail.

This pull request is now in conflict. Could you fix it @ChanYiLin? 🙏

Fixed.

I am thinking maybe in the future, refactors can be in separated PR so we can backport those refactors immediately.

Sounds good.


Change event not triggered for multi-select box on your site.

I have noticed a minor issue with multi-select-box script on your site today. I don't know if this is some bug in VueJS or may be a browser issue. Please have a look at the attached error-screen first. Today, I was testing VueJS on following page of your site:
http://vuejs.org/guide/forms.html
Steps to Reproduce:

cilck the above link
select "A" in multi-select. this works and outputs "[A]".
Finally try to select all values by clicking "A" and drag the mouse far below "C". Release the mouse outside the boundary of multi-select. Now all values are selected, but VueJS could not realize the change event. VueJS will not realize this change even if you change the focus to some other field. It will realize this change only when you click the multi-select once again.

Not sure if this is VueJS bug or browser didn't fire change event. but whatever the case is, it will lead to unwanted results in back-end.
regards,
Ahmed Khan
a2zBits,
Lahore, Pakistan.

Thanks for reporting this. I've tested this in Chrome, Firefox, Safari and IE11 and it seems Safari is the only browser with this behavior. This is indeed because Safari is not firing the change event when the user releases the mouse outside of the select box. I think this is a Safari bug and you probably should report it at https://bugs.webkit.org/ .

Thank you for your prompt reply. I faced this issue in Google Chrome Version 46.0.2490.80 m. And amazingly I faced this issue only on your own site. when I copied the same script to a local test file this worked fine even in the same browser. so I think some CSS property of surrounding elements on your site may have caused this.
It is not a big issue. and yes we can close it.


Remove debug output left after PR #240

A debug line was left in template.raku in plugin generated. The information leaks into the build logs, otherwise is harmless. This PR removes the offending line.

Approved from mobile app.


check offline compiler for clcpp tests

disable clcpp tests when khronos offline compiler is not available

I don't think we want to do that at the moment. These tests can't be run without an offline compiler but they can be built and I think we should keep building them always so they don't rot as we change common code. Any reason you want to make that change?

when i build cts without offline compiler, met build error. but now i can't reproduce after revert changes, and build successfully.
thank you.


Feature Request: about Input box

The direct response of the input box to the Enter key is not very friendly to Chinese users. For example, sometimes I need to press Enter to respond to the input method options, not to send. Suggestions for optimization.
The input box should support multi-line input, for example, use Ctrl+Enter for line break.
Is continuous dialogue with context supported now？  sometimes it feels like it is, sometimes it doesn't.

#3 sounds like a chat-gpt question not an extension question.  In my experience it seems to be very context aware if it's recent.  If you have a really long session it will missing things just like we humans do when someone suddenly switches topics.  So when I'm asking it about a particular piece of code I highlight the relevant bits and then use the right click / adhoc method so it has relevant context when I ask questions.

@micookie The extension's message box supports multiline. Here's the current solution that's been requested by the community here:

Enter to send message
Shift+Enter for new line

For your 3rd point, it really depends on the ChatGPT. This extension is really a very simple wrapper that helps you use the ChatGPT inside vs-code.


List of Flaky Tests

I'm going to log flaky tests in this ticket . They waste our time by having to rerun the pipeline.

[ ] test_put_has_status_code_and_params
[x] test_multiple_keys_with_at_most_singly_nested_values
[ ] test_config_list_returns_empty_listing_when_root_missing
[ ] test_foundations_create_syncable_directory_without_any_job_ids

I think that I fixed test_multiple_keys_with_at_most_singly_nested_values
The bug was that since the keys of the dictionary paramete_input are generated using faker, every now and then the generated keys would collide and cause a previously defined key to be overwritten thus it would no longer appear in the expected output if it was was of the non_empty keys that caused the override.
For example, this could happen:
>>> parameter_input = {'fake_word1': 1,
         'fake_word2: 2,
         'fake_word1: 3}
>>> paramet_input
    {'fake_word1: 3, fake_word2: 2}

I suspect that this could be happening with other flaky tests as well.


Fix class modifier

@vanillajonathan,
Thanks for having already signed the Contribution License Agreement. Your agreement was validated by .NET Foundation. We will now review your pull request.
Thanks,
.NET Foundation Pull Request Bot

@vanillajonathan Thank you for fixing this!


Build jar for windows and linux only

Hi,
I just want to build the jar file that can work for windows and Linux only, how could I do that?
Thanks

To clarify, I want to build a cross-platform jar for linux64 and win64. Would the following command work?
make win64 linux-aarch64
make package

Just remove unnecessary native libraries from src/main/resources folder, then run make package again.

Thanks!


Revert "Story continues button"

Reverts parameter1/pmmi-media-group-websites#739
This PR was incomplete and should not have been undrafted and merged.

 Updated functionality to the article gate


Mount /rescue/boot/ but unmount /rescue/boot/efi?

In the steps for RHEL/Centos/Oracle 6.x && Oracle 8.x && RHEL/Centos 7.x with RAW Partitions (and maybe a few others), we have to run the following commands to enter chroot:
#mkdir /rescue
#mount -o nouuid /dev/sdc2 /rescue
#mount -o nouuid /dev/sdc1 /rescue/boot/
#cd /rescue

#mount -t proc proc proc
#mount -t sysfs sys sys/
#mount -o bind /dev dev/
#mount -o bind /dev/pts dev/pts/
#mount -o bind /run run/
#chroot /rescue

And use the following commands to exit the chroot environment:
#umount /rescue/proc/
#umount /rescue/sys/
#umount /rescue/dev/pts
#umount /rescue/dev/
#umount /rescue/run
#cd /
#umount /rescue/boot/efi
#umount /rescue

Why do we mount /rescue/boot/ but unmount /rescue/boot/efi? Are one of these incorrect?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: d56cd12a-80e7-7d64-dfcd-3e11a6f45577
Version Independent ID: 76000ca1-8eed-1196-5111-7999e995bbd3
Content: Chroot environment in a Linux Rescue VM. - Azure Virtual Machines
Content Source: articles/virtual-machines/troubleshooting/chroot-environment-linux.md
Service: virtual-machines-linux
GitHub Login: @kailashmsft
Microsoft Alias: kaib

Thanks for the question, I'll take a look.

we will correct this and update it @rjmccallumbigl

Hi @rjmccallumbigl,
Thanks for the question,
After testing it should be the following. I'm initiating a PR to make the change.
From this to
#umount /rescue/boot/efi
#umount /rescue
To this
#umount /rescue/boot/
#umount /rescue


docs: Add Firefox-specific README for add-on reviewers

Copied from @emccorson https://github.com/anoma/namada-interface/pull/999/files
This PR adds a specific README for reviewers of the Firefox add-on.
Preview: https://github.com/anoma/namada-interface/blob/d27579c88bb9f5a252e819068df5afe5221d0bfd/FIREFOX_README.md

I forgot to add to the README that we will need to set the chain ID to match whatever we are submitting.

How about saving this on the apps/extension folder?
And also adding a reference for it on the main README file?

How about saving this on the apps/extension folder?
And also adding a reference for it on the main README file?

Thanks! And done

I forgot to add to the README that we will need to set the chain ID to match whatever we are submitting.

Thanks! Will do that


Bug fixing

Small bug fix

It is always good to explain why you are changing the values of the tld tracker or link to a issue on the bug tracker!

Sorry for late respond. I pulled out the description of bug to comments and deleted unused header

:+1:


Hello friends. I use your plugin for laser engraving in InkScape 1.0 on a Catalina MacOs.

Hello friends. I use your plugin for laser engraving in InkScape 1.0 on a Catalina MacOs.
In this version of MacOs I cannot install 0.92, only 1.0 For some reason after updating the Operating System I can no longer use the plugin. When I generate the file for recording, I receive the following message:
File "laser.py", line 51
def bezierslopeatt ((((bx0, by0), (bx1, by1), (bx2, by2), (bx3, by3)), t):
^
SyntaxError: invalid syntax
I appreciate if you can help me.
Congratulations on the great job.
Thank you.
Pablo Sica
Originally posted by @PabloSica in https://github.com/JTechPhotonics/J-Tech-Photonics-Laser-Tool/issues/2#issuecomment-658930702

Hi Pablo, it's usually good practice to create a new issue unless you're having the same exact problem as the author. I recommend trying to reinstall the plugin and making sure to use the correct release for Inkscape 1.0. Let me know if the error persists ;)


output csv and DB are different

Initial Check

If the issue is a request please specify that it is a request in the title (Example: [REQUEST] more features). If this is a question regarding 'twint' please specify that it's a question in the title (Example: [QUESTION] What is x?). Please only submit issues related to 'twint'. Thanks.

Make sure you've checked the following:

[x] Python version is 3.5 or higher.
[x] Using the latest version of Twint.
[x] I have searched the issues and there are no duplicates of this issue/question/request.

Command Ran

Please provide the exact command ran including the username/search/code so I may reproduce the issue.

Description of Issue
the output to CSV and to DB is not the same, retweets, timestamp... it could be related also to the other output CSV issue
def writeCSV(Tweet, config):
data = {
"id": Tweet.id,
"date": Tweet.datestamp,
"time": Tweet.timestamp,
"timezone": Tweet.timezone,
"user_id": Tweet.user_id,
"username": Tweet.username,
"tweet": Tweet.tweet,
"replies": Tweet.replies,
"likes": Tweet.likes,
"location": Tweet.location,
"hashtags": Tweet.hashtags,
"link": Tweet.link,
"retweet": Tweet.is_retweet,
"user_rt": Tweet.user_rt,
"mentions": Tweet.mentions,
}
def tweets(conn, Tweet):
try:
cursor = conn.cursor()
entry = (Tweet.id,
Tweet.user_id,
Tweet.datestamp,
Tweet.timezone,
Tweet.location,
Tweet.username,
Tweet.tweet,
Tweet.likes,
Tweet.retweets,
",".join(Tweet.hashtags),
Tweet.link,
Tweet.is_retweet,
Tweet.user_rt,
",".join(Tweet.mentions))
cursor.execute('INSERT INTO tweets VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?)', entry)
conn.commit()
except sqlite3.IntegrityError:
pass
OS Details

Using Windows, Linux? What OS version?

Thanks @Nestor75 for catching this,
I was a lil tired while pushing these updates a while ago and forgot to add those.
The latest commits include the missing entries, sorry about that

no problem at all :)


Add markdown code examples to text features article

@nwhitmont,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

AdaptiveCards/create/TextFeatures.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.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

AdaptiveCards/create/TextFeatures.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.

This was updated in a separate PR, thanks Nils


spack

on tsa:
==> Error: icontools matches multiple packages.   Matching packages:     k2slki3 icontools<EMAIL_ADDRESS>arch=linux-rhel7-skylake_avx512     swm5ysc icontools<EMAIL_ADDRESS>arch=linux-rhel7-skylake_avx512   Use a more specific spec. ==> installing icontools (may take a moment) ==> Warning: the original concretizer is currently being used.         Upgrade to "clingo" at your earliest convenience. The original concretizer will be removed from Spack starting at v0.18.0 ==> Warning: Missing a source id for icontools@dev-build [+] /usr (external autoconf-2.69-2rj2my5iyrpwd3llsqfqcqek6bqgkxru) [+] /usr (external automake-1.13.4-xjhzrox3hjad5ifl5l5omhl4otsrno7i) ==><EMAIL_ADDRESS>: has external module in ['cmake/3.14.5'] [+] /apps/arolla/UES/jenkins/RH7.9/MCH-PE20.08-UP01/generic/easybuild/software/CMake/3.14.5 (external cmake-3.14.5-bquf5bavkjkaanniw6bhwwlpuzhr67im) [+] /usr (external jasper-1.900.1-u2yj2cj6kcgaqcw7jy2mhuzujyfrgn56) ==> Error: Failed to acquire a write lock for pkgconf-1.8.0-jjxhugsot65etf3xbpefw73ooketmemc due to LockROFileError: Can't take write lock on read-only file: /project/g110/spack-install/tsa/.spack-db/prefix_lock ==> Error: Can't take write lock on read-only file: /project/g110/spack-install/tsa/.spack-db/prefix_lock --- Produce grid file for lateral boundary with iconsub. ==> Error: icontools matches multiple packages.   Matching packages:     k2slki3 icontools<EMAIL_ADDRESS>arch=linux-rhel7-skylake_avx512     swm5ysc icontools<EMAIL_ADDRESS>arch=linux-rhel7-skylake_avx512   Use a more specific spec. --- Finished loading icontools ==> Error: icontools matches multiple packages.   Matching packages:     k2slki3 icontools<EMAIL_ADDRESS>arch=linux-rhel7-skylake_avx512     swm5ysc icontools<EMAIL_ADDRESS>arch=linux-rhel7-skylake_avx512   Use a more specific spec.

fixed by replacing icontools with icontools%c2sm-master


fix(web): Remove Asset.Store SchemaVariantSaved Event

We are continually reloading the page when this WsEvent fires. The variant autosaves every few seconds so we don't need to reload everything every few seconds

bors merge


spec_helper.rb:17:in <top (required)>': undefined method configure' for RSpec:Module (NoMethodError)

I'm running a new rails 4.1 app with rspec 3.0, and zeus 0.15.1.
❯❯❯ zeus test
/home/pablo/code/rails/pescve/spec/spec_helper.rb:17:in `<top (required)>': undefined method `configure' for RSpec:Module (NoMethodError)
    from /home/pablo/code/rails/pescve/vendor/bundle/gems/activesupport-4.1.2/lib/active_support/dependencies.rb:247:in `require'
    from /home/pablo/code/rails/pescve/vendor/bundle/gems/activesupport-4.1.2/lib/active_support/dependencies.rb:247:in `block in require'
    from /home/pablo/code/rails/pescve/vendor/bundle/gems/activesupport-4.1.2/lib/active_support/dependencies.rb:232:in `load_dependency'
    from /home/pablo/code/rails/pescve/vendor/bundle/gems/activesupport-4.1.2/lib/active_support/dependencies.rb:247:in `require'
    from /home/pablo/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/zeus-0.15.1/lib/zeus/rails.rb:189:in `test_helper'
    from /home/pablo/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/zeus-0.15.1/lib/zeus.rb:200:in `run_action'
    from /home/pablo/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/zeus-0.15.1/lib/zeus.rb:74:in `block (2 levels) in boot_steps'
    from /home/pablo/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/zeus-0.15.1/lib/zeus/load_tracking.rb:7:in `features_loaded_by'
    from /home/pablo/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/zeus-0.15.1/lib/zeus.rb:73:in `block in boot_steps'
    from /home/pablo/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/zeus-0.15.1/lib/zeus.rb:56:in `catch'
    from /home/pablo/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/zeus-0.15.1/lib/zeus.rb:56:in `boot_steps'
    from /home/pablo/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/zeus-0.15.1/lib/zeus.rb:48:in `go'
    from -e:1:in `<main>'

If I add require rspec/rails on the top, zeus works, but rspec stops working:
❯❯❯ rspec spec
/home/pablo/code/rails/pescve/vendor/bundle/gems/actionview-4.1.2/lib/action_view/template.rb:8:in `<class:Template>': uninitialized constant ActiveSupport::Autoload (NameError)
    from /home/pablo/code/rails/pescve/vendor/bundle/gems/actionview-4.1.2/lib/action_view/template.rb:7:in `<module:ActionView>'
    from /home/pablo/code/rails/pescve/vendor/bundle/gems/actionview-4.1.2/lib/action_view/template.rb:5:in `<top (required)>'
    from /home/pablo/code/rails/pescve/vendor/bundle/gems/actionview-4.1.2/lib/action_view/template/resolver.rb:4:in `require'
    from /home/pablo/code/rails/pescve/vendor/bundle/gems/actionview-4.1.2/lib/action_view/template/resolver.rb:4:in `<top (required)>'
    from /home/pablo/code/rails/pescve/vendor/bundle/gems/actionview-4.1.2/lib/action_view/testing/resolvers.rb:1:in `require'
    from /home/pablo/code/rails/pescve/vendor/bundle/gems/actionview-4.1.2/lib/action_view/testing/resolvers.rb:1:in `<top (required)>'
    from /home/pablo/code/rails/pescve/vendor/bundle/gems/rspec-rails-3.0.1/lib/rspec/rails/view_rendering.rb:1:in `require'
    from /home/pablo/code/rails/pescve/vendor/bundle/gems/rspec-rails-3.0.1/lib/rspec/rails/view_rendering.rb:1:in `<top (required)>'
    from /home/pablo/code/rails/pescve/vendor/bundle/gems/rspec-rails-3.0.1/lib/rspec/rails.rb:4:in `require'
    from /home/pablo/code/rails/pescve/vendor/bundle/gems/rspec-rails-3.0.1/lib/rspec/rails.rb:4:in `<top (required)>'
    from /home/pablo/code/rails/pescve/spec/spec_helper.rb:18:in `require'
    from /home/pablo/code/rails/pescve/spec/spec_helper.rb:18:in `<top (required)>'
    from /home/pablo/code/rails/pescve/vendor/bundle/gems/rspec-core-3.0.2/lib/rspec/core/configuration.rb:1024:in `require'
    from /home/pablo/code/rails/pescve/vendor/bundle/gems/rspec-core-3.0.2/lib/rspec/core/configuration.rb:1024:in `block in requires='
    from /home/pablo/code/rails/pescve/vendor/bundle/gems/rspec-core-3.0.2/lib/rspec/core/configuration.rb:1024:in `each'
    from /home/pablo/code/rails/pescve/vendor/bundle/gems/rspec-core-3.0.2/lib/rspec/core/configuration.rb:1024:in `requires='
    from /home/pablo/code/rails/pescve/vendor/bundle/gems/rspec-core-3.0.2/lib/rspec/core/configuration_options.rb:101:in `block in process_options_into'
    from /home/pablo/code/rails/pescve/vendor/bundle/gems/rspec-core-3.0.2/lib/rspec/core/configuration_options.rb:100:in `each'
    from /home/pablo/code/rails/pescve/vendor/bundle/gems/rspec-core-3.0.2/lib/rspec/core/configuration_options.rb:100:in `process_options_into'
    from /home/pablo/code/rails/pescve/vendor/bundle/gems/rspec-core-3.0.2/lib/rspec/core/configuration_options.rb:22:in `configure'
    from /home/pablo/code/rails/pescve/vendor/bundle/gems/rspec-core-3.0.2/lib/rspec/core/runner.rb:96:in `setup'
    from /home/pablo/code/rails/pescve/vendor/bundle/gems/rspec-core-3.0.2/lib/rspec/core/runner.rb:85:in `run'
    from /home/pablo/code/rails/pescve/vendor/bundle/gems/rspec-core-3.0.2/lib/rspec/core/runner.rb:70:in `run'
    from /home/pablo/code/rails/pescve/vendor/bundle/gems/rspec-core-3.0.2/lib/rspec/core/runner.rb:38:in `invoke'
    from /home/pablo/code/rails/pescve/vendor/bundle/gems/rspec-core-3.0.2/exe/rspec:4:in `<top (required)>'
    from /home/pablo/code/rails/pescve/bin/rspec:16:in `load'
    from /home/pablo/code/rails/pescve/bin/rspec:16:in `<main>'

I'm pretty sure this error appeared after having spec/rails_helper.rb and spec/spec_helper.rb, but I don't know how to fix it =/. Any idea?
# spec/rails_helper.rb

# This file is copied to spec/ when you run 'rails generate rspec:install'
ENV["RAILS_ENV"] ||= 'test'
require 'spec_helper'
require File.expand_path("../../config/environment", __FILE__)
require 'fabrication'
require 'rspec/rails'

# Requires supporting ruby files with custom matchers and macros, etc, in
# spec/support/ and its subdirectories. Files matching `spec/**/*_spec.rb` are
# run as spec files by default. This means that files in spec/support that end
# in _spec.rb will both be required and run as specs, causing the specs to be
# run twice. It is recommended that you do not name files matching this glob to
# end with _spec.rb. You can configure this pattern with with the --pattern
# option on the command line or in ~/.rspec, .rspec or `.rspec-local`.
Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }

# Checks for pending migrations before tests are run.
# If you are not using ActiveRecord, you can remove this line.
# ActiveRecord::Migration.maintain_test_schema!

RSpec.configure do |config|
  # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
  # config.fixture_path = "#{::Rails.root}/spec/fixtures"

  # If you're not using ActiveRecord, or you'd prefer not to run each of your
  # examples within a transaction, remove the following line or assign false
  # instead of true.
  # config.use_transactional_fixtures = true

  # RSpec Rails can automatically mix in different behaviours to your tests
  # based on their file location, for example enabling you to call `get` and
  # `post` in specs under `spec/controllers`.
  #
  # You can disable this behaviour by removing the line below, and instead
  # explicitly tag your specs with their type, e.g.:
  #
  #     RSpec.describe UsersController, :type => :controller do
  #       # ...
  #     end
  #
  # The different available types are documented in the features, such as in
  # https://relishapp.com/rspec/rspec-rails/docs
  config.infer_spec_type_from_file_location!
end

# spec/spec_helper

# This file was generated by the `rspec --init` command. Conventionally, all
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
# The generated `.rspec` file contains `--require spec_helper` which will cause this
# file to always be loaded, without a need to explicitly require it in any files.
#
# Given that it is always loaded, you are encouraged to keep this file as
# light-weight as possible. Requiring heavyweight dependencies from this file
# will add to the boot time of your test suite on EVERY test run, even for an
# individual file that may not need all of that loaded. Instead, make a
# separate helper file that requires this one and then use it only in the specs
# that actually need it.
#
# The `.rspec` file also contains a few flags that are not defaults but that
# users commonly want.
#
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration

RSpec.configure do |config|
# The settings below are suggested to provide a good initial experience
# with RSpec, but feel free to customize to your heart's content.
=begin
  # These two settings work together to allow you to limit a spec run
  # to individual examples or groups you care about by tagging them with
  # `:focus` metadata. When nothing is tagged with `:focus`, all examples
  # get run.
  config.filter_run :focus
  config.run_all_when_everything_filtered = true

  # Many RSpec users commonly either run the entire suite or an individual
  # file, and it's useful to allow more verbose output when running an
  # individual spec file.
  if config.files_to_run.one?
    # Use the documentation formatter for detailed output,
    # unless a formatter has already been configured
    # (e.g. via a command-line flag).
    config.default_formatter = 'doc'
  end

  # Print the 10 slowest examples and example groups at the
  # end of the spec run, to help surface which specs are running
  # particularly slow.
  config.profile_examples = 10

  # Run specs in random order to surface order dependencies. If you find an
  # order dependency and want to debug it, you can fix the order by providing
  # the seed, which is printed after each run.
  #     --seed 1234
  config.order = :random

  # Seed global randomization in this process using the `--seed` CLI option.
  # Setting this allows you to use `--seed` to deterministically reproduce
  # test failures related to randomization by passing the same `--seed` value
  # as the one that triggered the failure.
  Kernel.srand config.seed

  # rspec-expectations config goes here. You can use an alternate
  # assertion/expectation library such as wrong or the stdlib/minitest
  # assertions if you prefer.
  config.expect_with :rspec do |expectations|
    # Enable only the newer, non-monkey-patching expect syntax.
    # For more details, see:
    #   - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax
    expectations.syntax = :expect
  end

  # rspec-mocks config goes here. You can use an alternate test double
  # library (such as bogus or mocha) by changing the `mock_with` option here.
  config.mock_with :rspec do |mocks|
    # Enable only the newer, non-monkey-patching expect syntax.
    # For more details, see:
    #   - http://teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
    mocks.syntax = :expect

    # Prevents you from mocking or stubbing a method that does not exist on
    # a real object. This is generally recommended.
    mocks.verify_partial_doubles = true
  end
=end
end

Thanks for the report @johvet

Shouldn't it be fixed on rspec side by requiring 'rspec/core' at the beginning of spec_helper.rb?

Just confirmed that I still have this issue in Rails 4.2.0.rc1 / Rspec 3.2.0 / Zeus 0.15.4 . @maxcal 's trick fixes the issue.

Easily solved, in your Gemfile:
require "rspec-rails", require: "rspec/rails"
:dancer:

:dancer: :dancer: :dancer:

@hayeah, your fix gives the error:
.../rack-1.6.4/lib/rack/builder.rb:146:in `to_app': missing run or map statement (RuntimeError)

@halilim no idea. I followed https://github.com/burke/zeus/issues/474#issuecomment-89336625 and it worked in our case.

@halilim, experienced the same error here... although I'm not using Zeus (just got here though google).

Yep adding require 'rspec/core' before requiring spec_helper in rails_helper.rb solved the problem.
rails_helper.rb
require 'rspec/core'
require 'spec_helper'

I met the same problem, Also adding require 'rspec/rails before requring spec_helper in rails_helper.rb solved the problem.
# rails_helper.rb

require "rspec/rails"
require "spec_helper"

I agree with some of the previous comments here. Currently, zeus doesn't work with a stock rails 4+/5 setup and rspec setup -- rails_helper.rb must be modified for zeus to function at all. Being that this is the case, either:
a. zeus should be changed to support the default rails behavior
b. The zeus documentation should clearly lay out these required changes to rails_helper.rb.


ghidra: init at 10.1.1

Motivation for this change
A proper ghidra package that's actually built by us instead of using upstream's binary artifacts. This would allow patching the sources with overrideAttrs.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

On macos 10.15:
StartiStarting process 'command 'xcrun''. Working directory: /private/tmp/nix-build-ghidra-deps-10.1.1.drv-0/source Command: xcrun --show-sdk-path

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':Decompiler'.
> Exception thrown while executing model rule: NativeBinaryRules#assignTools(NativeBinarySpec, NativeToolChainRegistryInternal, ProjectLayout)
   > A problem occurred starting process 'command 'xcrun''
ng process 'command 'xcrun''. Working directory: /private/tmp/nix-build-ghidra-deps-10.1.1.drv-0/source Command: xcrun --show-sdk-path

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':Decompiler'.
> Exception thrown while executing model rule: NativeBinaryRules#assignTools(NativeBinarySpec, NativeToolChainRegistryInternal, ProjectLayout)
   > A problem occurred starting process 'command 'xcrun''

I added xcbuild to the native dependencies on darwin, which should fix the build?

I've been hacking around and found it needs to be added to the dependencies derivation inputs.
That gets it further but then it fails in the fixup of the fixeddeps derivation:
strip is /nix/store/lark52dswbrjdfvb26qwm320fgrdy71k-cctools-binutils-darwin-949.0.1/bin/strip
patching script interpreter paths in /nix/store/plw0pqgiin6l4jhpgqji91qwr1dqwv4a-ghidra-fixeddeps-10.1.1
automatically fixing dependencies for ELF files
/nix/store/zjbg9bd1ig22q9brykjkidhk8x84bkxk-auto-patchelf-hook/nix-support/setup-hook: line 333: -l: command not found

Think I've just about got it building on macos now, with quite a few tweaks. Will gather them together when I know they work...

Builds and runs for me on macos 10.15 with the above changes.


Improve web app performance

Loading the GJ file with all edges and optionally origins/destinations is painfully slow

[ ] Optionally omit edges with low counts?
[x] Try pmtiles (possibly with attribute-filter or https://github.com/felt/tippecanoe#geojson-extension to simplify at low zooms)

London with defaults: 248MB, extremely laggy to load and pan
Without OD points or OSM tags: 97MB, still laggy
Same, but also skipping edges with < 10 count: 38MB, slightly better, but still unusably slow

pmtiles were the answer, of course ;)


Invoice fixes

Invoice fixes

Description

Better unit tests for invoice PDFs, counting pages.
Fix for customer_company_registration being a List of values, having a type.
Refactor base Field class, runtime attribute definitions are evil.

How Has This Been Tested
Added and updated unit tests
Types of changes

[x] Docs change / refactoring / dependency upgrade
[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[x] Breaking change (fix or feature that would cause existing functionality to change)

Checklist

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

Note to myself: once we have an approved version, we need to update the documentation since the customer company registration information is now in a list.
/cc @fakela

Unless I don't use it correctly, there is an issue as I get the same value for the type and the value of the customer company registrations using the following:
customer_company_registrations = invoice_data.invoice.customer_company_registration

for customer_company_registration in customer_company_registrations:
    # To get the type of number
    customer_company_registration_number_type = customer_company_registration.type
    print ("\nCustomer Company Registration Type")
    print (customer_company_registration_number_type)

    # To get the company number
    customer_company_registration_number_value = customer_company_registration.value
    print ("\nCustomer Company Registration Number")
    print (customer_company_registration_number_value)

which give me
Customer Company Registration

Customer Company Registration Type
736952710

Customer Company Registration Number
736952710

:facepalm:
Thanks a bunch, fixed in 6d25b12b77625dea8c81d53e74e521f43f141ea5

Thanks a bunch, fixed in https://github.com/mindee/mindee-api-python/commit/6d25b12b77625dea8c81d53e74e521f43f141ea5

It's working now, thanks


Split coap-client output on newline.

With coap-client v4.1.2  the output can not be blindly parsed as json.
Example output:
v:1 t:CON c:GET i:6697 {} [ ]
{}

Splitting on newline and using the 2nd part/line seems to solve that issue.

The recommended approach is to use our install script which is not on 4.1.2 https://github.com/ggravlingen/pytradfri/blob/master/script/install-coap-client.sh

I get the same output from that version.

With that version, the debug output is printed to stderr. So it will work with pytradfri.

Alright, but why not make it work with upstream?

I'm closing this based on the recommendation from @balloob on how to make it work above.


Is it possible to not overwrite the Authorization header?

I'm trying to protect a Ghost blog with oauth2_proxy (so that only allowed @domain.com emails can read the blog) as a reverse proxy for my blog. Everything works well expect that all requests to the /ghost/api endpoints (e.g trying to connect to the admin interface) fail because the Authorization header seems to be overwritten by oauth2_proxy, which is what Ghost is using to authenticate users on the admin side.
Is there any way to force oauth2_proxy to not touch the Authorization header and just pass the header untouched to the proxied app? Tried both pass_basic_auth options with no luck.

My bad, seems like pass_basic_auth = false fixed it! Not sure why it didn't work the first time I tried it.


propagation check failed: DNS record for xxx not yet propagated

Describe the bug:
I'm seeing lots of entries like these in the logs:
E0411 10:23:00.840727       1 sync.go:185] cert-manager/controller/challenges "msg"="propagation check failed" "error"="DNS record for \"x.y.z.domain.com\" not yet propagated" "dnsName"="x.y.z.domain.com" "resource_kind"="Challenge" "resource_name"="main-tls-kp29g-2036187529-2563751190" "resource_namespace"="tsk-devops-tests" "resource_version"="v1" "type"="DNS-01"

It takes up to 10 minutes for this to finish and the certificate to get issued.
Expected behaviour:
Faster result
Steps to reproduce the bug:
Create an ingress with the nessarcy cert-manager annotations.
Anything else we need to know?:
We're using the DNS-01 challenge.
If I do a manual dig to _acme-challenge.x.y.z.domain.com the TXT record is there in seconds (not 10 minutes).
If I do a tcpdump on the cert-manager pod I starts with CNAME and TXT requests for z.domain.com.
Only after 5 minutes, it starts with CNAME requests for _acme-challenge.x.y.z.domain.com, then after another minute it finally starts to request TXT records for _acme-challenge.x.y.z.domain.com
Why is it doing these extra CNAME lookups and why does it start with the first subdomain instead of the complete domain?
Environment details::

Kubernetes version: 1.16.14
Cloud-provider/provisioner: on VMs installed with kubeadm
cert-manager version: 1.5.5 using DNS-01 challenges for Lets Encrypt with CloudFlare
Install method: helm using the following extraArgs: --dns01-recursive-nameservers-only and --dns01-recursive-nameservers=<IP_ADDRESS>:53

/kind bug

Ok, I 'fixed' this by removing the DNS entries from our cloudflare account pointing to z.domain.com. We could do this because this cluster should only be accessible from the inside our network anyway.
I still wonder why it does all does extra CNAME requests for z.domain.com before moving on to _acme-challenge.x.y.z.domain.com

Same issue here, the cert-manager pod just does not dig for the TXT record of the issued domain, even after 20 min it's still stuck in pending...  I am using Version 1.8.0 but had that issue for a long time. I am on k8s 1.22, but this issue doesn't seem to be related to the k8s version.
But why is it trying to get the TXT and CNAME for the root domain? My guess is that the wildcard CNAME for my domain to the root is causing issues...
*		IN	CNAME	mydomain.com.

root@k8s:~# ip netns exec cni-e1ef2576-7000-e9ba-776c-b77201abaec9 tcpdump -vvnni eth0 port 53
tcpdump: listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
18:15:11.593102 IP (tos 0x0, ttl 64, id 46069, offset 0, flags [DF], proto UDP (17), length 93)
    <IP_ADDRESS>.47469 > <IP_ADDRESS>.53: [bad udp cksum 0x5981 -> 0xb900!] 63691+ [1au] CNAME? _acme-challenge.example2.mydomain.com. ar: . OPT UDPsize=4096 (65)
18:15:11.624700 IP (tos 0x0, ttl 53, id 20998, offset 0, flags [DF], proto UDP (17), length 107)
    <IP_ADDRESS>.53 > <IP_ADDRESS>.47469: [udp sum ok] 63691 q: CNAME? _acme-challenge.example2.mydomain.com. 1/0/1 _acme-challenge.example2.mydomain.com. CNAME mydomain.com. ar: . OPT UDPsize=1232 (79)
18:15:11.624813 IP (tos 0x0, ttl 64, id 26153, offset 0, flags [DF], proto UDP (17), length 68)
    <IP_ADDRESS>.35130 > <IP_ADDRESS>.53: [bad udp cksum 0x5968 -> 0xc757!] 22942+ [1au] CNAME? mydomain.com. ar: . OPT UDPsize=4096 (40)
18:15:11.657593 IP (tos 0x0, ttl 53, id 9418, offset 0, flags [DF], proto UDP (17), length 131)
    <IP_ADDRESS>.53 > <IP_ADDRESS>.35130: [udp sum ok] 22942 q: CNAME? mydomain.com. 0/1/1 ns: mydomain.com. SOA hydrogen.ns.hetzner.com. dns.hetzner.com.<PHONE_NUMBER> 86400 10800 3600000 3600 ar: . OPT UDPsize=1232 (103)
18:15:11.657712 IP (tos 0x0, ttl 64, id 5262, offset 0, flags [DF], proto UDP (17), length 68)
    <IP_ADDRESS>.32900 > <IP_ADDRESS>.53: [bad udp cksum 0x6776 -> 0xf079!] 8228+ [1au] TXT? mydomain.com. ar: . OPT UDPsize=4096 (40)
18:15:11.666677 IP (tos 0x0, ttl 59, id 13269, offset 0, flags [none], proto UDP (17), length 95)
    <IP_ADDRESS>.53 > <IP_ADDRESS>.32900: [udp sum ok] 8228 q: TXT? mydomain.com. 1/0/1 mydomain.com. TXT "v=spf1 mx -all" ar: . OPT UDPsize=512 (67)

I have the same problem. DNS record for "bar.foo.com" not yet propagated.
Maybe it is somehow related to my DNS configuration:
foo.com NS root-ns.
bar.foo.com NS another-ns.
bar.foo.com A x.x.x.x

@nailgun I just ran into exactly the same issue and given you posted this 2 mins ago I'd assume Cloudflare is having some propagation issues - mine has just gone through this very second

@MattJeanes but I don't use Cloudflare with this domain, nor use it for propagation checks

@nailgun oh okay, I was able to get one through just now but it did take about 10 minutes before it worked, I know propagation checks check many different DNS providers around the world for anti-tampering so maybe there's a delay there at the moment

Workaround found. With domain delegation certificate was issued

domain delegation

that's not working for me

Workaround found. With domain delegation certificate was issued

that's not working for me

we have kind of the same issue with hetzner-dns. I can see the TXT entry, but cert-manager keeps complaining "not yet propagated"..

take a look to:
https://github.com/cert-manager/cert-manager/issues/5515#issuecomment-1479054700


Fix vendor directory discovery if it is more than 1 level deep

I've been applying this patch consistently the past year in my test project. Due to the submodule/symlink structure of the project, the vendor directory was 4 levels deep. The while loop actually didn't work on anything other than a vendor directory in the guides-cli/bin directory.

Thanks for this fix


error: %pre(gdfs-1.0.0-166.10.x86_64) scriptlet failed, exit status 1

Hi,
I am running into an error scriptlet failed, exit status 1
When attempting to install the rpm: gdfs-1.0.0-166.10.x86_64.rpm
Platform:
CentOS Linux release 7.9.2009 (Core)
3.10.0-1160.15.2.el7.x86_64
Any thoughts what might be going wrong and how can I get it to fix?
Error snippet for more details:
sudo yum install gdfs-1.0.0-166.10.x86_64.rpm
Loaded plugins: fastestmirror, langpacks
Examining gdfs-1.0.0-166.10.x86_64.rpm: gdfs-1.0.0-166.10.x86_64
Marking gdfs-1.0.0-166.10.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package gdfs.x86_64 0:1.0.0-166.10 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==========================================================================================================================================================================
 Package                          Arch                               Version                                  Repository                                             Size
==========================================================================================================================================================================
Installing:
 gdfs                             x86_64                             1.0.0-166.10                             /gdfs-1.0.0-166.10.x86_64                             467 k

Transaction Summary
==========================================================================================================================================================================
Install  1 Package

Total size: 467 k
Installed size: 467 k
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
/var/tmp/rpm-tmp.ejeaE1: line 1: fg: no job control
error: %pre(gdfs-1.0.0-166.10.x86_64) scriptlet failed, exit status 1
Error in PREIN scriptlet in rpm package gdfs-1.0.0-166.10.x86_64
  Verifying  : gdfs-1.0.0-166.10.x86_64                                                                                1/1

Failed:
  gdfs.x86_64 0:1.0.0-166.10

Complete!

It seems the el7 gdfs-1.0.0-166.10.x86_64.rpm installation errors were due to the service setup macros specific to SUSE, made the below changes to the spec file using the source RPM, rebuild it and the installation with newly build RPMs worked fine. with CentOS 7.9.
%pre
%if 0%{?suse_version}
    %service_add_pre gdfs.service
%endif

%post
%if 0%{?suse_version}
    %service_add_post gdfs.service
%else
    %systemd_post gdfs.service
%endif

%preun
%if 0%{?suse_version}
    %service_del_preun gdfs.service
%else
    %systemd_preun gdfs.service
%endif

%postun
%if 0%{?suse_version}
    %service_del_postun gdfs.service
%else
    %systemd_postun gdfs.service
%endif

Additionally made below changes to lib/request.h

 45   char access_token[2048];
 46   char refresh_token[512];

and below changes to lib/auth.cc
 64   char auth_token[2048];
in order to fix crash dump of "gauth" utility, when used to generate the "gdfs.auth", this seemed to have resolved the problem and noticed this fix is also mentioned and implemented by others before per Buffer Overflow


[Broken] Youtube Premium Audio is no longer available

Checklist

[x ] I'm reporting a broken site support
[x ] I've verified that I'm running yt-dlp version 2021.06.09
[x ] I've checked that all provided URLs are alive and playable in a browser
[x ] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[x ] I've searched the bugtracker for similar issues including closed ones

Verbose log

$ ./yt-dlp.exe -v -F --cookies ytcookies.txt https://music.youtube.com/watch?v=8ay_BkRuv-o
[debug] Command-line config: ['-v', '-F', '--cookies', 'ytcookies.txt', 'https://music.youtube.com/watch?v=8ay_BkRuv-o']
[debug] Encodings: locale cp1252, fs utf-8, out utf-8, pref cp1252
[debug] yt-dlp version 2021.06.09 (exe)
[debug] Python version 3.8.10 (CPython 64bit) - Windows-10-10.0.19042-SP0
[debug] exe versions: ffmpeg 2021-05-19-git-2261cc6d8a-full_build-www.gyan.dev, ffprobe 2021-05-19-git-2261cc6d8a-full_build-www.gyan.dev
[debug] Proxy map: {}
[debug] [youtube] Extracting URL: https://music.youtube.com/watch?v=8ay_BkRuv-o
[youtube] 8ay_BkRuv-o: Downloading webpage
[youtube] 8ay_BkRuv-o: Fetching youtube music info webpage
WARNING: [youtube] unable to download youtube music info webpage: HTTP Error 404: Not Found
[debug] Formats sorted by: hasvid, ie_pref, lang, quality, res, fps, vcodec:vp9.2(10), acodec, filesize, fs_approx, tbr, vbr, abr, asr, proto, vext, aext, hasaud, source, id
[info] Available formats for 8ay_BkRuv-o:
ID  EXT  RESOLUTION FPS |  FILESIZE    TBR PROTO | VCODEC          VBR ACODEC     ABR  ASR    NOTE
--- ---- ---------- --- - ---------- ----- ----- - ------------- ----- --------- ---- ------- ----------------------------------------
249 webm audio only     |  1.14MiB     47k https |                     opus       47k 48000Hz audio_quality_low, webm_dash, 48000Hz
250 webm audio only     |  1.50MiB     62k https |                     opus       62k 48000Hz audio_quality_low, webm_dash, 48000Hz
140 m4a  audio only     |  3.09MiB    129k https |                     mp4a.40.2 129k 44100Hz audio_quality_medium, m4a_dash, 44100Hz
251 webm audio only     |  2.98MiB    124k https |                     opus      124k 48000Hz audio_quality_medium, webm_dash, 48000Hz
160 mp4  142x144    25  |  260.59KiB   10k https | avc1.4d400b     10k                        144p, mp4_dash
394 mp4  144x146    25  |  564.33KiB   23k https | av01.0.00M.08   23k                        144p, mp4_dash
278 webm 144x146    25  |  440.15KiB   17k https | vp9             17k                        144p, webm_dash
133 mp4  236x240    25  |  408.79KiB   16k https | avc1.4d400c     16k                        240p, mp4_dash
395 mp4  240x244    25  |  1.19MiB     49k https | av01.0.00M.08   49k                        240p, mp4_dash
242 webm 240x244    25  |  1.13MiB     47k https | vp9             47k                        240p, webm_dash
134 mp4  354x360    25  |  644.24KiB   26k https | avc1.4d4015     26k                        360p, mp4_dash
18  mp4  354x360    25  |  4.04MiB    169k https | avc1.42001E    169k mp4a.40.2   0k 44100Hz 360p, 44100Hz
396 mp4  360x366    25  |  1.76MiB     73k https | av01.0.00M.08   73k                        360p, mp4_dash
243 webm 360x366    25  |  2.19MiB     91k https | vp9             91k                        360p, webm_dash
135 mp4  472x480    25  |  900.03KiB   36k https | avc1.4d401e     36k                        480p, mp4_dash
397 mp4  480x488    25  |  2.77MiB    116k https | av01.0.01M.08  116k                        480p, mp4_dash
244 webm 480x488    25  |  3.47MiB    145k https | vp9            145k                        480p, webm_dash
136 mp4  710x720    25  |  1.26MiB     52k https | avc1.4d401f     52k                        720p, mp4_dash
398 mp4  720x730    25  |  5.35MiB    224k https | av01.0.04M.08  224k                        720p, mp4_dash
247 webm 720x730    25  |  6.71MiB    281k https | vp9            281k                        720p, webm_dash
137 mp4  1064x1080  25  |  3.48MiB    145k https | avc1.640020    145k                        1080p, mp4_dash

Description

I've ensured that I'm a premium member of Youtube, and am supplying the authorization cookie, but it seems the 255kbps m4a (and any other higher quality audio formats) are no longer present.

@colethedj Do you still have a premium to check whether the same patch as age-gate can be applied here?

@colethedj Do you still have a premium to check whether the same patch as age-gate can be applied here?

I'm not exactly sure what you're referring to... but I can confirm that my cookie still works to access age-restricted videos, if that's related?

@Smorgasbordq I have a pretty good idea how to fix this (Related: #319). But I don't have a premium to test the bug or the potential fix. When we added this feature, @colethedj had a premium and he's the one who ported over the PR and did all the testing. I was wondering if he still has premium account

(Oh, my bad, thought that was @ me. Sounds good though 👍 )

Yes I still have premium so can do some quick testing on any temporary fixes.
#328 fixes this though and hopefully I will get back to working on it later this week.


Replace term event producers in event-hubs-overview.md

There are two terms used intermittently: "event publishers" and "event producers". They seem to mean the exact same thing. However, since "event producers" is used only a few times in the document, this confused me.
It is my suggestion to replace the three instances of "event producers" with "event publishers", as is consistent with the diagrams.

Hi @victorp13, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

This seems like a small (but important) contribution, so no contribution license agreement is required at this point. Real humans will now evaluate your PR.

TTYL, AZPRBOT;

@victorp13 Victor, thanks for the update.

@sethmanheim hey Seth, could you please review this contribution?

@victorp13 Victor, thank you for the contribution. You are right, this is an inconsistency. Good suggestion, we'll incorp your changes. @Jim-Parker OK to merge.


Fix grammar/typo in docs for add_if_not_exists/3

Found a grammar mistake in the docs!

Thank you


Fixed :class:~AnimationGroup opengl compatibility

Overview: What does this pull request change?

Motivation and Explanation: Why and how do your changes improve the library?

Fixes opengl compatibility for AnimationGroup.
When running the below code it fails as it is creating the cairo Mobject instead of OpenGLMobject
class Test(Scene):

    def construct(self):
        sqr = Square()
        sqr_anim = FadeIn(sqr)
        wait = Wait()
        animation_group = AnimationGroup(wait, sqr_anim, lag_ratio=1)
        self.play(animation_group)

It was failing with:
Traceback (most recent call last):
╭──────────────────────────────────────────────────────────────────────────────╮
│ File                                                                         │
│"/Users/ryan/PycharmProjects/manim-community/manim/cli/render/commands.py",   │
│line 108, in render                                                           │
│    105             while keep_running:                                       │
│    106                 for SceneClass in scene_classes_from_file(file):      │
│    107                     scene = SceneClass(renderer)                      │
│  ❱ 108                     rerun = scene.render()                            │
│    109                     if rerun or config["write_all"]:                  │
│    110                         renderer.num_plays = 0                        │
│    111                         continue                                      │
│ File "/Users/ryan/PycharmProjects/manim-community/manim/scene/scene.py", line│
│215, in render                                                                │
│     212         """                                                          │
│     213         self.setup()                                                 │
│     214         try:                                                         │
│  ❱  215             self.construct()                                         │
│     216         except EndSceneEarlyException:                               │
│     217             pass                                                     │
│     218         except RerunSceneException as e:                             │
│ File "../scenes/playground.py", line 44, in construct                        │
│     41         sqr = Square()                                                │
│     42         sqr_anim = FadeIn(sqr)                                        │
│     43         wait = Wait()                                                 │
│  ❱  44         animation_group = AnimationGroup(wait, sqr_anim, lag_ratio=1) │
│     45         self.play(animation_group)                                    │
│     46                                                                       │
│     47                                                                       │
│ File                                                                         │
│"/Users/ryan/PycharmProjects/manim-community/manim/animation/composition.py", │
│line 43, in __init__                                                          │
│     40                 [anim.mobject for anim in self.animations],           │
│     41             )                                                         │
│     42             if config["renderer"] == "opengl":                        │
│  ❱  43                 self.group = OpenGLGroup(*mobjects)                   │
│     44             else:                                                     │
│     45                 self.group = Group(*mobjects)                         │
│     46         super().__init__(self.group, rate_func=rate_func, lag_ratio=la│
│ File                                                                         │
│"/Users/ryan/PycharmProjects/manim-community/manim/mobject/opengl_mobject.py",│
│line 1982, in __init__                                                        │
│    1979 class OpenGLGroup(OpenGLMobject):                                    │
│    1980     def __init__(self, *mobjects, **kwargs):                         │
│    1981         if not all([isinstance(m, OpenGLMobject) for m in mobjects]):│
│  ❱ 1982             raise Exception("All submobjects must be of type Mobject"│
│    1983         OpenGLMobject.__init__(self, **kwargs)                       │
│    1984         self.add(*mobjects)                                          │
│    1985                                                                      │
╰──────────────────────────────────────────────────────────────────────────────╯
Exception: All submobjects must be of type Mobject

Process finished with exit code 1

Links to added or changed documentation pages

Further Information and Comments

Reviewer Checklist

[ ] The PR title is descriptive enough for the changelog, and the PR is labeled correctly
[ ] If applicable: newly added non-private functions and classes have a docstring including a short summary and a PARAMETERS section
[ ] If applicable: newly added functions and classes are tested

Is there a better way of doing this? Why does AnimationGroup need to add a Mobject? Is #1539 a better approach?

The change I made is in Animation, but because AnimationGroup doesn't pass an object in it breaks for opengl, as it didn't have the logic to create an OpenGLMobject is None is passed. Seems to be a similar logic to the PR you mentioned, and it is just to replicate the same behaviour of cairo for this fix.


v0.8.1_36 : Download symbol is not center aligned

SEVERITY: Minor
MODULE:

Bubble Chart
Mountain Chart

Platform: MAC / Safari 8.0
RELEASE: v0.8.1
STEPS TO REPRODUCE:

Navigate URL: http://static.gapminderdev.org/vizabi/release/v0.8.1/preview/bubblechart.html
Bubble chart page will be loaded
Click the “Record” button available on the right panel
A red ball is shown on the right top of the chart
Take mouse to that red ball
Note that download symbol is not center aligned

ACTUAL RESULTS:
Download symbol is not center aligned
EXPECTED RESULTS:
Download symbol should be center aligned
SCREENSHOT:

We shouldn't worry about this for now


Fix access to VMMemoryDefinition::current_length on big-endian

The current_length member is defined as "usize" in Rust code,
but generated wasm code refers to it as if it were "u32".  Not
sure why this is case, and it happens to work on little-endian
machines (as long as the length is < 4GB), but it will always
fail on big-endian machines.
Add the minimal fixes to make it work on big-endian as well.
(Note: this patch does not attempt to fix the actual underlying
type mismatch ...)

This makes me much more worried than the patch fix here implies I think, I would have figured that the solution would be to either change generated wasm code to load this field with native endianness or it would be to always store the field in little-endian. In any case though it definitely seems like wasm and native should at least agree on the size of the field?
How does the current patch fix tests? Would it be possible to implement a deeper fix?

This makes me much more worried than the patch fix here implies I think, I would have figured that the solution would be to either change generated wasm code to load this field with native endianness or it would be to always store the field in little-endian. In any case though it definitely seems like wasm and native should at least agree on the size of the field?

The current code stores the field in native endianness as 8 bytes, and loads the field in native endianness as 4 bytes (taking the first 4 bytes of the 8 byte field).  That works if native endian is little.  If native endian is big, it works with this patch where the 4 bytes are now taken to be the last 4 bytes (instead of the first 4 bytes) of the 8 byte field.
I do not know why the sizes do not match, that is really the underlying problem, I'd say.  I didn't try to fix this since this was already flagged as a TODO (with the test that the sized match commented out), so I assumed a fix would be non-trivial.

Oh I see, yeah that makes sense how the fix works. I think though there's no fundamental reason why there's a disagreement here, so the best fix would be to align the sizes of the loads/stores between Rust & wasm

Oh I see, yeah that makes sense how the fix works. I think though there's no fundamental reason why there's a disagreement here, so the best fix would be to align the sizes of the loads/stores between Rust & wasm

So what should the size be?  It seems Rust wants to use usize since that fits better into the Rust type system (natural type for lengths/sizes), while the wasm code wants to use u32 for more efficient guard code generation?

I would naively say that the JIT code should guide us here since that's probably the most performance sensitive, but at the same time if this is a u32 then it also means that there's not actually support for 4GB memory if the value stored here needs to be the length of the memory + 1 (which I thought it was?)
This means that we may need to store a usize for full 4gb memory support, but that might have a greater effect on the performance of jit code, I don't know how much the u32 aspect is relied on for bounds checks.

So from what I can see, the cranelift JIT makes the hard-coded assumption that the gv used as bound (which is where current_length ends up) must be of the same type as the index_type of the (dynamic) heap in question.  And the index type of all heaps generated by current code (at least in make_heap in crates/cranelift/src/func_environ.rs, not sure if there are other places) is always hardcoded to types::I32.  It does seem a bad idea to change this, as that would force all the index computations to be performed as 64-bit operations ...
Of course, this means that the dynamic bound checks are currently simply wrong for a heap size of 4GB or more.  However, it seems that the main use case of the 4GB heap (SpiderMonkey) uses the static heap type anyway?
On the other hand, I noticed the same current_length field also seems to used by the lightbeam back-end, which apparently treats it always as a 64-bit value if I understand the magic dynasm! macro correctly:
https://github.com/bytecodealliance/wasmtime/blob/main/crates/lightbeam/src/backend.rs#L1902
All this makes me more hesitant to attempt to change this logic ...

Ah ok that makes sense. Could this be updated to be a u32 stored, and an issue filed about how 4gb heaps have the wrong bounds checks?

Ah ok that makes sense. Could this be updated to be a u32 stored, and an issue filed about how 4gb heaps have the wrong bounds checks?

But that would break lightbeam, right?   The current code I pointed to above seems to rely on the value having been stored as u64 (with the high bits zero) ...

Personally, I think that's ok. Lightbeam isn't tested at all and hasn't received maintenance in many months, I don't think this is the only part about it which is broken.

I gave it a quick try.  If current_length is u32, this will now cause an assertion to be raised whenever someone attempts to set the field to 4GB or larger.  However, this already triggered in the test suite (in instance::linear_memory_limits) ...
Unfortunately, I don't think I can just ignore the assertion, since current_length is also used for length checks in Rust code, so even if the dynamic heap method is used (so the problem with JITed code doesn't occur), having a u32 current_length field would then cause those Rust checks to be incorrect.

For wasm32 the linear memory can be at most 4GB as it uses 32bit pointers. Wasmtime doesn't yet support wasm64 and once it does will have to change codegen between wasm32 and wasm64 anyway as a static heap is impossible even on 64bit systems, so changing the current_length from 32bit to 64bit in that case shouldn't be much of a problem I think.

Ah yes the test that specifically tries to grow to 4GB should be updated. It should grow to 4gb minus one page and then assert that growing the extra page fails. Basically Wasmtime is buggy right now with 4gb heaps so I don't think we should pretend they work by simply allowing the buggy code to also run on big-endian platforms, ideally we'd fix the issue outright here. We can have a documented limitation that Wasmtime supports 4gb heaps minus a page, and an issue tracking on fixing that limitation.
For length checks in Rust code I'm not sure I understand? I understand that u32 and usize are different types but I would imagine that the conversion needs to happen and we'd handle it wherever current_length was read/written.

My understanding is that a 4GB dynamic heap is currently broken due to incorrect checks in JITed code.  However, a 4GB static heap works correctly (and is apparently used by SpiderMonkey if I'm reading the docs correctly).
In that latter case, current_length is currently set to 4GB, and that value is used in Rust code for various length checks.  If we change current_length to a u32, it can no longer hold that value.   If we instead set set u32 current_length to some other value, then the Rust length checks will be incorrect.  If we simply disallow the 4GB case, then 4GB static heaps will also stop working, which I guess may break SpiderMonkey then ...

Can you clarify what you mean by spidermonkey? Do you mean the Cranelift integration in SpiderMonkey? Or something else?
(I'm not aware what this is in reference to so hard to comment on breaking it...)

I'm refering to this text: https://github.com/bytecodealliance/wasmtime/blob/main/cranelift/docs/ir.md#heap-examples
The SpiderMonkey VM prefers to use fixed heaps with a 4 GB bound and 2 GB of offset-guard pages when running WebAssembly code on 64-bit CPUs.

Ah ok, changing this in Wasmtime would have no effect on that. This isn't really a cranelift-level fix but rather a Wasmtime-level fix.

Ah ok, changing this in Wasmtime would have no effect on that. This isn't really a cranelift-level fix but rather a Wasmtime-level fix.

I see, makes sense.
I've now tried to implement this:

It should grow to 4gb minus one page and then assert that growing the extra page fails.

by setting WASM_MAX_PAGES to 65535 instead of 65536, but then spec tests start to fail as they use (memory 65536) -- is this required by the WebAssembly spec?

Oh right yeah we don't want to change the type-level maximum, only the runtime-level maximum. Modules which declare a max size of 65536 should still validate, just that when they request that much memory we say "sorry, no go". This'll I think want to change crates/runtime/src/memory.rs to reject grow and new calls with 65536 pages.

Oh right yeah we don't want to change the type-level maximum, only the runtime-level maximum. Modules which declare a max size of 65536 should still validate, just that when they request that much memory we say "sorry, no go". This'll I think want to change crates/runtime/src/memory.rs to reject grow and new calls with 65536 pages.

That approach seems to work.   With the updated patch all tests pass on s390x as well.  Thanks!