text:
Classes lose custom fields after import / export operations

I use
OrientDB Server v2.1-rc3 (build UNKNOWN@r${buildNumber}; 2015-05-22 16:53:13+0000)
orientdb> create database remote:localhost/test root password plocal
Creating database [remote:localhost/test] using the storage type [plocal]...
Connecting to database [remote:localhost/test] with user 'admin'...OK
Database created successfully.
Current database is: remote:localhost/test
orientdb {db=test}> create class testCust
Class created successfully. Total classes in database now: 11
orientdb {db=test}> alter class testCust custom myCustomField = tro-lo-lo
Class updated successfully
orientdb {db=test}> select customFields from (select expand(classes) from metadata:schema) where name = 'testCust'
----+------+-------------------------
#  | @ CLASS|customFields
----+------+-------------------------
0   |null  |{myCustomField=tro-lo-lo}
----+------+-------------------------
1 item(s) found. Query executed in 0.017 sec(s).
orientdb {db=test}> export database D:/test
Exporting current database to: database D:/test in GZipped JSON format ...
Started export of database 'test' to D:/test.json.gz...
Exporting database info...OK
Exporting clusters...OK (12 clusters)
Exporting schema...OK (11 classes)
Exporting records...

Cluster 'internal' (id=0)...OK (records=3/3)
Cluster 'index' (id=1)...OK (records=5/5)
Cluster 'manindex' (id=2)...OK (records=1/1)
Cluster 'default' (id=3)...OK (records=0/0)
Cluster 'orole' (id=4)...OK (records=3/3)
Cluster 'ouser' (id=5)...OK (records=3/3)
Cluster 'ofunction' (id=6)...OK (records=0/0)
Cluster 'oschedule' (id=7)...OK (records=0/0)
Cluster 'orids' (id=8)...OK (records=0/0)
Cluster 'v' (id=9)...OK (records=0/0)
Cluster 'e' (id=10)...OK (records=0/0)
Cluster 'testcust' (id=11)...OK (records=0/0)

Done. Exported 15 of total 15 records
Exporting index info...

Index OUser.name...OK
Index dictionary...OK
Index ORole.name...OK
OK (3 indexes)
Exporting manual indexes content...
Exporting index dictionary ...OK (entries=0)
OK (1 manual indexes)

Database export completed in 135ms
orientdb {db=test}> create database remote:localhost/test2 root password plocal
Creating database [remote:localhost/test2] using the storage type [plocal]...
Disconnecting from the database [test]...OK
Connecting to database [remote:localhost/test2] with user 'admin'...OK
Database created successfully.
Current database is: remote:localhost/test2
orientdb {db=test2}> import database D:/test.json.gz
Importing database database D:/test.json.gz...
Started import of database 'remote:localhost/test2' from D:/test.json.gz...
Non merge mode (-merge=false): removing all default non security classes

Class E was removed.
Class V was removed.
Class ORestricted was removed.
Class OTriggered was removed.
Class OSchedule was removed.
Class ORIDs was removed.
Class OFunction was removed.
Removed 7 classes.
Importing database info...OK
Importing clusters...
Creating cluster 'internal'...OK, assigned id=0
Creating cluster 'default'...OK, assigned id=3
Creating cluster 'orole'...OK, assigned id=4
Creating cluster 'ouser'...OK, assigned id=5
Creating cluster 'ofunction'...OK, assigned id=6
Creating cluster 'oschedule'...OK, assigned id=7
Creating cluster 'orids'...OK, assigned id=8
Creating cluster 'v'...OK, assigned id=9
Creating cluster 'e'...OK, assigned id=10
Creating cluster 'testcust'...OK, assigned id=11
Rebuilding indexes of truncated clusters ...
Done 2 indexes were rebuilt.
Done. Imported 10 clusters
Importing database schema...OK (11 classes)

Importing records...
Started migration of links (-migrateLinks=true). Links are going to be updated according to new RIDs:

Cluster orids... Completed migration of 0 records in current cluster
Cluster e... Completed migration of 0 records in current cluster
Cluster testcust... Completed migration of 0 records in current cluster
Cluster ouser... Completed migration of 3 records in current cluster
Cluster default... Completed migration of 0 records in current cluster
Cluster oschedule... Completed migration of 0 records in current cluster
Cluster orole... Completed migration of 3 records in current cluster
Cluster v... Completed migration of 0 records in current cluster
Cluster ofunction... Completed migration of 0 records in current cluster
Total links updated: 6

Done. Imported 7 records in 0,04 secs
Importing indexes ...

Index 'OUser.name'...OK
Index 'dictionary'...OK
Index 'ORole.name'...OK
Done. Created 3 indexes.
Importing manual index entries...
Index 'dictionary'...OK (0 entries)
Done. Imported 1 indexes.
Rebuild of stale indexes...
Stale indexes were rebuilt...
Deleting RID Mapping table...OK

Database import completed in 1521 ms
orientdb {db=test2}> select customFields from (select expand(classes) from metadata:schema) where name = 'testCust'
----+------
#   |@ CLASS
----+------
0   |null
----+------
1 item(s) found. Query executed in 0.005 sec(s).

fixed, will be release with 2.1 GA, closing

Will this be fixed in 2.0.x branch?
This will help not only with our current production database operations, but for upcoming migration to 2.1 version, as well.

ported also to 2.0.x branch will be out with 2.0.12

Thank you, indeed!

authors: Ivanov-Yuriy a-unite tglman


text:
Server can not be shutdown under the high load

OrientDB Version: 2.2 and I suppose 3.0
Expected behavior
I discovered this issue during the investigation of  https://github.com/orientechnologies/orientdb/issues/7388 .
If you start the test https://slack-files.com/T04EMG7AY-F57929QRW-2ee6e8b0ef and then wait till all databases and their metadata are created and insertion of data is started and then run shutdown script you  will see as a result of execution of shutdown script in the server log:
2017-06-27 21:27:47:628 INFO  Received shutdown command from the remote client /127.0.0.1:61934 [ONetworkProtocolBinary]
2017-06-27 21:27:47:629 INFO  Remote client /127.0.0.1:61934 authenticated. Starting shutdown of server... [ONetworkProtocolBinary]
2017-06-27 21:27:47:674 INFO  OrientDB Server is shutting down... [OServer]
2017-06-27 21:27:47:680 INFO  Shutting down listeners: [OServer]
2017-06-27 21:27:47:714 INFO  - ONetworkProtocolBinary /0.0.0.0:2424: [OServer]
2017-06-27 21:27:47:735 INFO  - ONetworkProtocolHttpDb /0.0.0.0:2480: [OServer]
2017-06-27 21:27:47:743 INFO  Shutting down protocols [OServer]

but the execution of test will continue it can be seen from the timing of the log on test's side:
pool-202-thread-49][2017-06-27 21:29:02] ************ [tenantdb1_11] Total number of errors: [0] Delete error counter:[0]
[pool-202-thread-49][2017-06-27 21:29:02] **********************************************************************!@#!@#! [tenantdb1_11] Total number of records: [2000]
[pool-202-thread-14][2017-06-27 21:29:02]  [tenantdb1_3] Delete vertex : [7] [Test1Node]
[pool-202-thread-14][2017-06-27 21:29:02] ################# [tenantdb1_3] Records removed after delete vertex  [Test1Node] Error on delete [0]
[pool-202-thread-41][2017-06-27 21:29:03]  [tenantdb1_15] Delete vertex : [8] [Test1Node]
[pool-202-thread-41][2017-06-27 21:29:03] ################# [tenantdb1_15] Records removed after delete vertex  [Test1Node] Error on delete [0]
[pool-202-thread-16][2017-06-27 21:29:03]  [tenantdb1_38] Delete vertex : [7] [Test1Node]

Actual behavior
After successful issue of shutdown command server should reject new commands and gracefully close all databases.

Hi,
This is fixed now the server goes down, closing this.

source: gharchive/issue

authors: laa tglman

repo: orientechnologies/orientdb

license_type: permissive

license_source: github-api


text:
Dev

Update readme

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

source: gharchive/pull-request

repo: origranot/ts-logger

license: MIT


text:
Дарует дополнительное снижение получаемого урона на 75% при обороне в бою

Стена и Штиль
Плюсы

Дарует дополнительное снижение получаемого урона на 75% при обороне в бою

Минусы

Снижает урон молнии на 30%

Дубль

authors: Lantiner Nimfadorr

repo: orna-memory-hunting/storage

license: Unlicense


text:
Add key ID to JWT header

Related Issue or Design Document
Relates to issue #144. Being able to lookup the signing key by the key ID is very helpful when using a keystore. This change was originally accepted in PR #145 but was (accidentally?) dropped during some later code reshuffling.

Checklist

[x] I have read the contributing guidelines
and signed the CLA.
[x] I have referenced an issue containing the design document if my change
introduces a new feature.
[x] I have read the security policy.
[x] I confirm that this pull request does not address a security
vulnerability. If this pull request addresses a security vulnerability, I
confirm that I got green light (please contact
security@ory.sh) from the maintainers to push
the changes.
[ ] I have added tests that prove my fix is effective or that my feature
works.
[ ] I have added necessary documentation within the code base (if
appropriate).

Further comments

That's a good idea. @aeneasr Is there an existing test you might point me to as an example?

https://github.com/ory/cli/blob/d00661e35fb3d04beae249991b3d5094cfca4c10/cmd/cloudx/e2e/cypress/integration/integration.spec.js#L22-L28
Has the code which verifies the JWT, in here you could probably add an assertion for it :)
Here's the script to run the tests:
https://github.com/ory/cli/blob/d00661e35fb3d04beae249991b3d5094cfca4c10/.github/workflows/test-e2e.yml#L41-L49

Just tried to do the tests in branch, as this seems to be a stale PR right now, but the feature is still missing.
Failed to go any further: Seems like I need a project set up for tests only and npm run test just fails with You passed the --record flag but did not provide us your Record Key.. Digging myself through the github workflows did not help either.
Any advice?

authors: adrianrudnik aeneasr znorris

repo: ory/cli


text:
Change directory structure

디렉토리 구조를 페이지용 컴퍼넌트(pages 폴더)와 재사용 컴퍼넌트(components 폴더)를 나누기 위해 변경했습니다.
추가로 코드 가독성을 위해 alias를 추가했습니다.

감사합니다. 앞으로 이 구조로 진행하도록 하겠습니다


text:
store: set RHSM when initialising SourceConfig with a repo

Fixes #2055

Rebased

repo: osbuild/osbuild-composer


text:
Extend another service groups

containers-sugar version:
Python version:
Operating System:

Description
Popose:
Use base images created in advance.

example
Consider the following .sugar.yaml:

version: 1.0
compose-app: docker compose
env-file: .env
defaults:
  group: {{ env.KXGR_GROUP }}
  project-name: sugar-{{ env.KXGR_PROJECT_NAME }}
groups:
  dev:
    project-name: dev
    compose-path:
      - tests/containers/compose.dev.yaml
    env-file: .env
    services:
      default: django,prostgresql
      available:
        - name: django
        - name: postgresql
        - name: service1-3

  staging:
    project-name: staging
    compose-path:
      - tests/containers/compose-staging.yaml
    env-file: .env
    services:
      default: django,nginx,postgresql
      available:
        - name: django
        - name: nginx
        - name: postgresql

  prod:
    project-name: prod
    compose-path:
      - tests/containers/compose-prod.yaml
    env-file: .env
    services:
      default: django,nginx,postgresql
      available:
        - name: django
        - name: nginx
        - name: postgresql
        - name: memcache

it would be nice to have a mechanism for extend other groups.

version: 1.0
compose-app: docker compose
env-file: .env
defaults:
  group: {{ env.KXGR_GROUP }}
  project-name: sugar-{{ env.KXGR_PROJECT_NAME }}
groups:
  base:
    compose-path:
      - tests/containers/compose.dev.yaml
    env-file: .env
    services:
      default: django,prostgresql
      available:
        - name: django
        - name: postgresql

  dev:
    compose-path:
      - tests/containers/compose.dev.yaml
    extends: base

  staging:
    compose-path:
      - tests/containers/compose-staging.yaml
    extends: base
    services:
      default: nginx
      available:
        - name: nginx

  prod:
    compose-path:
      - tests/containers/compose-prod.yaml
    extends: base
    services:
      default: nginx,memcache
      available:
        - name: nginx
        - name: memcache

authors: esloch xmnlab

repo: osl-incubator/sugar


text:
Decisão de arquitetura, evitando FDW

Conforme discussão votada e outras fontes, o PostgreSQL vai perder performance com FDW: se estão na mesma máquina, o melhor é uma base só com tudo.

(...)  if you are setting up two databases on the same machine you probably want to make two schemas instead - in that case you don't need anything special to query across them.

O uso de optim.vw01full_jurisdiction_geom  em modo FDW mostrou o quanto a performance é comprometida.

Dump como evidência de teste:  a vase dl03t_main  é a nativa das tabelas e a base dl20t_osmcodes acessa os mesmos por FDW.  Valores de explain:

Base nativa:  "Execution Time: ~30 ms".
FDW:  "Execution Time: ~13626 ms",  450 vezes mais lenta!.

dl03t_main=# EXPLAIN ANALYZE select * from (
  select osm_id, isolabel_ext, name, round(st_area(geom,true)/1000000.0) as km2
  from optim.vw01full_jurisdiction_geom where isolabel_ext like 'CO-%'
order by 4 ) t where km2<6872000 and isolabel_ext ilike '%bogo%';
                                                                          QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------------------------------------------
 Sort  (cost=381.25..381.26 rows=1 width=44) (actual time=29.894..29.897 rows=1 loops=1)
   Sort Key: (round((st_area((g.geom)::geography, true) / '1000000'::double precision)))
   Sort Method: quicksort  Memory: 25kB
   ->  Nested Loop  (cost=0.28..381.24 rows=1 width=44) (actual time=29.601..29.883 rows=1 loops=1)
         ->  Seq Scan on jurisdiction j  (cost=0.00..322.89 rows=1 width=36) (actual time=2.483..2.757 rows=1 loops=1)
               Filter: ((isolabel_ext ~~ 'CO-%'::text) AND (isolabel_ext ~~* '%bogo%'::text))
               Rows Removed by Filter: 7212
         ->  Index Scan using jurisdiction_geom_pkey on jurisdiction_geom g  (cost=0.28..33.31 rows=1 width=18932) (actual time=14.410..14.411 rows=1 loops=1)
               Index Cond: (osm_id = j.osm_id)
               Filter: (round((st_area((geom)::geography, true) / '1000000'::double precision)) < '6872000'::double precision)
 Planning Time: 0.566 ms
 Execution Time: 29.938 ms
(12 rows)

dl03t_main=# \c dl20t_osmcodes
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
You are now connected to database "dl20t_osmcodes" as user "postgres".
dl20t_osmcodes=# EXPLAIN ANALYZE select * from (select osm_id, isolabel_ext, name, round(st_area(geom,true)/1000000.0) as km2  from vw01full_jurisdiction_geom where isolabel_ext like 'CO-%' order by 4) t where km2<6872000 and isolabel_ext ilike '%bogo%';
                                                                    QUERY PLAN
--------------------------------------------------------------------------------------------------------------------------------------------------
 Sort  (cost=32339.38..32339.38 rows=2 width=80) (actual time=13613.878..13613.880 rows=1 loops=1)
   Sort Key: (round((st_area((g.geom)::geography, true) / '1000000'::double precision)))
   Sort Method: quicksort  Memory: 25kB
   ->  Nested Loop  (cost=200.00..32339.37 rows=2 width=80) (actual time=11536.493..13613.838 rows=1 loops=1)
         Join Filter: (j.osm_id = g.osm_id)
         Rows Removed by Join Filter: 7128
         ->  Foreign Scan on fdw_jurisdiction j  (cost=100.00..122.82 rows=1 width=72) (actual time=7.468..7.469 rows=1 loops=1)
         ->  Foreign Scan on fdw_jurisdiction_geom g  (cost=100.00..32161.20 rows=427 width=40) (actual time=62.997..13590.969 rows=7129 loops=1)
               Filter: (round((st_area((geom)::geography, true) / '1000000'::double precision)) < '6872000'::double precision)
               Rows Removed by Filter: 6
 Planning Time: 2.007 ms
 Execution Time: 13626.351 ms
(12 rows)

Qual seria o caminho?

Criar novos schemas na dl03t_main para o osmcodes;
Copiar as tabelas de dl03t_main para dl20t_osmcodes.

Atualmente, rodando na dl03t_main.

Qual seria o caminho?

O caminho vai depender da maturidade do projeto... Neste momento "tudo numa mesma base" é a solução, no futuro, com projetos mais independentes um dos outros, com mais recursos, etc. vai ser melhor cada um numa base, até mesmo com servidores diferentes.

repo: osm-codes/WS


text:
Problem with osmium

hello everyone
can you help me with osmuim i can't install it on my server :
i have the next msg :
$ npm install osmium
/

osmium@0.3.0 install /home/julien/node_modules/osmium
node-pre-gyp install --fallback-to-build

[osmium] Command failed:
module.js:356
Module._extensions[extension](this, filename);
^
Error: /home/julien/node_modules/osmium/lib/binding/osmium.node: invalid ELF header
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at [eval]:1:1
at Object. ([eval]-wrapper:6:22)
at Module._compile (module.js:456:26)
at evalScript (node.js:536:25)
at startup (node.js:80:7)
at node.js:906:3
node-pre-gyp ERR! Testing local pre-built binary failed, attempting to re-download
[osmium] Success: "/home/julien/node_modules/osmium/lib/binding/osmium.node" is reinstalled via remote
osmium@0.3.0 ../node_modules/osmium
and when i try to execute my programme i have :
$ node loadParking.js
module.js:356
Module._extensions[extension](this, filename);
^
Error: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by /home/julien/node_modules/osmium/lib/binding/osmium.node)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object. (/home/julien/node_modules/osmium/lib/osmium.js:1:76)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)

the first error is harmless but will be fixed in the next release. the second error is because you are running on a system with a libstdc++ too old to support C++11. To solve this you either need to run a more recent linux version or you need to upgrade your libstdc++. To upgrade install libstdc++ from ppa:ubuntu-toolchain-r/test

i have le latest version :/ ??!
~$ strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep LIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_DEBUG_MESSAGE_LENGTH

should be fixed by the v0.4.0 release (#38)

authors: idir-ait springmeyer

repo: osmcode/node-osmium


text:
pbf format

Hi,
osmdroid support pbf format? or other format from this site?
http://download.geofabrik.de/europe/hungary.html
Thanks

We currently do not support pbf, however osmdroid has the interfaces for writing your own modular tile provider if you choose. pbf is a protobuf binary format.

repo: osmdroid/osmdroid


text:
Is there a way to disable caching?

I want to use only mobile data, without downloading and saving tiles on phone storage. I don't want to set the cache size to zero or clear it either, but disable it. How can I achieve that?

You should be able to set a custom tile provider chain that only includes
the downloader
On Fri, Jul 21, 2017 at 7:22 AM, goransleko notifications@github.com
wrote:

I want to use only mobile data, without downloading and saving tiles on
phone storage. I don't want to set the cache size to zero or clear it
either, but disable it. How can I achieve that?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/osmdroid/osmdroid/issues/638, or mute the thread
https://github.com/notifications/unsubscribe-auth/AB4kGQ6eJSIXeFBuGlHw-C02xVknPxn5ks5sQIn0gaJpZM4OfSI8
.

I see, maybe I'm gonna try that then. Do you think caching can slow down speed of app?

Now I'm trying to implement my custom MapTileDownloader, and if I remove the following code to disable saving into cache, the map won't show anymore. Any help appreciated.
            if (mFilesystemCache != null) {
                mFilesystemCache.saveFile(tileSource, tile, byteStream);
                byteStream.reset();
            }

Caching slow down the app? no that would defeat the purpose. it's there to speed up the map

any updates?

i don't think this is currently possible with the setup we have for downloading caching then loading and displaying the tiles. sorry

Hi. How can i disable cach-ing for only one Overlay? In my cas it is traffic olverlay which should be always fresh.

@fariz-siracli cf. #1044

authors: fariz-siracli goransleko monsieurtanuki spyhunter99


text:
Edit linter: only enable errcheck

This PR edits linter so that it only has err check enabled on PRs and pushes to main

Codecov Report

Merging #490 (a4a2ad8) into main (eb53af6) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head a4a2ad8 differs from pull request most recent head 0521c81. Consider uploading reports for the commit 0521c81 to get more accurate results

@@           Coverage Diff           @@
##             main     #490   +/-   ##
=======================================
  Coverage   20.20%   20.20%
=======================================
  Files         163      163
  Lines       23358    23358
=======================================
  Hits         4720     4720
  Misses      17878    17878
  Partials      760      760

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 eb53af6...0521c81. Read the comment docs.

authors: codecov-commenter mattverse

repo: osmosis-labs/osmosis


text:
chore: make function comment match function names

make function comment match function names
What is the purpose of the change
make function comment match function names

Add a description of the overall background and high level changes that this PR introduces

(E.g.: This pull request improves documentation of area A by adding ....
Testing and Verifying
(Please pick one of the following options)
This change is a trivial rework / code cleanup without any test coverage.
(or)
This change is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
(example:)

Added unit test that validates ...
Added integration tests for end-to-end deployment with ...
Extended integration test for ...
Manually verified the change by ...

Documentation and Release Note

[ ] Does this pull request introduce a new feature or user-facing behavior changes?
[ ] Changelog entry added to Unreleased section of CHANGELOG.md?

Where is the change documented?

[ ] Specification (x/{module}/README.md)
[ ] Osmosis documentation site
[ ] Code comments?
[ ] N/A

Important note to contributors: We deeply value your contributions. However, due to a large influx of airdrop hunters, we are currently unable to accept small lint changes from first-time contributors. We encourage you to look for issues that offer more substantial contributions to the project or issues from the good first issue label. This helps us maintain the quality and integrity of the codebase, and provides a more meaningful experience for you as a contributor.


text:
Use for Angular user control

I'm looking for a way to easily secure a large angular project by having permissions on different angular components etc. Using the security/authentication model to control access to the various features and abilities. From what I can see I can't use the model in that way yet. Is that true or is there a way to use it on front end interface control?
Thanks

Hey @mcwebtree!
It's important to do authorization on the backend as well as the frontend. Otherwise a malicious user might manually make API requests and bypass whatever elements are hidden in the frontend.
Due to this, we normally recommend people use Oso in the backend, and then use it to expose those permissions to any frontend applications (web, desktop, or otherwise). We have a guide on how to do that with Python on the backend for example: https://docs.osohq.com/python/guides/ui.html and more coming soon when we have support for get_allowed_actions in other languages (see: #746 ).
So the idea would be use Oso to return data along with the user's permissions and then you could add an angular component that uses those permissions generically to show/hide elements.
Does that make sense?

I'll have to read up more onto the implementation and see if I can apply that to this project. The fact you have a suggested route means its worth looking into. I would always look to secure the backend systems, but wasn't sure how that would be exposed to the front end to make component based decisions without a client module.  Time for more reading!

repo: osohq/oso


text:
Can't fix using hackrf

I used hackrf one to test.The phone can't fix all the time. Gps Test APP shows that some satellite can be seen ,SNR is around 55 .But the elevation angle and azimuth angle of all the satellites are  always 0.
What's problem could I meet?

Did you try with different transmission powers and distances from the receiving unit?

Did you try with different transmission powers and distances from the receiving unit?

Thanks for your response sincerely, sir! Yes. I tried hackrf_transfer -x range from 0 to 47.I changed the antenna few days ago. Now it works on some old android phones but  doesn't get better on some new android phones .

Hello, I posted #240 that might help you.

Hello, I posted #240 that might help you.

Thanks a lot for your post,Sir.I will test it.

did it work for you ?

did it work for you ?

No,I still don't figure out the problem.

authors: Antanide RannyTheCoder xxxxxaaaaaaaannnn yisonyang

repo: osqzss/gps-sdr-sim

license: mit

license_source: bigquery


text:
airbreak.dev website repo

Please consider creating a repo of your website so that a copy could be saved for off-line use, and insurance from takedown notices.

you're looking at it! site is generated from the contents of docs/

repo: osresearch/airbreak


text:
Gamepad Teleop has unexpected mapping

The Gamepad controls do not map to thrusters in the way described in our Driving Tutorial. To reproduce, launch the VRX environment
roslaunch vrx_gazebo vrx.launch

then in another terminal run
roslaunch vrx_gazebo usv_joydrive.launch

The left up/down axis is mapped to the left thruster as expected, but the right up/down axis is not mapped to the right thruster. Instead the right left/right axis seems to control this thruster. Nothing seems to be mapped to the lateral thruster.

@caguero correctly notes that this behavior occurs when the switch at the back of the gamepad is set to X instead of D. Switching to D produces the expected mapping. I've updated the tutorial to make a note of this requirement.

repo: osrf/vrx


text:
Can the ORT Gitlab CI pipeline checkout private repositories ?

I have setup the pipeline and required tokens, but when trying to checkout a private repository, the ORT git downloader fails with :
Downloading from Git VCS at https://gitlab.cern.ch/acc-co/myprivaterepo.git...
org.ossreviewtoolkit.downloader.DownloadException: Download failed for 'Downloader::myprivaterepo:'.
	at org.ossreviewtoolkit.downloader.Downloader.download(Downloader.kt:77)
	at org.ossreviewtoolkit.plugins.commands.downloader.DownloaderCommand.downloadFromProjectUrl(DownloaderCommand.kt:419)
	at org.ossreviewtoolkit.plugins.commands.downloader.DownloaderCommand.run(DownloaderCommand.kt:208)
	at com.github.ajalt.clikt.parsers.Parser.parse(Parser.kt:306)
	at com.github.ajalt.clikt.parsers.Parser.parse(Parser.kt:319)
	at com.github.ajalt.clikt.parsers.Parser.parse(Parser.kt:40)
(...)
	at com.github.ajalt.clikt.core.CliktCommand.main(CliktCommand.kt:513)
	at org.ossreviewtoolkit.cli.OrtMainKt.main(OrtMain.kt:66)
	Suppressed: org.ossreviewtoolkit.downloader.DownloadException: Git failed to get revisions from URL 'https://gitlab.cern.ch/myprivaterepo.git'.
		at org.ossreviewtoolkit.downloader.VersionControlSystem.download(VersionControlSystem.kt:249)
		at org.ossreviewtoolkit.downloader.Downloader.downloadFromVcs(Downloader.kt:271)
		at org.ossreviewtoolkit.downloader.Downloader.downloadFromVcs$default(Downloader.kt:184)
		at org.ossreviewtoolkit.downloader.Downloader.handleVcsDownload(Downloader.kt:[109](https://gitlab.cern.ch/acc-co/devops/dependency-management/ort-gitlab-ci/-/jobs/31863565#L109))
		at org.ossreviewtoolkit.downloader.Downloader.download(Downloader.kt:81)
		... 10 more
	Caused by: org.ossreviewtoolkit.downloader.DownloadException: Unable to determine a revision to checkout.
		at org.ossreviewtoolkit.downloader.VersionControlSystem.getRevisionCandidates-0E7RQCE(VersionControlSystem.kt:302)
		at org.ossreviewtoolkit.downloader.VersionControlSystem.download(VersionControlSystem.kt:248)
		... 14 more
		Suppressed: java.io.IOException: Cannot guess a revision name from a blank version.
			at org.ossreviewtoolkit.downloader.WorkingTree.guessRevisionName(WorkingTree.kt:89)
			at org.ossreviewtoolkit.downloader.VersionControlSystem.getRevisionCandidates_0E7RQCE$addGuessedRevision(VersionControlSystem.kt:306)
			at org.ossreviewtoolkit.downloader.VersionControlSystem.getRevisionCandidates-0E7RQCE(VersionControlSystem.kt:353)
			... 15 more
		Suppressed: java.io.IOException: Unable to list the remote branches.
			at org.ossreviewtoolkit.downloader.vcs.GitWorkingTree$listRemoteBranches$1.invoke(GitWorkingTree.kt:149)
			at org.ossreviewtoolkit.downloader.vcs.GitWorkingTree$listRemoteBranches$1.invoke(GitWorkingTree.kt:143)
			at org.ossreviewtoolkit.downloader.vcs.GitWorkingTree.useRepo(GitWorkingTree.kt:60)
			at org.ossreviewtoolkit.downloader.vcs.GitWorkingTree.listRemoteBranches(GitWorkingTree.kt:143)
			at org.ossreviewtoolkit.downloader.VersionControlSystem.isFixedRevision-gIAlu-s(VersionControlSystem.kt:404)
			at org.ossreviewtoolkit.downloader.VersionControlSystem.getRevisionCandidates_0E7RQCE$addMetadataRevision(VersionControlSystem.kt:328)
			at org.ossreviewtoolkit.downloader.VersionControlSystem.getRevisionCandidates-0E7RQCE(VersionControlSystem.kt:363)
			... 15 more
		Caused by: org.eclipse.jgit.api.errors.TransportException: https://gitlab.cern.ch/myprivaterepo.git: not authorized
			at org.eclipse.jgit.api.LsRemoteCommand.execute(LsRemoteCommand.java:192)
			at org.eclipse.jgit.api.LsRemoteCommand.call(LsRemoteCommand.java:131)
			at org.ossreviewtoolkit.downloader.vcs.GitWorkingTree$listRemoteBranches$1.invoke(GitWorkingTree.kt:145)
			... 21 more
		Caused by: org.eclipse.jgit.errors.TransportException: https://gitlab.cern.ch/myprivaterepo.git: not authorized
			at org.eclipse.jgit.transport.TransportHttp.connect(TransportHttp.java:696)
			at org.eclipse.jgit.transport.TransportHttp.openFetch(TransportHttp.java:465)
			at org.eclipse.jgit.api.LsRemoteCommand.execute(LsRemoteCommand.java:170)
			... 23 more
	Suppressed: org.ossreviewtoolkit.downloader.DownloadException: No source artifact URL provided.
		at org.ossreviewtoolkit.downloader.Downloader.downloadSourceArtifact(Downloader.kt:311)
		at org.ossreviewtoolkit.downloader.Downloader.handleSourceArtifactDownload(Downloader.kt:150)
		at org.ossreviewtoolkit.downloader.Downloader.download(Downloader.kt:82)
		... 10 more
The download took 796.761771ms.
07:26:00.198 [main] ERROR org.ossreviewtoolkit.plugins.commands.downloader.DownloaderCommand - The following failure(s) occurred:
DownloadException: Download failed for 'Downloader::myprivaterepo:'.
Suppressed: DownloadException: Git failed to get revisions from URL 'https://gitlab.cern.ch/myprivaterepo.git'.
    Caused by: DownloadException: Unable to determine a revision to checkout.
        Suppressed: IOException: Cannot guess a revision name from a blank version.
        Suppressed: IOException: Unable to list the remote branches.
            Caused by: TransportException: https://gitlab.cern.ch/myprivaterepo.git: not authorized
                Caused by: TransportException: https://gitlab.cern.ch/myprivaterepo.git: not authorizedSuppressed: DownloadException: No source artifact URL provided.

Does the Git downloader need to be provided with credentials ?  How does one configure the authenticator ?
In particular, https://github.com/oss-review-toolkit/ort/issues/2580
I would expect that Gitlab provides all required environment including authentication, but does JGit pick up on that ?

One workaround is to use the CI token and place it in ~/.netrc  - Shall I suggest a push request ?

@bcopy Sorry for delay in commenting on this issue was dealing with family health issues and took a break from my FOSS work  Yes, ORT can scan private repositories - we made this now hopefully clearer in the Run ORT on private repositories within the README.md.

authors: bcopy tsteenbe

repo: oss-review-toolkit/ort-gitlab-ci


text:
Support the Bazel build system

See https://bazel.build/ as used by newer versions of Gerrit .

Quote from the repo-discuss group:

Bazel doesn't offer any built in feature to resolve transitive Maven dependency.

Already since a while now, Bazel has a repository rule to resolve and fetch Maven artifacts transitively.
Also, Bazel reached the 1.0 milestone recently.

There are plan to improve Bazel's legacy support for license-checking third party dependencies, which is maybe something we could make use of.

Bazel team is improving license checking see (this document)[https://docs.google.com/document/d/1uwBuhAoBNrw8tmFs-NxlssI6VRolidGYdYqagLqHWt8/edit#] and seem they also have some tools https://github.com/bazelbuild/rules_license.
There my be some interest from the HERE side to develop support in ORT for Bazel so listing the default questions

How can a tool detect that a project is using Bazel? Are the specific project definition or lock files?
How to can one obtain dependency tree including package names, versions, declared license and code repositories
How can one obtain the source for used package/dependency?
Is it possible to separate package into different scopes e.g. used only for building/testing the code?
Which public Bazel project or projects should we use to develop and test Bazel support in ORT?

How can a tool detect that a project is using Bazel? Are the specific project definition or lock files?

Each project using bazel contains a file called "WORKSPACE" at the toplevel. I think that's the easiest way to check.

How to can one obtain dependency tree including package names, versions, declared license, code repository and binary artifact?

Through bazel cquery one can get the dependency tree and package names.
https://docs.bazel.build/versions/master/cquery.html
If https://github.com/bazelbuild/rules_license produces queriable rules, it might be possible to filter them out via cquery, but I have not tried.

How can one obtain the source for used package/dependency?

https://docs.bazel.build/versions/master/external.html
These are listed in the WORKSPACE file; they should also be queriable via cquery. All of them are hashed for reproducible builds.

Is it possible to separate package into different scopes e.g. used only for building/testing the code?

Yes.

Which public Bazel project or projects should we use to develop and test Bazel support in ORT?

My advice: Gerrit or or Bazel itself. There are others, but these should be relatively stable and well tested to begin with. (Most software at Google nowadays uses Bazel to build, e.g. Android stuff too).

As since yesterday, on BazelCon, they had a session on upcoming bzlmod, which is the Bazel package Manager, intended to be integrates on Bazel 5.0.
Here's the design document:
https://docs.google.com/document/d/1moQfNcEIttsk6vYanNKIy3ZuK53hQUFq1b1r0rmsYVg/edit
Few key points:

Originally was a independent tool, will be integrated in main bazel tool on version 5.0 ( LTS )
Has two operation modes, an own registry for bazel packages itself, a extended plugin for act as a bridge to external package managers ( a.k.a. Maven )
Still doesn't have a clear solution for C/C++ Packaging

Thanks for the update. A super-important topic for ORT would be if that new system would allow to only query the transitive dependency tree incl. metadata, without actually building the project or even downloading the build artifacts (like Maven can do). Do you have any information on whether that's possible?

https://github.com/vmware/rules_oss_audit uses Bazel inspect to analyze the dependency graph of a build and collect license information about each package it finds.

Yep, all the process is done without building.
Still, Bazel 5.0 was just releasead and tool is still on the experimental flag, so we keep noticing, but i still thinking is not in the final format.

@tsteenbe Yes, but in the case of vmware, they got the the dependencies explicitly already coming from RPM, so inspect works in some cases, but then, all the metadata comes from the RPM specfile itself.

Note to myself: There's a Codelab for Bazel.

This session from BazelCon 2021 might also be interesting: Solving the complexities of identifying and tracking open-source software (OSS) to comply with license requirements by using Bazel to create an accurate bill of materials containing OSS and third-party packages during a build.

Also see the Bazel Central Registry.

By now we're at Bazel 6.0 LTS which features Bzlmod.

As per @alexeagle who I've met at PackageCon, something like bazel query --output=streamed_jsonproto '//external:*' should get us going.

We should be aiming for C++, Java / Android and Python support via Bazel to start with.

A reference that could become useful: https://github.com/vmware/rules_oss_audit

I've been looking into this for a few days now. To keep things simple I created two repositories with toy examples that use Bazel:

workspace flavor
bzlmod flavor

Since Bazel is at the tail end of switching to bzlmod by now, it makes sense to focus on the second one first.
Both repositories contain a Python program, a C++ program and an Android app. The latter consists of a library and an Activity that consumes the library. The Android app is from the Bazel Android tutorial. I just added OkHttp as an external dependency. The Python and C++ programs also have one external dependency each, which both have dependencies as well (at least in the bzlmod case).
Unlike Bazel itself, bzlmod is an actual package manager that uses a well-known location in a well-known format to retrieve metadata, source and binary artifacts of dependencies. For projects that actually use bzlmod to manage dependencies, implementing "Bazel support" looks to be relatively straightforward.
However, before one can do that, the first challenge is to determine what build targets a given code base contains. A promising approach seems to be looking for BUILD and BUILD.bazel files and running an appropriate bazel query command that will output what rule is used (e.g. android_binary) and the label of the build target (the string that goes after bazel build, e.g. //src/main:app). An example from the android directory in the above linked bzlmod repo:
$ bazel query 'kind(".*_binary|.*_library|._test", //...)' --output=location
/Users/haiko/code/act/bazel-android-py-cc-bzlmod/android/src/main/BUILD:1:15: android_binary rule //src/main:app
/Users/haiko/code/act/bazel-android-py-cc-bzlmod/android/src/main/java/com/example/bazel/BUILD:5:16: android_library rule //src/main/java/com/example/bazel:greeter_activity

The C++ program in the same repo uses bzlmod to pull in glog and its' dependencies. Running bazel mod graph --output json in the cc directory produces a delightfully simple JSON-formatted dependency graph. The fact that the Bazel Central Registry is used to fetch metadata about these dependencies can probably be teased out with the right bazel subcommand. If not, it is at least recorded somewhere in cc/MODULE.bazel.lock:
$ grep bcr.bazel.build MODULE.bazel.lock
      "https://bcr.bazel.build/"
            "https://bcr.bazel.build/modules/glog/0.5.0/patches/remove_only_the_first_leading_at.patch": "sha256-ieceuBwB5MiGzs1ES3FKKLTCuHwxxERo2clZn5h8S3g=",
    [...]

Looking at https://bcr.bazel.build or rather the Github repo it points to, we find a handy-dandy
sources.json which seems to contain everything necessary to retrieve the source code that goes into the build. Ka-ching!
That concludes the "good news" part. The bad news is that for the vast majority of projects that do not use C or C++, it seems highly unlikely that they will abandon pip/poetry, Maven, npm, etc. in favor bzlmod. So in practice there does not seem to be much difference between the workspace and the bzlmod world for these projects. Maybe the semi-good part about this is that existing functionality in ORT can be used to cover them, but how exactly that would work is still a bit blurry to me and most likely requires custom code for any type of programming language/ecosystem that needs to be supported. The first challenge here is to identify what exactly is being used to manage dependencies and what the relevant manifest/lock/etc. files are to process.
I had a reasonably fruitful conversation with ChatGPT about this subject. Of course, it could be wrong and there could be a better approach. But so far
I haven't been able to find that by reading Bazel documentation or code.

Yes, we've always needed an abstraction layer so that tooling like this (SBOM generation, license compliance checks) can "read-through" the Bazel graph to the third-party dependencies for every language. Most languages (C++ being the notable exception) are implemented on top of a native package manager rather than throw it away. I can give you some pointers on this, I just connected with folks at https://www.endorlabs.com/blog/introducing-a-better-way-to-sca-for-monorepos-and-bazel who might share some of what they did.

folks at https://www.endorlabs.com/blog/introducing-a-better-way-to-sca-for-monorepos-and-bazel who might share some of what they did.

That would be useful, thanks @alexeagle!

To double-check, probably a comparison to the results of https://github.com/snyk-labs/bazel2snyk makes sense, @haikoschol.

General Bazel support is available for some time now. Let's close this in favor of only keeping the more specific follow-up issues.

authors: alexeagle haikoschol heliocastro sschuberth tchernobog tsteenbe

repo: oss-review-toolkit/ort


text:
Pub: Support Git dependencies

Support Pub dependencies which are loaded from a Git repository.
This implements part of #5268 (only Git packages, but Pub supports additional sources).

Hi @maklostermann, thank you for your contribution! We recently switched to Conventional Commits, so please rewrite your commit message accordingly. And while at it, please also drop the merge commit from your PR. If you want to catch up with upstream changes, please rebase instead.

Thanks @sschuberth, hopefully I got it right with #6384.

PS: @maklostermann, there's no need to close a PR to rewrite the commit messages. Just do the fixups locally and force-push your branch while keeping the original PR open.

authors: maklostermann sschuberth


text:
subject-chart.js 다른 과목 세부 정보 추가

웹스크립트프로그래밍 뿐만 아닌 다른 과목의 세부 정보 또한 추가하는 것이 좋을 것 같습니다.

세부정보추가하지마세요 반려합니다.


text:
mmu094

https://sites.google.com/rizqshops.com/btvproducts/home

import { loadScript } from "@paypal/paypal-js";
loadScript({ "client-id": YOUR_CLIENT_ID })
.then((paypal) => {
// start to use the PayPal JS SDK script
})
.catch((err) => {
console.error("failed to load the PayPal JS SDK script", err);
});
import { PayPalScriptProvider } from "@paypal/react-paypal-js";
export default function App() {
return (
<PayPalScriptProvider options={{ "client-id": YOUR_CLIENT_ID }}/>
);
}

H

repo: ossf/wg-securing-critical-projects


text:
RFC: Cant enroll in the Calculus 1C: Coordinate Systems & Infinite Series course

The course Calculus 1C: Coordinate Systems & Infinite Series is not available anymore.

The curriculum links to Calculus 1C: Coordinate Systems & Infinite Series
Here is an image capture from that page demonstrating that the course is available on Open Learning Library.

repo: ossu/computer-science


text:
New rule to find bad capturing groups

Description
Add a new rule to find bad (= obviously or likely incorrect) capturing groups.
Bad capturing groups are:

Capturing groups that do not behave as their pattern would suggest. E.g. /\d+(\d*)/ will always capture the empty string despite containing the pattern \d*. In general, we should verify that the language of all possible captured strings is equal to the language of the pattern of a capturing group.
Capturing groups that likely behave incorrectly. E.g. /^(a*).+/u likely behaves incorrectly for the input string a. In general, we should verify that a capturing group cannot exchange characters with the pattern after it.
This check should be behind an option to turn it off. It will find likely bad capturing groups, so false positives are to be expected.

Reference: #451, https://github.com/ota-meshi/eslint-plugin-regexp/pull/452/files#r930616165
Examples
/* ✗ BAD */
var foo = /^(a*).+/u
var foo = /\d+(\d*)/u

The analysis for this rule will be quite involved. I don't have enough time this week to implement this, so I'll try to do it next week. Just to let you know.

I think it is difficult to check whether /^(a*).+/u is unintended by the user.
For example, if we extract tabs and space instead of a like this, we can use it as a regex to extract a line and its indentation.
/^([\t ]*).+/gmu

Do you think we can distinguish between them?

so false positives are to be expected.

Or do you think it's an acceptable false positives?
const text = `
a
 a
  a
   a
`
const result = [...text.matchAll(/^([\t ]*).+/gmu)].map(([line, indent]) => ({
    indent,
    line,
}))
console.log(JSON.stringify(result, null, 2))
// [
//   {
//     "indent": "",
//     "line": "a"
//   },
//   {
//     "indent": " ",
//     "line": " a"
//   },
//   {
//     "indent": "  ",
//     "line": "  a"
//   },
//   {
//     "indent": "   ",
//     "line": "   a"
//   }
// ]

so I'll try to do it next week.

No problem :+1:

Sorry, I noticed that the regular expression was wrong. That doesn't work. It should also be reported.
const text = `
\t
`
const result = [...text.matchAll(/^([\t ]*).+/gmu)].map(([line, indent]) => ({
    indent,
    line,
}))
console.log(JSON.stringify(result, null, 2))
// [
//   {
//     "indent": "",
//     "line": "\t"
//   }
// ]

So I've been trying to implement this rule (I called it no-misleading-capturing-group), and I ran into a problem:

Capturing groups that do not behave as their pattern would suggest. E.g. /\d+(\d*)/

I generalized the simple case of "a quantifier preceded by another quantifier" to "a quantifier preceded by a set of quantifiers." This allows us to find more complex problems such as /(?:a\w*|b\d*)(\d*)/u. In general, we can now answer whether a quantifier A{n,m} can be simplified to A{n} based on the quantifiers before it without changing the behavior of the pattern. Simplifying the quantifier also guarantees that all capturing groups still behave the same.
This is interesting because this would allow us to move this fix into optimal-quantifier-concatenation (OQC). OQC needs to handle capturing groups with care because its current fixes cannot guarantee that they don't change the behavior of the changed capturing group. However, this method of simplifying quantifiers can guarantee that.
The problems found by this new method are both in the domain of OQC and no-misleading-capturing-group. Should both rules report these problems?

Thank you for starting implementing the no-misleading-capturing-group rule!

The problems found by this new method are both in the domain of OQC and no-misleading-capturing-group. Should both rules report these problems?

In my opinion both rules should report by default.
OQC can ignore the report with the capturingGroups: "ignore" option.

authors: RunDevelopment ota-meshi

repo: ota-meshi/eslint-plugin-regexp


text:
Disable particular rules for template expressions

Description
Hi,
I'd like to disable some rules for template expressions only - typically rules about typescript. Example:
<button onClick={() => {clicked += 1}}>Increment</button> // HERE

<script lang="ts">
function fn() { // HERE
    return 3;
}
</script>

With my current configuration, I get the error Missing return type on function (@typescript-eslint/explicit-function-return-type) on the two lines marked by comments. This is problematic, because I can't use TS in template expressions and therefore I can't add a return type annotation to the first line of my snippet. However, I would still like to have the rule turned on for the second case, where it correctly reports that I forgot to add the return type annotation.
Currently, I found no way of doing this other than manually ignoring all the "false positives" or getting rid of any non-trivial template expressions - I would like to have a way to say to eslint that the rule @typescript-eslint/explicit-function-return-type should be turned off for all template expressions, however it should still check <script /> blocks.

Thank you for posting this issue.
But, I think we've already provided a way to ignore template warnings.
https://ota-meshi.github.io/eslint-plugin-svelte/user-guide/#settings-svelte

Hi,
thanks for the reply and the pointer - I read the docs but thought this would ignore warnings in all svelte code, not just teplate expressions - maybe I'll submit a PR to make it more obvious :)
However, this does not work for me :( See the repro, run npm run lint:ts:eslint - I would expect one error, but I get two. Is this an issue on my side?

It seems there was a bug. I will fix that.

authors: marekdedic ota-meshi

repo: ota-meshi/eslint-plugin-svelte


text:
Change dot color

H5P Interactive video will get new dot colors for the seekbar. Match that.

DONE


text:
Remove export api

refs #5

./bin/vault read ethereum/export/accounts/0x3a02ecd2d857c47f4c18603019f2455b17ddea7b
No value found at ethereum/export/accounts/0x3a02ecd2d857c47f4c18603019f2455b17ddea7b

curl -s -H "Authorization: Bearer $TOKEN" http://localhost:8200/v1/ethereum/export/accounts/0x3a02ecd2d857c47f4c18603019f2455b17ddea7b |jq
{
  "errors": [
    "1 error occurred:\n\t* unsupported path\n\n"
  ]
}

I missed merging develop branch to solve conflicts, reseted.

repo: otaku-coin/vault-plugin-secrets-ethsign


text:
ERC20 transfers list error on mainnet

ERC20 transfers for mainnet address: 0x4838B106FCe9647Bdf1E7877BF73cE8B0BAD5f97 is erroring on node side in our test server.
Assigning myself to investigate.

This is still an issue. Page 12 of 15 is returning
{
	"error": {
		"code": -32000,
		"message": "method handler crashed"
	}
}

I've seen the same thing happen on other addresses, too.

repo: otterscan/otterscan


text:
Kubernetes intro

Выполнено ДЗ № 1

[ ] Основное ДЗ
Разберитесь почему все pod в namespace kube-system восстановились
после удаления. Укажите причину в описании PR

~ % kubectl get pods -n kube-system
coredns-64897985d-5j8jn            1/1     Running   0          40m
etcd-minikube                      1/1     Running   3          40m
kube-apiserver-minikube            1/1     Running   3          40m
kube-controller-manager-minikube   1/1     Running   3          40m
kube-proxy-thcpm                   1/1     Running   0          40m
kube-scheduler-minikube            1/1     Running   3          40m

static Pods:
kube-apiserver-minikube, kube-controller-manager-minikube,
kube-controller-manager-minikube, kube-proxy-thcpm, kube-scheduler-minikube
restarted by kubelet
ReplicationController
coredns-64897985d-5j8jn
spec:
  replicas: 1

[ ] Задание со *

Выясните причину, по которой pod frontend находится в статусе Error

{"message":"Tracing enabled.","severity":"info","timestamp":"2022-03-29T21:31:48.429464968Z"}
{"message":"Profiling enabled.","severity":"info","timestamp":"2022-03-29T21:31:48.429514385Z"}
panic: environment variable "PRODUCT_CATALOG_SERVICE_ADDR" not set

Создайте новый манифест  . При его
применении ошибка должна исчезнуть. Подсказки можно найти:
В логах - kubectl logs frontend
В манифесте по
В результате, после применения исправленного манифеста pod
frontend должен находиться в статусе Running (опустим вопрос,
действительно ли микросервис работает)

В процессе сделано:

описан Dockerfile для запуска nginx пользователя с UID 1001,
и выполнено минимальное конфгурирование nginx (listen port 8000, host root /app)
образ залит в личный регистри dochombo/otus:web.v1
установлен kubectl
развёрнут кластер Minikube, проведена проверка устойчивости работы
кастара поднятого по умолчанию (docker rm -f $(docker ps -a -q))
изучены инструкции kubectl

kubectl apply -f <file>
kubectl get pod <name> -o yaml
kubectl describe pod <name>
kubectl delete pod <name>
kubectl get pods -w
kubectl port-forward --address 0.0.0.0 pod/<name> port:port
...
использования ad-hoc режима

найден ответ на вопрос о причинах восстановления pod в kube-system namespace
созданы манифесты web-pod.yaml, frontend-pod-healthy.yaml

Как запустить проект:

...

Как проверить работоспособность:

...

PR checklist:

[ kubernetes-intro ] Выставлен label с темой домашнего задания

re create


text:
Semicolons in Display Folder strings

In SSAS, we can have the same measure/column/hierarchy appear multiple places by separating display folders by semicolons. This is not currently supported in Tabular Editor:

What this looks like in Excel:

Fixed in 2.8.2.

repo: otykier/TabularEditor


text:
KPI Status Graphic drop-down values incompatible with Power BI

Some of the pre-populated drop-down values for Status Graphic in the KPI properties work with Excel, but not Power BI (Power BI displays integer values).
The issue appears to be the hyphen - for example using "Traffic Light - Single", Tabular Editor populates "Traffic Light – Single" (long hypen) but Power BI appears only to work with "Traffic Light - Single" (short hyphen).
Can these be changed to pre-populate with the short hyphens?

Fixed in 2.9.3

authors: jamhos otykier


text:
android P Beta Invalid Region.Op - only INTERSECT and DIFFERENCE are allowed

java.lang.IllegalArgumentException: Invalid Region.Op - only INTERSECT and DIFFERENCE are allowed
at android.graphics.Canvas.checkValidClipOp(Canvas.java:779)
at android.graphics.Canvas.clipRect(Canvas.java:826)
at com.oushangfeng.pinnedsectionitemdecoration.PinnedHeaderItemDecoration.onDrawOver(PinnedHeaderItemDecoration.java:243)
at android.support.v7.widget.RecyclerView.draw(RecyclerView.java:4177)
at android.view.View.updateDisplayListIfDirty(View.java:19082)
at android.view.View.draw(View.java:19935)
at android.view.ViewGroup.drawChild(ViewGroup.java:4333)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112)
at android.view.View.draw(View.java:20210)
at android.view.View.updateDisplayListIfDirty(View.java:19082)
at android.view.View.draw(View.java:19935)
at android.view.ViewGroup.drawChild(ViewGroup.java:4333)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112)
at android.view.View.draw(View.java:20210)
at android.support.v4.view.ViewPager.draw(ViewPager.java:2426)
at android.view.View.updateDisplayListIfDirty(View.java:19082)
at android.view.View.draw(View.java:19935)
at android.view.ViewGroup.drawChild(ViewGroup.java:4333)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112)
at android.view.View.draw(View.java:20210)
at android.view.View.updateDisplayListIfDirty(View.java:19082)
at android.view.View.draw(View.java:19935)
at android.view.ViewGroup.drawChild(ViewGroup.java:4333)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112)
at android.view.View.updateDisplayListIfDirty(View.java:19073)
at android.view.View.draw(View.java:19935)
at android.view.ViewGroup.drawChild(ViewGroup.java:4333)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112)
at android.view.View.updateDisplayListIfDirty(View.java:19073)
at android.view.View.draw(View.java:19935)
at android.view.ViewGroup.drawChild(ViewGroup.java:4333)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112)
at android.view.View.updateDisplayListIfDirty(View.java:19073)
at android.view.View.draw(View.java:19935)
at android.view.ViewGroup.drawChild(ViewGroup.java:4333)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112)
at android.view.View.updateDisplayListIfDirty(View.java:19073)
at android.view.View.draw(View.java:19935)
at android.view.ViewGroup.drawChild(ViewGroup.java:4333)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112)
at android.view.View.draw(View.java:20210)
at com.android.internal.policy.DecorView.draw(DecorView.java:780)
at android.view.View.updateDisplayListIfDirty(View.java:19082)
at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:686)
at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:692)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:801)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:3312)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:3116)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2485)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1460)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7184)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:949)
at android.view.Choreographer.doCallbacks(Choreographer.java:761)
at android.view.Choreographer.doFrame(Choreographer.java:696)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:935)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

我用模拟器测试下

模拟器Andorid 9,API28木有报错哎 你用的是真实的机子吗？

@oubowu
系统版本：android P
报错：Invalid Region.Op - only INTERSECT and DIFFERENCE are allowed
我这边也使用模拟器 出现一样的问题

暂时把c.clipRect(mClipBounds, Region.Op.UNION);换成 c.clipRect(mClipBounds, Region.Op.INTERSECT);没发现什么问题。

明白了 是编译版本到28 谷歌改了canvas的源码了 只允许clipRect只允许INTERSECT and DIFFERENCE这两种模式了 我改下重新上传适配下

改好了，可以升级看下

authors: lmyDevs oubowu pengjunhong

repo: oubowu/PinnedSectionItemDecoration


text:
🛑 Joylian is down

In 1012d9f, Joylian (https://www.joylian.com) was down:

HTTP code: 403
Response time: 80 ms

Resolved: Joylian is back up in 243d2f7 after 5 minutes.

repo: outcastveron/upptime


text:
Checking and save mode

Hi, overcast07
I borrowed a part of your code and combined it with lynx to make a script. The function of this script is to collect all the URLs in the website in a loop and query Wayback Machine's API. Only when Wayback Machine does not backup this link, the script will submit a request to Wayback Machine for backup. This makes my backup much faster, and maybe this particular mode can be added to your scripts ~
#!/usr/bin/bash
#spider the website using lynx to get sitemap and cache it using waybackmachine

auth=''
custom_dir=''
pattern=''
exclude_pattern=''

while getopts 'a:f:o:' flag; do
	case "${flag}" in
		a)	auth="$OPTARG" ;;
		f)	custom_dir="$OPTARG" ;;
		o)	pattern=$OPTARG ;;
		*)	echo "Usage: $0 [-a auth] [-f file] [-o pattern] [-x exclude_pattern] URL"
			exit 1 ;;
	esac
done
shift "$((OPTIND-1))"

if [[ -n "$custom_dir" ]]; then
	dir="$custom_dir"
	if [[ ! -d "$dir" ]]; then
		mkdir "$dir" || { echo "The folder $dir could not be created"; exit 1; }
		echo "Created data folder $dir"
	else
		echo "Using the existing data folder $dir"
	fi
	cd "$dir"
fi

# get links from input parameter
echo $1 > link.txt

:> cached_urls.txt
:> history.txt

if [[ -f daily_limit.txt ]]; then
    rm daily_limit.txt
elif [[ -f lock.txt ]]; then
    rm lock.txt
fi

export wait_time=1

# recursively crawl the website
while read line
do
    if [[ -f daily_limit.txt ]];
    then
        echo "daily limit reached"
        sleep 3600
    fi
    url_list=$(lynx -accept_all_cookies -dump -listonly -nonumbers $line | grep -E '^https?://.*' | grep -v -E '(#|error|\"|\.jpg|\.png|\.gif|comment|feed|\?share\=|[Ff]acebook|twitter|[Gg]oogle|public-api)|(^https://wordpress\.com)' | sort | uniq)
    echo "$line Crawled"
    for url in $url_list
    do
        if ! grep -q $url history.txt; then
            if ! [[ "$url" =~ $pattern ]]; then
                continue
            fi
            echo $url >> history.txt
            echo $url >> link.txt
            # use the wayback machine API to check if the urls has been cached
            line_encoded=$(python3 -c "import urllib.parse, sys; print(urllib.parse.quote(sys.argv[1]))" "$url")
            if ! curl -s "http://archive.org/wayback/available?url=$line_encoded" | grep -q "available"; then
                echo "$url not cached by Internet Archive yet, will be cached by us"
                while :; do
                    request=$(curl -s -m 60 -X POST --data-urlencode "url=$url" -H "Accept: application/json" -H "Authorization: LOW ${auth}" "https://web.archive.org/save/")
                    message=$(echo "$request" | grep -E -A 1 "<h2>" | tail -1 | sed -Ee 's|</?p>||g')
                    if [[ -z "$message" ]]; then
                        if [[ "$request" =~ "429 Too Many Requests" ]] || [[ "$request" == "" ]]; then
                            echo "$request"
                            if [[ ! -f lock$f.txt ]]; then
                                touch lock.txt
                                sleep 20
                                rm lock.txt
                            fi
                        elif [[ "$request" =~ "400 Bad Request" ]]; then
					        echo "$request"
                            echo "$(date -u '+%Y-%m-%d %H:%M:%S') [Job failed] $url"
                            echo "$(date -u '+%Y-%m-%d %H:%M:%S') $url" >> invalid.log
                            echo "$request" >> invalid.log
                        else
                            sleep 2
                            break
                        fi
                    else
                        echo "$message"
                        if ! [[ "$message" =~ "You have already reached the limit of active sessions" || "$message" =~ "Cannot start capture" || "$message" =~ "Crawling this host is paused" ]]; then
                            if [[ "$message" =~ "You cannot make more than "[1-9][0-9,]*" captures per day" ]]; then
                                touch daily_limit.txt
                                break
                            else
                                echo "$(date -u '+%Y-%m-%d %H:%M:%S') [Job failed] $url"
                                echo "$(date -u '+%Y-%m-%d %H:%M:%S') $url" >> invalid.log
                                echo "$message" >> invalid.log
                                break
                            fi
                        fi
                        if [[ ! -f lock.txt ]]; then
                            touch lock.txt
                            while [[ -f lock.txt ]]; do
                                # Retry the request until either the job is submitted or a different error is received
                                sleep 2
                                request=$(curl -s -m 60 -X POST --data-urlencode "url=$url" -H "Accept: application/json" -H "Authorization: LOW ${auth}" "https://web.archive.org/save/")
                                echo "$(date -u '+%Y-%m-%d %H:%M:%S') [Request failed] $url"
                                message=$(echo "$request" | grep -E -A 1 "<h2>" | tail -1 | sed -Ee 's|</?p>||g')
                                if [[ -z "$message" ]]; then
                                    if [[ "$request" =~ "429 Too Many Requests" ]] || [[ "$request" == "" ]]; then
                                        echo "$request"
                                        sleep 20
                                    else
                                        sleep 5
                                        rm lock.txt
                                        break
                                    fi
                                else
                                    echo "$message"
                                    if [[ "$message" =~ "You have already reached the limit of active sessions" || "$message" =~ "Cannot start capture" || "$message" =~ "Crawling this host is paused" ]]; then
                                        :
                                    elif [[ "$message" =~ "You cannot make more than "[1-9][0-9,]*" captures per day" ]]; then
                                        rm lock.txt
                                        touch daily_limit.txt
                                        break
                                    else
                                        rm lock.txt
                                        echo "$(date -u '+%Y-%m-%d %H:%M:%S') [Job failed] $url"
                                        echo "$(date -u '+%Y-%m-%d %H:%M:%S') $url" >> invalid.log
                                        echo "$message" >> invalid.log
                                        break
                                    fi
                                fi
                            done
                            break
                        fi
                    fi
                done
                echo "$url  $message" >> cached_urls.txt
            fi
            sleep 0.5
        fi
    done
    # sleep to avoid being banned
    if [ "$before" != "$line" ]; then
        sleep 3
    else
        sleep $wait_time
        wait_time=$(echo "$(($wait_time*2))")
        echo "wait for $wait_time"
    fi
    cnt=$(echo "$(($cnt+1))")
    before=$line
done < link.txt

sort history.txt | uniq > temp.txt
mv temp.txt history.txt

I may consider adding an option not to capture URLs that have already been captured before, but I probably wouldn't include any behavior that's dependent on Lynx since it's not available by default in the macOS command line. In the meantime you could filter the list for URLs before running spn.sh, which might be faster anyway since you could usually get results for a whole domain with the CDX API.


text:
Fix "Reduced Shaders" Cloak

Right now, reduced shaders cloak does not conceal the player as well as with reduced shaders off.  Surely there's a reduced shader variant that can hide the cloaked ship as well as full shaders?

Modding the opacity to ~0.25 instead of 1 in PlayerShip.DrawEffectMesh() seems to buff reduced shader cloak well.  We'll probably need to consider how to handle those running without reduced shaders (make this reduced version the MP standard?) balance-wise so they're in line.
this.m_spawn_mpb.SetFloat(Robot.matid_opacity, 1f);
https://clips.twitch.tv/VastBrightSoymilkPupper

The idea I'd like to see is to get reduced shaders as close to full shaders as possible so that players choose which is best for their system, not which is best for gameplay.
Reduced shaders at 0.25 seems to be more effective than full shaders, I cannot see the ship you're shooting at in that clip at all unless it's charging TB, being hit, or is backdropped by the skybox.  I can at least make out where the ship is with full shaders.  However, the discrepancy may be due to video compression.
Could you provide the transpile for this so I can play around with it?

I’ll send the code over when I’m back in town Sunday night.  I’ve got it configured at the moment as an adjustable float via the console so it’s easily testable.

@tobiasksu Let's go with 30%.  Please PR for 0.4!

30% fixed, no menu option right?

Correct.

authors: roncli tobiasksu

repo: overload-development-community/olmod


text:
php7.2.6版本下不支持三元运算符简写??不支持

我用的环境
PHP 版本：php7.2.6
overtrue/wechat 版本：4.0.30
框架名称：yii2
问题及现象
Parse error: syntax error, unexpected '?' in /vendor/overtrue/wechat/src/Kernel/Support/Helpers.php on line 83
Parse error: syntax error, unexpected '?' in /vendor/overtrue/wechat/src/Kernel/Helpers.php on line 29
Parse error: syntax error, unexpected '?' in /vendor/overtrue/wechat/src/Kernel/Helpers.php on line 31
Parse error: syntax error, unexpected '?' in /vendor/overtrue/wechat/src/Kernel/Helpers.php on line 33
#这是其中的一段错误
#php code line 83
/**
 * Return current url.
 *
 * @return string
 */
function current_url()
{
    $protocol = 'http://';

    if ((!empty($_SERVER['HTTPS']) && 'off' !== $_SERVER['HTTPS']) || ($_SERVER['HTTP_X_FORWARDED_PROTO'] ?? 'http') === 'https') {
        $protocol = 'https://';
    }

    return $protocol.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
}

怎么可能！你的 fpm 版本绝对小于7
达 notifications@github.com于2018年6月9日 周六下午9:38写道：

我用的环境
PHP 版本：php7.2.6
overtrue/wechat 版本：4.0.30
框架名称：yii2
问题及现象
Parse error: syntax error, unexpected '?' in
/vendor/overtrue/wechat/src/Kernel/Support/Helpers.php on line 83
Parse error: syntax error, unexpected '?' in
/vendor/overtrue/wechat/src/Kernel/Helpers.php on line 29
Parse error: syntax error, unexpected '?' in
/vendor/overtrue/wechat/src/Kernel/Helpers.php on line 31
Parse error: syntax error, unexpected '?' in
/vendor/overtrue/wechat/src/Kernel/Helpers.php on line 33
#这是其中的一段错误#php code line 83/** * Return current url. * * @return string */function current_url(){    $protocol = 'http://';    if ((!empty($_SERVER['HTTPS']) && 'off' !== $_SERVER['HTTPS']) || ($_SERVER['HTTP_X_FORWARDED_PROTO'] ?? 'http') === 'https') {        $protocol = 'https://';    }    return $protocol.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];}
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/overtrue/wechat/issues/1249, or mute the thread
https://github.com/notifications/unsubscribe-auth/ABZ3YEwzoj-ixPWmj-e3ib8kuaazK_Uuks5t68_igaJpZM4UhVli
.

PHP 7.2.6 (cli) (built: Jun  6 2018 19:05:01) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
是docker环境下运行的

你这是 cli 版本，请检查一下fpm 版本
达 notifications@github.com于2018年6月9日 周六下午10:29写道：

PHP 7.2.6 (cli) (built: Jun 6 2018 19:05:01) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
是docker环境下运行的
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/overtrue/wechat/issues/1249#issuecomment-395973689,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF8LeqEU2wuzfaKnVk87_hAyeqisr-lOks5t69u4gaJpZM4UhVli
.

authors: mingyoung overtrue systoms

repo: overtrue/wechat


text:
Localisation Output

a new Fake-Localization System is used as output
It uses the other localization systems as input and generates an combined output (configurable)

I have created a dummy node that takes the camera system data and publishes tf from world to tb_N.
This node misses the following (has to be completed)

Mapping from AMCL to Camera/UWB
Parameter controlled: How the combined data should be calculated (input value fusion)

done

authors: Scyten jbeckhaus

repo: ovgu-FINken/DrivingSwarm


text:
Running specific jq query via jqplay.org fails while the same via cli works

Hi.
I'm trying to run the following jq via jqplay and it fails while running the same using jq cli works:
This should be working with any json input.
query:
.|[leaf_paths as $path|{key: $path|join("^"), value: getpath($path)}]
jqplay result:
jq: error: leaf_paths/0 is not defined at , line 1:
.|[leaf_paths as $path|{key: $path|join("^"), value: getpath($path)}]
jq: 1 compile error
exit status 3
CLI:
cat /tmp/a.json | jq '.|[leaf_paths as $path|{key: $path|join("^"), value: getpath($path)}]'
[
{
"key": "glossary^title",
"value": "example glossary"
}
]

Hey, i think this is because leaf_paths/0 was removed in 1.7. See https://github.com/jqlang/jq/pull/2666

@hmarko Let us know if you have more questions. Feel free to hop on our discord server if you need more help.

authors: hmarko owenthereal wader

repo: owenthereal/jqplay


text:
Benchmark feather file compression methods

Compare the compressed size and read performance for 1) feather files compressed with the native "zstd" compression, and 2) feather files compressing using gzip. From the etl directory, you can run it with python benchmarking_tmp.py. You can also fiddle with the constants at the top to change the test dataframe or number of iterations.
Sample results:
Dataframe len: 21854
Size of zstd feather: 186,626 bytes
Size of gzipped raw feather: 182,668 bytes
Average read time (zstd): 0.00196s
Average read time (uncompressed + gz): 0.01198s

(Closing since this isn't intended to be merged)

repo: owid/etl


text:
✨ indicator tags (pablor)

Add topic tags to all new indicators (Pablo R datasets).

Let me know when it is ready for review.

Let me know when it is ready for review.

Thanks, I was waiting for CI to work, but anyway, CI is failing for reasons unrelated to this PR.

authors: lucasrodes pabloarosado


text:
add feature flag for external user management

fixes https://github.com/owncloud/ocis-charts/issues/5
depends on https://github.com/owncloud/ocis/pull/4346

If I see it correctly this "assumes" a specific configuration at the OIDC provider (e.g. there needs to be a client called web and it needs to be public).
When using this together with a keycloak instance (using https://sso.mydomain.com/auth/realms/myrealm and creating a client called web ) I get in a redirect loop with the following error being produced in the auth-machine
auth-machine-5f86bcbb48-r92b7 auth-machine {"level":"debug","service":"auth-machine","pkg":"rgrpc","traceid":"00000000000000000000000000000000","client_id":"username:red.acted@gmail.com","time":"2022-08-01T10:11:55.76955884Z","message":"unknown client id"}

any idea how I could debug this?

Ah ok, please reach out if can support testing this PR.

Is this at a point where I could test it with Keycloak? If I read owncloud/ocis#4346 this is only for client support on iOS/Android, right? Webbrowser should work?

I wanted to test with upstream Keycloak but yeah. What do I need the LDAP server for?

Ok, so if I want to add an external OIDC Server (Keycloak) I also have to run my own LDAP?
Can run the internal LDAP for the things oCIS is doing? I don't have an LDAP Server running at home and don't need one.
Is there any specific design decision, why oCIS does not use the userinfo endpoint?

ok, so when moving towards a home-based setup I prob. should move to the k8s-at-home owncloud-ocis chart. AFAIK it starts the monolithic server.
Thank you very much. If I can support you in any way regarding OIDC integration or an operator based deployment, please reach out

authors: PixelJonas wkloucek

repo: owncloud/ocis-charts


text:
docs: Document meaning of ETags in developer docs

As @butonic correctly states in https://github.com/owncloud/ocis/issues/3988#issuecomment-1167681224 we need to document the concept of the ETags (and possibly CTags in the future) in the developer documention.
References:

#3988
#3782
https://github.com/cernbox/smashbox/blob/master/protocol/protocol.md#restrictions-and-limitations
And a classic of the ownCloud literature: https://dragotin.wordpress.com/2015/03/13/owncloud-etags-and-fileids/

etags now mentioned in devdocs. closing.

authors: dragotin kobergj

repo: owncloud/ocis


text:
Certain filenames get blacklisted

Fedora 38 Client, Fedora 37 Server, server is running ocis docker.
Both client and server are the latest.
*edited
The bug:
Certain files will not sync with server when placed into client folder. The ownCloud client simply states "error" for the selected files and after retrying a few times, blacklists them.
Steps to reproduce the behavior:

Drag files into ownCloud folder on client
Attempt to sync

Here is a screenshot of my ownCloud client

Occasionally, I also get Server replied "412 Precondition failed" to "POST https://.........":

(I blacked out the letters in the full addresses because I don't know if that's sensitive information)
I start the ownCloud server with:
docker run \
    --name ocis_runtime \
	--detach \
    --restart=always \
    -it \
    -p 9200:9200 \
    --mount type=bind,source=/mnt/expansion/ocis/ocis-config,target=/etc/ocis \
    --mount type=bind,source=/mnt/expansion/ocis/ocis-data,target=/var/lib/ocis \
    -e OCIS_INSECURE=true \
    -e PROXY_HTTP_ADDR=0.0.0.0:9200 \
    -e OCIS_URL=https://192.168.1.24:9200 \
    owncloud/ocis

*edit
After playing around with the filenames it seems that there is no particular filename pattern that gets blacklisted or not. For instance, I had a folder where all 3 files were being blacklisted. The following files are the 3rd, 4th, and 5th files listed in my first screenshot above:

When I changed their names to "test1" all three would upload. However, what is really interesting is that after reverting the names back to the originals, they stayed synced and did not fail.
Additionally, if I upload those specific files directly into the folder using the web viewer, they upload with no issues.
However, using the web viewer to upload my files is not really a workaround because when I attempt to upload the entire folder, it also fails.

Same issue here, also with the docker image and Linux client. It seems to happen if the file path is over a certain length. I can reproduce it by creating a folder with a 128 character file name and putting a file inside which also has a 128 character long file name. It works when I upload it with a shorter file name and rename it to the long one afterwards.

NOTE: most linux filesystems have a 255 Charakter limit on filenames.

NOTE: most linux filesystems have a 255 Charakter limit on filenames.

I took a look and the files are not in violation. The longest filepath has only 197 characters and the filenames that are getting blacklisted are 100 to 200 characters long.

Same issue here, also with the docker image and Linux client. It seems to happen if the file path is over a certain length. I can reproduce it by creating a folder with a 128 character file name and putting a file inside which also has a 128 character long file name. It works when I upload it with a shorter file name and rename it to the long one afterwards.

I tried to replicate this and I did not get the same error. I created a folder in /home/patrick/ownCloud/Personal called test128filename_________________________________________________________________________________________________________________ and created a text file inside called test128filename_________________________________________________________________________________________________________________.txt and this synced just fine.

NOTE: most linux filesystems have a 255 Charakter limit on filenames.

In my case I would not be able to create the files in the first place, if this limit applied. I'm using f2fs locally.

Same issue here, also with the docker image and Linux client. It seems to happen if the file path is over a certain length. I can reproduce it by creating a folder with a 128 character file name and putting a file inside which also has a 128 character long file name. It works when I upload it with a shorter file name and rename it to the long one afterwards.

I tried to replicate this and I did not get the same error. I created a folder in /home/patrick/ownCloud/Personal called test128filename_________________________________________________________________________________________________________________ and created a text file inside called test128filename_________________________________________________________________________________________________________________.txt and this synced just fine.

Strange, for me this does not work. I created a file like this:
cd ~/'ownCloud - Admin@localhost/Persönlich'
mkdir test128filename_________________________________________________________________________________________________________________
touch test128filename_________________________________________________________________________________________________________________/test128filename_________________________________________________________________________________________________________________.txt

Issues         ,File                                                            ,Folder                        ,Size  ,Account             ,Time                ,Status              ,
Server replied "412 Precondition Failed" to "POST https://localhost:9200/dav/spaces/ef016ebd-fd47-47c7-a975-310ab4598531$dd81ce8f-9c85-426f-838c-2f1140aeb09f",test128filename_________________________________________________________________________________________________________________/test128filename_________________________________________________________________________________________________________________.txt,ownCloud - Admin@localhost/Persönlich,0 B   ,Admin@localhost:9200,2023-07-11T17:09:13.000,Info                ,

Could it be the $ sign in the filenames?

Hello, I also have a problem - some files are not synchronized - error 412 Precondition Failed, Blacklisted.

The latest version of OCIS is installed (currently) 4.0.6
It was found out experimentally that this is some kind of OCIS (not file system) limitation here are examples of file paths on my PC:
D:\ownCloud\Личный\Trionix работа\Работа\Бизнес-процессы\Брайт Парк\Формирование docx файлов по шаблону\ГОТОВЫЕ ШАБЛОНЫ\Новая версия шаблонов (от 20.04.2022)\template_answers\ответ_отказ_в_предоствлении_документов_PREPARE.docx
D:\ownCloud\Личный\Trionix работа\Работа\Бизнес-процессы\Брайт Парк\Формирование docx файлов по шаблону\ГОТОВЫЕ ШАБЛОНЫ\Новая версия шаблонов (от 20.04.2022)\template_answers\ответ_без_рассмотрения_PREPARE.docx
D:\ownCloud\Личный\Trionix работа\Работа\Бизнес-процессы\Брайт Парк\Формирование docx файлов по шаблону\ГОТОВЫЕ ШАБЛОНЫ\Новая версия шаблонов (от 20.04.2022)\template_answers\ответ_новые_отказ_налог_PREPARE.docx
D:\ownCloud\Личный\Trionix работа\Работа\Бизнес-процессы\Брайт Парк\Формирование docx файлов по шаблону\ГОТОВЫЕ ШАБЛОНЫ\Новая версия шаблонов (от 20.04.2022)\template_answers\ответ_отказ_без_конкретики_PREPARE.docx
OCIS is installed on Debian 12, the BTRFS file system.
For the test (just in case), I created a very long path in the root of this server and uploaded an SFTP file with a very long name there - and there were no problems - the file opens correctly
Here is the full path along with the file:
/test_long_path/test_very_long_path_______________________________________________________________/Trionix работа/Работа/Бизнес-процессы/Брайт Парк/Формирование docx файлов по шаблону/ГОТОВЫЕ ШАБЛОНЫ/Новая версия шаблонов (от 20.04.2022)/template_answers/телеграмма_экспертиза_PREPARE.docx________________________________________________________________________________________________________________
Please tell me how this can be fixed? Thank you in advance.

@butonic @aduffeck any hints?

Hello! I shortened the path as much as I could, some files were synchronized, but there are some files that do not want to synchronize in any way.

Since I am a developer (PHP Full stack) I wanted to contribute to OCIS - fix this bug (or at least try to do it) and make a Pool request, but I had problems deploying in docker, or rather the problem arose with creating a build. I've given up on this idea for now, as there's a lot of work to do. For me, this problem is very critical and I really want to overcome it.

Please check out owncloud.dev
It should be straight forward to get started.  You can also chat with the devs on matrix (link in the readme.md)

@butonic @aduffeck @2403905 we should take a look at this ticket on Monday.

NOTE: most linux filesystems have a 255 Charakter limit on filenames.

Some nitpicking: The 255 bytes limit per path segment. A lot of linux software expects a PATH_MAX = 4096 (bytes that is). Keeping paths shorter than that is a recommendation.
oCIS itself and the current underlying decomposedfs implementation can actually handle longer paths because it is id based internally. We never exceed PATH_MAX on disk.
That you can rename the files after they are uploaded also shows that filename characters, encoding or length are not the problem. Some length perspective:
/test_long_path/test_very_long_path_______________________________________________________________/Trionix работа/Работа/Бизнес-процессы/Брайт Парк/Формирование docx файлов по шаблону/ГОТОВЫЕ ШАБЛОНЫ/Новая версия шаблонов (от 20.04.2022)/template_answers/телеграмма_экспертиза_PREPARE.docx________________________________________________________________________________________________________________
This path has 401 Characters, using 518 bytes. 1/8thk of the 4k MAX_PATH length.
@fpauser $ is not a problem. You can even use 😍 as your filename if you want to. ;-)
@ThePatrickHe @EduardRe @rootyElf @fpauser I'm more interested in the 412 Precondition failed status. Are you all getting this? And what version of oCIS are you on. Please report your findings with the latest stable release, currently 5.0.2
Can you try running ocis with log level debug:
docker run \
    --name ocis_runtime \
	--detach \
    --restart=always \
    -it \
    -p 9200:9200 \
    --mount type=bind,source=/mnt/expansion/ocis/ocis-config,target=/etc/ocis \
    --mount type=bind,source=/mnt/expansion/ocis/ocis-data,target=/var/lib/ocis \
    -e OCIS_INSECURE=true \
    -e PROXY_HTTP_ADDR=0.0.0.0:9200 \
    -e OCIS_URL=https://192.168.1.24:9200 \
    -e OCIS_LOG_LEVEL=debug
    owncloud/ocis

be sure to update your options accordingly. when wathing the logs try to upload a single file. If that fails check the log and post what happened on the server side.
Also, hit F12 on the desktop client to write logs. They might also explain why the desktop client thinks it has to blacklist the files.

@ThePatrickHe how many files are you dragging into the client folder? It looks like a large tree. In terms of quantity of files and folders, not bytes written.

Hello, OCIS is installed on Debian 12, the BTRFS file system (the installation was not in docker, but a binary file according to this instruction https://doc.owncloud.com/ocis/4.0/depl-examples/bare-metal.html , the version was the most recent at that time - 4.0.6).
Just yesterday I upgraded to version 5.0.2 (thanks for the help in the chat https://app.element.io/#/room/#ocis:matrix.org /$Rugx85BAcVa9Ky2QxI_KBCw-zRUpDcLFIjcO4CDI0S0) and after updating manually, I was able to restart the synchronization and the files were synchronized (in version 4.0.6 it did not work in any way). Now in version 5.0.2 I have created a very long directory and uploaded a file with a very long name there
D:\ownCloud\Личный\Trionix работа\Работа\Бизнес-процессы\Брайт Парк\Создание docx\Шаблоны\Новые (от 20.04.2022)\template_answers\добавим еще одну директорию с ну очень длинным названием\еще чуть длинее название\директория_\для тестирования синхронизации очень длинный путь к файлу вот вопрос улетит или нет сейча.txt
and this file was successfully synchronized and did not give any errors, I also opened it and changed the text in it and it also synchronized successfully - the new text appeared - checked in the browser. It turns out that the problem has already been solved.

authors: EduardRe ThePatrickHe butonic fpauser micbar rootyElf


text:
quickfix root dockerfile to unblock docker based acceptance tests

Description
applies a quick fix the Dockerfile in the repository root in order to unblock docker based acceptance test.

with that change the build fails for me with

looks like you vendor the go dependencies of oCIS and they are not up to date. Running go mod vendor to refresh the vendored dependencies should do the trick

with that change the build fails for me with

Can you check what's inside the vendor directory?
Actually it might just contain stuff from php's composer that interferes with with go build. I've seen that before. If that's the case you can try rm -rf vendor and rerun.

authors: rhafer wkloucek


text:
Remove redundant code from lexer

Just removes a couple of lines of redundant code from the lexer.
A note on the 2nd one:
let mut builder = AutoCow::new(lexer);
let c = lexer.consume_char();
builder.push_matching(c);

push_matching() is a no-op unless force_allocation_without_current_ascii_char() has already been called. Here the AutoCow has just been freshly created, so we know it hasn't.

Compiler would have probably been smart enough to chop them out anyway, but was just aiming for tidier code.

repo: oxc-project/oxc