HHH-9529

Test case and fix

Opened #1118 instead, with a slightly different test strategy. Basically, the class will fail validation if enhancement is not done properly.
Anyway, @luniv thanks a lot for the test case!


Texture atlas for lua

What is your question?
Hey can we use texture atlas on lua objects? Just wondering

yes

yes

How do you use it?

How do you use it?

Something like this:
makeAnimatedLuaSprite('spriteName', 'atlasImagePath', x, y, 'texture')
"texture" being what makes it use the Texture Atlas. After that you can use 'addAnimationByIndices' to add animations.

you can also use Prefix btw. Smokey's atlas thingy is smart.


Wrong definition of Array.find() in lib.es2015.core.d.ts

TypeScript Version:  3.9.2

Search Terms: Array.find
Expected behavior:
See playground link and code below.
Array.find has an overload that takes a type parameter. I believe that supplying the type parameter should result in the value returned by .find<T>() to be typed as T.
Actual behavior:
Compilation error:
Argument of type '(this: void, t: AorB) => boolean' is not assignable to parameter of type '(this: void, value: AorB, index: number, obj: AorB[]) => value is B'.
  Signature '(this: void, t: AorB): boolean' must be a type predicate.(2345)

find is defined like this in lib.es2015.core.d.ts:
    find<S extends T>(predicate: (this: void, value: T, index: number, obj: T[]) => value is S, thisArg?: any): S | undefined;
    find(predicate: (value: T, index: number, obj: T[]) => unknown, thisArg?: any): T | undefined;

It seems that => value is S should be => unknown just like in the second overload.
The overload was added in #20385 (see https://github.com/microsoft/TypeScript/pull/20385/files#diff-aaa6939ec3d22a3cca5645eaac94d0beR33)

Related Issues:
Code
interface A {
    kind: "a";
    prop1: string;
}

interface B {
    kind: "b";
    prop2: string;

}

type AorB = A | B;

const foo: AorB[] = [];

const x = foo.find<B>(t => t.kind === "b" && t.prop2 === "foo");

Output
"use strict";
const foo = [];
const x = foo.find(t => t.kind === "b" && t.prop2 === "foo");

Compiler Options
{
  "compilerOptions": {
    "noImplicitAny": true,
    "strictNullChecks": true,
    "strictFunctionTypes": true,
    "strictPropertyInitialization": true,
    "strictBindCallApply": true,
    "noImplicitThis": true,
    "noImplicitReturns": true,
    "useDefineForClassFields": false,
    "alwaysStrict": true,
    "allowUnreachableCode": false,
    "allowUnusedLabels": false,
    "downlevelIteration": false,
    "noEmitHelpers": false,
    "noLib": false,
    "noStrictGenericChecks": false,
    "noUnusedLocals": false,
    "noUnusedParameters": false,
    "esModuleInterop": true,
    "preserveConstEnums": false,
    "removeComments": false,
    "skipLibCheck": false,
    "checkJs": false,
    "allowJs": false,
    "declaration": true,
    "experimentalDecorators": false,
    "emitDecoratorMetadata": false,
    "target": "ES2017",
    "module": "ESNext"
  }
}

Playground Link: Provided

Opened PR #38962

This is correct as it is. The point is to provide a type predicate (so a type guard function), to ensure that the found value matches the type. By changing it to unknown you defeat this purpose.
Given your example you could fix your code by changing the anonymous arrow function returning a boolean to a type guard function. You can do this either by adding a type annotation or moving it to a separate function:
foo.find<B>((t): t is B => t.kind === "b" && t.prop2 === "foo");

function isB(value: AorB): value is B { return value.kind === "b" && value.prop2 === "foo");
foo.find<B>(isB);

Understood. Makes sense. Thank you.


iOS unable to autofill addresses in the search bar

iOS has the function to autofill addresses when you type from its memory. However when you autofill, the multiselect stays blank.

Tested and confirmed this is a Safari issue, tested Chrome, Brave, Firefox on OSX and iOS autofill works. Exploring possible issues with code and Safari.

Underlining issue is a variable


ROX-21579: Add database column for scan types

Compliance scans have a type, either Platform or Node, which correlates to the profile they were derived from. This type is useful in determining which profile a result came from because we can map the result to the scan, and the scan to the profile, but only if we have the scan type.
This commit adds a new column in the V2 scan table to store the scan type, which is already being forwarded along from sensor when new scans are created by the compliance operator on secured clusters.
Checklist

[ ] Investigated and inspected CI test results
[ ] Unit test and regression tests added
[ ] Evaluated and added CHANGELOG entry if required
[ ] Determined and documented upgrade steps
[ ] Documented user facing changes (create PR based on openshift/openshift-docs and merge into rhacs-docs)

If any of these don't apply, please comment below.
Testing Performed
Here I tell how I validated my change
Manual verification using roxdb:
central_active=# \d compliance_operator_scan_v2
                    Table "public.compliance_operator_scan_v2"
      Column       |            Type             | Collation | Nullable | Default
-------------------+-----------------------------+-----------+----------+---------
 id                | character varying           |           | not null |
 scanconfigname    | character varying           |           |          |
 scanname          | character varying           |           |          |
 clusterid         | uuid                        |           |          |
 profile_profileid | character varying           |           |          |
 scantype          | integer                     |           |          |
 lastexecutedtime  | timestamp without time zone |           |          |
 serialized        | bytea                       |           |          |
Indexes:
    "compliance_operator_scan_v2_pkey" PRIMARY KEY, btree (id)
    "complianceoperatorscanv2_sac_filter" hash (clusterid)

Reminder for reviewers
In addition to reviewing code here, reviewers must also review testing and request further testing in case the
performed one does not seem sufficient. As a reviewer, you must not approve the change until you understand the
performed testing and you are satisfied with it.

I'm not seeing the proto files in this change list

@dashrews78 rebased and resolved merge conflicts.


Process sequence tab

Added a small script to process the sequence tab rows. If fastq names are from ENA and the experiment and run accessions are available, this script will generate the correct number of rows and read index for the fastq names, alongside the associated accessions.

Was just having a look through open PRs, @ami-day @ESapenaVentura can we merge this or do we need more changes?

I was waiting for @ami-day to answer to the review
The overall verdict is that it looks good to me, I just had some questions and suggestions

Should we merge this @ami-day ?

Closing after no response


docs: gsg to use utility dbt-postgres vs transformer

@sbalnojan let me know what you think about these updates:

switch to using utility dbt-postgres over the transformer + file bundle
it also looks like on part 2 we're pulling commits from sbalnojan/meltano-lightdash then in part 3 we're using sbalnojan/meltano-example-el. Does it make a difference? I noticed the lightdash repo only gave me 1 record vs the example-el gave me many. I just noticed that it switched between parts. It might be less confusing for users if we chose one for the full tutorial.

@pnadolny13 I'm merging https://github.com/meltano/meltano/pull/7619 which has some of these changes. Will you review this PR and either close or update it?

@tayloramurphy I'm closing since its outdated. Although I noticed one thing that https://github.com/meltano/meltano/pull/7619 accidentally reverted so I created a new PR to add that back.


openlens: init at 6.4.5

Description of changes

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
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.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.

I just saw the last commit, and I wonder what is the point of going to an alpha version, when 6.3.0 was released three weeks ago...

6.3.0 is a controversial release that removes a lot of features. The 6.4.0-alpha.2 brings back some of the removed features. See https://github.com/lensapp/lens/issues/6823

Ok, thanks for the information!

I had to revert to version 6.2.5 since that is the most recent non-broken version before 6.3.0.

Thanks for the PR, I tried it and had some issues (I suspect Wayland?) with the following error-message:
(open-lens:2): Gdk-ERROR **: 19:43:24.545: The program 'open-lens' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadAccess (attempt to access private resource denied)'.
  (Details: serial 251 error_code 10 request_code 130 (MIT-SHM) minor_code 1)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the GDK_SYNCHRONIZE environment
   variable to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)

With some help and context from #104412, #109466 I found a solution: unshareIpc = false inside appimageTools.wrapType2-block. Exporting QT_X11_NO_MITSHM=1 before launching openlens from console didn't helped, unsharePid seems to be not necessary for me.

@SebTM are you using X11 or wayland? I'm using wayland and haven't encountered this error.

I'm using Wayland, with sway - I'm on unstable e1e1b192c1a5aab2960bf0a0bd53a2e8124fa18e

Hey, thanks for following up - shortly after there was also v6.4.3 released. If you like to, you can add me to maintainer as well. Please update the title and check-boxes when done accordingly and I would think we are good-2-go ✌🏻

@SebTM I updated to 6.4.3 and added you as a maintainer. Thanks!

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-already-reviewed/2617/858

@benwbooth Can't merge myself, so mentioned it as reviewed in a discourse thread - so nothing wrong just waiting for some attention ✌🏻

I guess you should squash the commits together that it's only one or if possible check that it's enabled on pr-side to do so on merge :v:

@SebTM I squashed the commits. Thanks!


Incompleteness for lambdas in binary search trees

The following variant of the is_bst (from data_structures/binary_search_tree_basic.fst) doesn't currently work (causes failures all over in the binary search tree example)
val is_bst : tree -> Tot bool
let rec is_bst t =
  match t with
  | Leaf -> true
  | Node n t1 t2 -> all (fun n' -> n > n') t1 &&
                   all (fun n' -> n' < n) t2 && is_bst t1 && is_bst t2

although it's equivalent and more natural than what we write now:
val lt : int -> int -> Tot bool
let lt n1 n2 = n1 < n2

val gt : int -> int -> Tot bool
let gt n1 n2 = n1 > n2

val is_bst : tree -> Tot bool
let rec is_bst t =
  match t with
  | Leaf -> true
  | Node n t1 t2 -> all (gt n) t1 && all (lt n) t2 && is_bst t1 && is_bst t2

Also, the most natural way of writing this is not even syntactically accepted
val is_bst : tree -> Tot bool
let rec is_bst t =
  match t with
  | Leaf -> true
  | Node n t1 t2 -> all ((>) n) t1 &&
                   all ((<) n) t2 && is_bst t1 && is_bst t2

we can't partially apply operators at the moment, right? Would it be hard to add?

You can partially apply them if you use there full names.
For example, op_GreaterThan

Messed up the direction of comparison, this is not a bug. Closing.


Jiraone delta extraction

Hello!
I have been using the jiraone python module to extract the historic information of issues.
Example code from docs:
from jiraone import LOGIN, PROJECT
user = "email"
password = "token"
link = https://yourinstance.atlassian.net/
LOGIN(user=user, password=password, url=link)
if name == 'main':
jql = "project in (PYT) ORDER BY Rank DESC"
PROJECT.change_log(jql=jql)

Its great except everytime I run it, it extracts from the beginning which takes a long time. I was wondering if it was possible to extract just the delta/updates not the whole of the information.
Thanks!

Hi @juliariza
The change_log method doesn't do that but with JQL, you can just get only issues that have been updated by altering the JQL to search those issues. Although to your point, it will extract everything. I think it is time for me to update that method to allow multiple processing to append to the same document.

Hey @juliariza
About your initial ask, I think it's doable but there are 3 problems to solve. There has to be some storage of each extraction to know

The last time a specific issue key was updated and compare it with what's on the Jira environment
What history item was last updated per issue key  and if new items exist anytime it is checked (this is how to know the delta)
The filename that was used to store the history data and at what point is this new insertion going to start within the saved file when a new history item is found.

While I like the challenge of creating such a feature, I don't think I would be doing that anytime soon. However, with the new version 0.7.9, you can make a very fast asynchronous request for history extraction reducing the long waiting time.
For example: minimal style
# import statement
PROJECT.async_change_log(
               jql, folder="TEST", file="sample.csv"
            )

If you need the extraction to be faster, you can increase the workers for running simultaneous extraction requests as the default is 4.
For example: comprehensive style
# import statement
PROJECT.async_change_log(
               jql, folder="TEST", file="sample.csv", workers=20, flush=10
            )

How it works

Let's say your JQL has 100 issues returned with the search. What the above code does, is take 20 issue keys out of that list and run the request at the same time. It does it 4 more times in batches of 20 requests at a time rather than the normal 1 request at a time that the change_log method provides making it faster to extract data. You can increase the number of workers to 50 or even 100. However, it is recommended to leave it at an acceptable number that wouldn't take too much CPU resource or even make too many requests to your Jira environment.  The flush argument causes a delay in seconds just to allow any final asynchronous request that might be running before the file is written to disk.

I believe this will help with the performance improvement if you're extracting more data frequently.


Unable to biuld px4 on beaglebone blue nativ

Does anyone have an insight in to this problem
[ 98%] Built target FlightTasks
Scanning dependencies of target modules__mc_pos_control
[ 98%] Building CXX object src/modules/mc_pos_control/CMakeFiles/modules__mc_pos_control.dir/mc_pos_control_main.cpp.o
[ 98%] Building CXX object src/modules/mc_pos_control/CMakeFiles/modules__mc_pos_control.dir/PositionControl.cpp.o
[100%] Building CXX object src/modules/mc_pos_control/CMakeFiles/modules__mc_pos_control.dir/Utility/ControlMath.cpp.o
[100%] Linking CXX static library libmodules__mc_pos_control.a
[100%] Built target modules__mc_pos_control
Scanning dependencies of target px4
[100%] Building CXX object platforms/posix/CMakeFiles/px4.dir/src/main.cpp.o
[100%] Building CXX object platforms/posix/CMakeFiles/px4.dir/apps.cpp.o
[100%] Linking CXX executable ../../bin/px4
../../src/lib/DriverFramework/framework/src/libdf_driver_framework.a(I2CDevObj.cpp.o): In function DriverFramework::I2CDevObj::_readReg(unsigned char, unsigned char*, unsigned int)': /var/lib/cloud9/Firmware/src/lib/DriverFramework/framework/src/I2CDevObj.cpp:174: undefined reference to rc_i2c_read_data'
collect2: error: ld returned 1 exit status
platforms/posix/CMakeFiles/px4.dir/build.make:262: recipe for target 'bin/px4' failed
make[3]: *** [bin/px4] Error 1
CMakeFiles/Makefile2:10494: recipe for target 'platforms/posix/CMakeFiles/px4.dir/all' failed
make[2]: *** [platforms/posix/CMakeFiles/px4.dir/all] Error 2
Makefile:160: recipe for target 'all' failed
make[1]: *** [all] Error 2
Makefile:171: recipe for target 'beaglebone_blue_native' failed
make: *** [beaglebone_blue_native] Error 2

Documented the fix in this pull request: https://github.com/PX4/px4_user_guide/pull/438

The fix is in this pull request: https://github.com/StrawsonDesign/librobotcontrol/pull/148


refactor: DATA-11927 Move to url approach for authorisation

What?
Per title
Why?
Google Chrome has started blocking third-party cookies for some people, and they plan to do this for everyone by the end of 2024. So that we need to switch to another approach for authorisation without using these cookies.
Reference: https://developer.bigcommerce.com/resource-hub/navigating-the-end-of-third-party-cookies-a-guide-for-bigcommerce-app
With this change we are moving to url parameters approach rather than setting token in cookies
Testing / Proof
Tested locally
@bigcommerce/team-data

Have you tested whole lifecycle install/uninstall?

Yes, I have. Also tried uninstall and then re-install. All seems to be working fine


Dev images makefile

Commit has been cherri picked into https://github.com/securesign/secure-sign-operator/pull/460 and merged


Fix eslint language server not working

Allows the language server for eslint to work inside VS Code.
Before change:

After change:

I don't really understand this, but it can't hurt.
Thanks, bors r+.
changelog internal (first contribution) fix esling LSP config.

bors r+

:facepalm:


fix: resizer pushed into the propertypane

Description

We were unable to scroll from top to bottom using the canvas scrollbar as it was colliding with the property pane resizor.

Fixes #11140
Type of change

Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?

Tested Manually on the canvas.

Checklist:

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes

/ok-to-test sha=c467f81

/ok-to-test sha=c467f81

Have checked the scroll bar moving up and down clicking thru mouse and tried to adjust the property pane as well, both are working fine. moving to done


Gearpump and Storm performance comparison with storm-benchmark

Here is a report for initial results.

I've corrected the throughput of Gearpump, to be aligned with Storm.

A short summary

metrics
throughput (messages/s)
latency (ms)

Gearpump
1,800,000
70

Storm (acker on)
2,000,000
20

Storm (acker off)
250,000
-

What is the comparison by running SOL example inside Gearpump-examples?

I'd say no significant difference. Here's the dashboard snapshot of running Gearpump SOL examples with the same topology configurations.

Here is the updated report.
Closing this issue.


[ARM] Fix compilation on nightly rust 1.7

@homu r+

:pushpin: Commit c13498b has been approved by kvark

:hourglass: Testing commit c13498b with merge cf7f547...

:broken_heart: Test failed - status

@homu retry

:hourglass: Testing commit c13498b with merge c6e5275...

:sunny: Test successful - status

Ok, for some reason my #828 passed through Travis just fine without this PR merged. Maybe it's unnecessary at the end of the day? Now, my PR can't be merged automatically due to a conflict :( Perhaps, we could revert this one, then merge mine, if this one is not needed?

Go ahead, the change is trivial and can be applied later.
It's definitely necessary on arm unless you're going to switch to std::os:raw. I think you're forgetting travis tests on x86_64.


Does this support OPC XML DA?

See above.

Thanks again for responding. :+1:
I'll check the trade-offs between

using XML requests that leave the machine untouched and
installing this package on the machine and using WebSockets.

Right now I am super-hesitant to alter the state of the machine that I am communicating with, so I opted for node-soap and wsdl-tsclient. wsdl-tsclient gave me reasonable results that I am refining manually.
Thanks again!


make it work with HA

Small updates to your code for the new API to make it work in HA.
Other comments:

I don't understand the line 54 in sensor.py. Perhaps there is a typo
There are two initialize_configuration methods in MyRenaultService.py (line 34). The first one seems not used.
Is there any reason to not use directly the package developed by jamesremuscat ? In the future it could simplify the maintenance.

Regarding line 54, I think it was there to say "if name not provided, then use VIN as name". I probably need to do the same on line 49 "config.get(CONF_ANDROID_LNG, 'fr_FR')"
Regarding initialize_configuration, it's to keep open the possibility of passing the URL/APIKEY immediately, and skip the AWS call for what seems to be static information. I'll tweak so that the first initialize_configuration calls the second one.
Regarding the package developped by @jamesremuscat, I am planning to use it but when I checked it quickly last week there were some tweaks that I thought would be required first. For instance, I think the URL should be variables and not constants, and I think it should be possible to pass APIKEY and USER/PASS directly without using environment variables.

For the jamesremuscat module there is two ways of implementing it cliand api. So no need to use environment variables.
If we expect to have an official integration in HA, having a module installable by pip is a prerequisite.


[AutoPR cost-management/resource-manager] Export2

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/5127

This PR has been merged into https://github.com/Azure/azure-sdk-for-go/pull/4013


Provider db config (task #2048)

Add new Config Engine that read configuration from database

Codecov Report

Merging #658 into task-2048-Admin-settings will increase coverage by 0.06%.
The diff coverage is 66.66%.

@@                      Coverage Diff                      @@
##             task-2048-Admin-settings    #658      +/-   ##
=============================================================
+ Coverage                       30.84%   30.9%   +0.06%
- Complexity                       1198    1200       +2
=============================================================
  Files                             107     108       +1
  Lines                            4085    4093       +8
=============================================================
+ Hits                             1260    1265       +5
- Misses                           2825    2828       +3

Impacted Files
Coverage Δ
Complexity Δ

src/Shell/SettingsShell.php
0% <0%> (ø)
5 <0> (ø)
:arrow_down:

src/Model/Table/SettingsTable.php
50% <100%> (ø)
4 <0> (ø)
:arrow_down:

src/Settings/DbConfig.php
71.42% <71.42%> (ø)
2 <2> (?)

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 91d9e46...6de707c. Read the comment docs.


📝 CSS formatter converts custom identifiers to lowercase

Environment information
Playground link

Configuration
No response
Playground link
https://biomejs.dev/playground/?files.main.css=LgBjAG8AbgB0AGEAaQBuAGUAcgAgAHsACgAgACAAZwByAGkAZAAtAHQAZQBtAHAAbABhAHQAZQAtAGEAcgBlAGEAcwA6ACAAIgBsAGEAYgBlAGwAIABmAG8AcgBtAEMAbwBuAHQAcgBvAGwAIgAKAH0ACgAKAC4AYwBvAG4AdABhAGkAbgBlAHIAIABpAG4AcAB1AHQAIAB7AAoAIAAgAGcAcgBpAGQALQBhAHIAZQBhADoAIABmAG8AcgBtAEMAbwBuAHQAcgBvAGwAOwAKAH0A
Code of Conduct

[X] I agree to follow Biome's Code of Conduct

Potentially related issue/solution: #3068

@ematipico
Hmm,
I’m not sure that this is the best or easiest solution here. I think we have two ways to solve it:
1.	Don’t change the case at all.
2.	Change the case only for reserved words. However, to achieve this, we have to know all of them inside the parser/formatter.

Don’t change the case at all.

Maybe we should evaluate this solution. The formatter doesn't have any semantic knowledge of the document, so I suppose any "unknown" things should be left untouched.


'package:flutter/src/widgets/overlay.dart': Failed assertion: line 552 pos 15: 'textDirection != null': is not true.

The following assertion was thrown building Overlay(state: OverlayState#b90aa(entries[OverlayEntry#fa568(opaque: false; maintainState: false), OverlayEntry#83b08(opaque: false; maintainState: false)])):
'package:flutter/src/widgets/overlay.dart': Failed assertion: line 552 pos 15: 'textDirection != null': is not true.
Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
https://github.com/flutter/flutter/issues/new?template=BUG.md
The relevant error-causing widget was:
Overlay file:///Users/qlinksoftware/Documents/FlutterSdk/flutter/.pubcache/hosted/pub.dartlang.org/flutter_easyloading-1.3.0/lib/src/widgets/loading.dart:38:14
When the exception was thrown, this was the stack:
#2      new _RenderTheatre (package:flutter/src/widgets/overlay.dart:552:15)
#3      _Theatre.createRenderObject (package:flutter/src/widgets/overlay.dart:509:12)
#4      RenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5491:28)
#5      MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6232:11)
....     Normal element mounting (67 frames)
═════════════════════════════════════════════════════════════════════════

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter EasyLoading',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter EasyLoading'),
      builder: EasyLoading.init(),
    );
  }
}

@muhammednazil

import 'dart:io';

import 'package:flutter/material.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:odoo_client/app/data/services/odoo_api.dart';

import 'app/pages/home.dart';
import 'app/pages/login.dart';
import 'app/utility/strings.dart';
import 'base.dart';

class MyHttpOverrides extends HttpOverrides {
  @override
  HttpClient createHttpClient(SecurityContext context) {
    return super.createHttpClient(context)
      ..badCertificateCallback =
          (X509Certificate cert, String host, int port) => true;
  }
}

void main() {
  HttpOverrides.global = new MyHttpOverrides();
  WidgetsFlutterBinding.ensureInitialized();
  runApp(App());
}

class App extends StatefulWidget {
  @override
  _AppState createState() => _AppState();
}

class _AppState extends Base<App> {
  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return FlutterEasyLoading(
      child: MaterialApp(
          debugShowCheckedModeBanner: false,
          title: Strings.app_title,
          theme: ThemeData(
            primarySwatch: Colors.indigo,
            fontFamily: "Montserrat",
          ),
          builder: EasyLoading.init(),
          home: FutureBuilder<Odoo>(
            future: getOdooInstance(),
            builder: (BuildContext context, AsyncSnapshot<Odoo> snapshot) {
              switch (snapshot.connectionState) {
                case ConnectionState.done:
                  return isLoggedIn() ? Home() : Login();
                default:
                  return new Container(
                    decoration: new BoxDecoration(color: Colors.white),
                    child: new Center(child: CircularProgressIndicator()),
                  );
              }
            },
          )),
    );
  }
}

════════ Exception caught by widgets library ═══════════════════════════════════════════════════════
The following assertion was thrown building Overlay(state: OverlayState#22314(entries: [EasyLoadingOverlayEntry#1deb0(opaque: false; maintainState: false), EasyLoadingOverlayEntry#51aaf(opaque: false; maintainState: false)])):
'package:flutter/src/widgets/overlay.dart': Failed assertion: line 552 pos 15: 'textDirection != null': is not true.
Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
https://github.com/flutter/flutter/issues/new?template=BUG.md
The relevant error-causing widget was:
FlutterEasyLoading file:///Users/qlinksoftware/AndroidStudioProjects/Odoo-JsonRpc-with-Flutter/lib/main.dart:40:12
When the exception was thrown, this was the stack:
#2      new _RenderTheatre (package:flutter/src/widgets/overlay.dart:552:15)
#3      _Theatre.createRenderObject (package:flutter/src/widgets/overlay.dart:509:12)
#4      RenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5491:28)
#5      MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6232:11)
#6      Element.inflateWidget (package:flutter/src/widgets/framework.dart:3569:14)
...
════════════════════════════════════════════════════════════════════════════════════════════════════

set MaterialApp to root widget, not FlutterEasyLoading


LinkedIn API changes

I recently saw this https://developer.linkedin.com/support/developer-program-transition. Are you guys aware of this? Will you update the API's to handle the changes? Or should I do something on my end? Please let me know your plan on this.

Any news on this?

@ozgur

any progress?

8 days left!!

FYI, I spend a bit of time dig into this problem. After May 12, a lot of API's in this lib will be broken (eg. get_company_by_email_domain), unless you purchase a LinkedIn partner program.

Has anyone applied for partner program access? Were you successful in doing it just as a small/for fun project?

I applied for the enhanced API access to update the R package but was rejected.  This was LinkedIn's response:

Dear developer,

Thanks for submitting your application for enhanced API access through LinkedIn’s developer site. We have reviewed your application and determined that your use case does not qualify for enhanced API access. If you have further questions about the use cases we support through our open platform, please consult our developer site (https://developer.linkedin.com/) and our API terms of use (https://developer.linkedin.com/legal/api-terms-of-use).
Thanks again for being part of our developer community.

-The LinkedIn Business Development Team

any news on this ?

@mpiccirilli Were you able to get the access finally in other attempts?

@madhavij No, I wasn't unfortunately.


Failed to get ProviderID by nodeName - StorageClass "oci-bv"

BUG REPORT
Versions
CCM Version:
v 0.9
Environment:

Kubernetes version (use kubectl version):

lient Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.5", GitCommit:"e6503f8d8f769ace2f338794c914a96fc335df0f", GitTreeState:"clean", BuildDate:"2020-06-26T03:47:41Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.12", GitCommit:"7cd5e9086de8ae25d6a1514d0c87bac67ca4a481", GitTreeState:"clean", BuildDate:"2020-11-12T09:11:15Z", GoVersion:"go1.13.15", Compiler:"gc", Platform:"linux/amd64"}

OS (e.g. from /etc/os-release):

NAME="Ubuntu"
VERSION="18.04.5 LTS (Bionic Beaver)"

Kernel (e.g. uname -a):

Linux master01 5.4.0-1028-oracle #29~18.04.1-Ubuntu SMP Tue Oct 6 13:05:53 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Others:

What happened?
We are trying to implement the new CSI plugin as per the following guide, on a self managed K8S cluster v1.18.5
https://github.com/oracle/oci-cloud-controller-manager/blob/master/container-storage-interface.md
When we create a PVC and deploy a Pod, we can see a new Block Volume created, but not attached to the respective node.
we are getting the following error, when inspecting the pod:
Events:
  Type     Reason              Age                   From                     Message
  ----     ------              ----                  ----                     -------
  Normal   Scheduled           5m42s                 default-scheduler        Successfully assigned default/app1 to worker03
  Warning  FailedAttachVolume  92s (x10 over 5m42s)  attachdetach-controller  AttachVolume.Attach failed for volume "csi-b1b9fabc-faca-4dab-8c96-f97c7c321d43" : rpc error: code = InvalidArgument desc = failed to get ProviderID by nodeName. error : missing provider id for node worker03
  Warning  FailedMount         82s (x2 over 3m39s)   kubelet, 4worker03    Unable to attach or mount volumes: unmounted volumes=[persistent-storage], unattached volumes=[persistent-storage default-token-drrj8]: timed out waiting for the condition

Looking at the Nodes labels:
kubectl get nodes --show-labels
NAME           STATUS   ROLES    AGE     VERSION   LABELS
master01   Ready    master   5h25m   v1.18.5   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,failure-domain.beta.kubernetes.io/zone=ME-JEDDAH-1-AD-1,kubernetes.io/arch=amd64,kubernetes.io/hostname=master01,kubernetes.io/os=linux,node-role.kubernetes.io/master=
worker01   Ready    <none>   5h24m   v1.18.5   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,failure-domain.beta.kubernetes.io/zone=ME-JEDDAH-1-AD-1,kubernetes.io/arch=amd64,kubernetes.io/hostname=worker01,kubernetes.io/os=linux
worker03   Ready    <none>   5h24m   v1.18.5   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,failure-domain.beta.kubernetes.io/zone=ME-JEDDAH-1-AD-1,kubernetes.io/arch=amd64,kubernetes.io/hostname=worker03,kubernetes.io/os=linux

What you expected to happen?
We are expecting the "oci-bv" StorageClass to provision an OCI Block Volume and attache it to the right node, and then attache it to the right Pod.
How to reproduce it (as minimally and precisely as possible)?
1- A clean self managed K8S cluster v1.18.5
2- OCI Console -> Identity -> Dynamic Groups
All {instance.compartment.id = 'ocid1.compartment.oc1..XXXXXXXXXXXX'}

3- OCI Console -> Identity -> Policies
Allow dynamic-group oci_csi_group to read vnic-attachments in compartment Test_Compartment
Allow dynamic-group oci_csi_group to read vnics in compartment Test_Compartment
Allow dynamic-group oci_csi_group to read instances in compartment Test_Compartment
Allow dynamic-group oci_csi_group to read subnets in compartment Test_Compartment
Allow dynamic-group oci_csi_group to use volumes in compartment Test_Compartment
Allow dynamic-group oci_csi_group to use instances in compartment Test_Compartment
Allow dynamic-group oci_csi_group to manage volume-attachments in compartment Test_Compartment
Allow dynamic-group oci_csi_group to manage volumes in compartment Test_Compartment
Allow dynamic-group oci_csi_group to manage file-systems in compartment Test_Compartment

4- Create generic secret oci-volume-provisioner
auth:
  region: me-jeddah-1
  tenancy: ocid1.tenancy.oc1..XXXXXX
  useInstancePrincipals: true
compartment: ocid1.compartment.oc1..XXXXXX (Test_Compartment)

5- Apply the manifest
~$  kubectl apply -f https://raw.githubusercontent.com/oracle/oci-cloud-controller-manager/master/manifests/container-storage-interface/oci-csi-node-rbac.yaml

~$  kubectl apply -f https://raw.githubusercontent.com/oracle/oci-cloud-controller-manager/master/manifests/container-storage-interface/oci-csi-controller-driver.yaml

~$ kubectl apply -f https://raw.githubusercontent.com/oracle/oci-cloud-controller-manager/master/manifests/container-storage-interface/oci-csi-node-driver.yaml

~$  kubectl apply -f https://raw.githubusercontent.com/oracle/oci-cloud-controller-manager/master/manifests/container-storage-interface/storage-class.yaml

6- Verify
~$ kubectl -n kube-system get pod  | grep oci
csi-oci-controller-56ddc7fc8d-gl2qp        3/3     Running   0          51m
csi-oci-node-4v9pf                         2/2     Running   0          51m
csi-oci-node-8wdtp                         2/2     Running   0          51m
csi-oci-node-kfcgg                         2/2     Running   0          51m

7- Manually update failure-domain.beta.kubernetes.io/zone label
kubectl label nodes master01 failure-domain.beta.kubernetes.io/zone=ME-JEDDAH-1-AD-1	 --overwrite
kubectl label nodes worker01 failure-domain.beta.kubernetes.io/zone=ME-JEDDAH-1-AD-1	 --overwrite
kubectl label nodes worker03 failure-domain.beta.kubernetes.io/zone=ME-JEDDAH-1-AD-1	 --overwrite

8- Deploy POD and PVC:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: oci-bv-claim
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: oci-bv
  resources:
    requests:
      storage: 50Gi
---
apiVersion: v1
kind: Pod
metadata:
  name: app1
spec:
  containers:
    - name: app1
      image: centos
      command: ["/bin/sh"]
      args: ["-c", "while true; do echo $(date -u) >> /data/out.txt; sleep 5; done"]
      volumeMounts:
        - name: persistent-storage
          mountPath: /data
  volumes:
    - name: persistent-storage
      persistentVolumeClaim:
        claimName: oci-bv-claim

9- kubectl describe pvc/oci-bv-claim
  Normal  Provisioning           10m (x2 over 10m)  blockvolume.csi.oraclecloud.com_master01_2a582dbf-7cec-467a-81af-c6d02efb6144  External provisioner is provisioning volume for claim "default/oci-bv-claim"
  Normal  ProvisioningSucceeded  10m (x2 over 10m)  blockvolume.csi.oraclecloud.com_master01_2a582dbf-7cec-467a-81af-c6d02efb6144  Successfully provisioned volume csi-b1b9fabc-faca-4dab-8c96-f97c7c321d43

10- kubectl describe pod app1
  Warning  FailedAttachVolume  24s (x13 over 10m)    attachdetach-controller  AttachVolume.Attach failed for volume "csi-b1b9fabc-faca-4dab-8c96-f97c7c321d43" : rpc error: code = InvalidArgument desc = failed to get ProviderID by nodeName. error : missing provider id for node worker03

Anything else we need to know?

Tried to add providerID on the node manually, as
kubectl patch node worker01 -p '{"spec":{"providerID":"ocid1.instance.oc1.me-jeddah-1.XXXXXXXXXXX"}}'

but now I'm getting:
Events:
  Type     Reason                  Age                   From                     Message
  ----     ------                  ----                  ----                     -------
  Normal   Scheduled               11m                   default-scheduler        Successfully assigned default/app1 to worker01
  Normal   SuccessfulAttachVolume  10m                   attachdetach-controller  AttachVolume.Attach succeeded for volume "csi-8a5c7fb9-a88a-4e65-995d-153aa960fc79"
  Warning  FailedMount             4m37s (x2 over 9m7s)  kubelet, worker01   Unable to attach or mount volumes: unmounted volumes=[persistent-storage], unattached volumes=[default-token-z8rjg persistent-storage]: timed out waiting for the condition
  Warning  FailedMount             22s (x13 over 10m)    kubelet, worker01   MountVolume.MountDevice failed for volume "csi-8a5c7fb9-a88a-4e65-995d-153aa960fc79" : rpc error: code = Internal desc = iscsi: error logging in target: exit status 12
  Warning  FailedMount             3s (x3 over 6m51s)    kubelet, worker01   Unable to attach or mount volumes: unmounted volumes=[persistent-storage], unattached volumes=[persistent-storage default-token-z8rjg]: timed out waiting for the condition

Can you also specify the OS used for Instances to setup the k8s cluster?

And Would like to see the iscsi logs from the instance as well. You will have to ssh into the instance and fetch logs where the logs for that container are located. The location of logs can be different from cluster to cluster based on the setup.

I see that you set the providerId later, so can you restart the ccm pod and get the logs?
Another thing I would like to see is describe the node.

@mrunalpagnis

OS (e.g. from /etc/os-release):

NAME="Ubuntu"
VERSION="18.04.5 LTS (Bionic Beaver)"

Kernel (e.g. uname -a):

Linux master01 5.4.0-1028-oracle #29~18.04.1-Ubuntu SMP Tue Oct 6 13:05:53 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Trying to reproduce the issue while OCI CCM is installed, oci-cloud-controller-manager pod refused to start:
2020-11-20T16:25:46.753Z	INFO	flag/flags.go:33	FLAG: --tls-sni-cert-key="[]"
2020-11-20T16:25:46.753Z	INFO	flag/flags.go:33	FLAG: --use-service-account-credentials="false"
2020-11-20T16:25:46.753Z	INFO	flag/flags.go:33	FLAG: --v="2"
2020-11-20T16:25:46.753Z	INFO	flag/flags.go:33	FLAG: --version="false"
2020-11-20T16:25:47.033Z	INFO	options/serving.go:319	Generated self-signed cert in-memory
2020-11-20T16:25:47.589Z	WARN	clientcmd/client_config.go:541	Neither --kubeconfig nor --master was specified.  Using the inClusterConfig.  This might not work.
2020-11-20T16:25:47.592Z	INFO	app/controllermanager.go:117	Version: v0.0.0-master+$Format:%h$
2020-11-20T16:25:47.593Z	INFO	metadata/instance_metadata.go:87	Metadata endpoint /opc/v2/instance/ returned response successfully
2020-11-20T16:25:47.593Z	WARN	config/config.go:177	cloud-provider config: "auth.useInstancePrincipals" is DEPRECATED and will be removed in a later release. Please set "useInstancePrincipals".
2020-11-20T16:25:47.594Z	INFO	metadata/instance_metadata.go:87	Metadata endpoint /opc/v2/instance/ returned response successfully
2020-11-20T16:25:47.596Z	INFO	client/utils.go:94	OCI using read rate limit configuration: QPS=20, bucket=5	{"component": "cloud-controller-manager"}
2020-11-20T16:25:47.596Z	INFO	client/utils.go:98	OCI using write rate limit configuration: QPS=20, bucket=5	{"component": "cloud-controller-manager"}
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x142abdd]

goroutine 1 [running]:
github.com/oracle/oci-cloud-controller-manager/pkg/cloudprovider/providers/oci.NewCloudProvider(0xc0003e9500, 0x0, 0x0, 0x0, 0x0)
	/go/src/github.com/oracle/oci-cloud-controller-manager/pkg/cloudprovider/providers/oci/ccm.go:103 +0x36d
github.com/oracle/oci-cloud-controller-manager/pkg/cloudprovider/providers/oci.init.0.func1(0x2023020, 0xc000370938, 0x7ffef268dbb6, 0x3, 0xc00016c8a8, 0xc000635801)
	/go/src/github.com/oracle/oci-cloud-controller-manager/pkg/cloudprovider/providers/oci/ccm.go:131 +0x94
github.com/oracle/oci-cloud-controller-manager/vendor/k8s.io/cloud-provider.GetCloudProvider(0x7ffef268dbb6, 0x3, 0x2023020, 0xc000370938, 0x0, 0x0, 0x0, 0x0)
	/go/src/github.com/oracle/oci-cloud-controller-manager/vendor/k8s.io/cloud-provider/plugins.go:89 +0xc1
github.com/oracle/oci-cloud-controller-manager/vendor/k8s.io/cloud-provider.InitCloudProvider(0x7ffef268dbb6, 0x3, 0x7ffef268db88, 0x1c, 0x0, 0x0, 0x0, 0x0)
	/go/src/github.com/oracle/oci-cloud-controller-manager/vendor/k8s.io/cloud-provider/plugins.go:133 +0x1ce
github.com/oracle/oci-cloud-controller-manager/vendor/k8s.io/kubernetes/cmd/cloud-controller-manager/app.Run(0xc000370930, 0xc0000aa120, 0xc00045a638, 0x4)
	/go/src/github.com/oracle/oci-cloud-controller-manager/vendor/k8s.io/kubernetes/cmd/cloud-controller-manager/app/controllermanager.go:119 +0x113
github.com/oracle/oci-cloud-controller-manager/vendor/k8s.io/kubernetes/cmd/cloud-controller-manager/app.NewCloudControllerManagerCommand.func1(0xc0000ce500, 0xc00028ab40, 0x0, 0x4)
	/go/src/github.com/oracle/oci-cloud-controller-manager/vendor/k8s.io/kubernetes/cmd/cloud-controller-manager/app/controllermanager.go:78 +0x205
github.com/oracle/oci-cloud-controller-manager/vendor/github.com/spf13/cobra.(*Command).execute(0xc0000ce500, 0xc00004c060, 0x4, 0x4, 0xc0000ce500, 0xc00004c060)
	/go/src/github.com/oracle/oci-cloud-controller-manager/vendor/github.com/spf13/cobra/command.go:830 +0x2ae
github.com/oracle/oci-cloud-controller-manager/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0xc0000ce500, 0xc000611f00, 0x0, 0x0)
	/go/src/github.com/oracle/oci-cloud-controller-manager/vendor/github.com/spf13/cobra/command.go:914 +0x2fc
github.com/oracle/oci-cloud-controller-manager/vendor/github.com/spf13/cobra.(*Command).Execute(...)
	/go/src/github.com/oracle/oci-cloud-controller-manager/vendor/github.com/spf13/cobra/command.go:864
main.main()
	/go/src/github.com/oracle/oci-cloud-controller-manager/cmd/oci-cloud-controller-manager/main.go:59 +0x3b1

kubelet flags:
/usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml --cgroup-driver=systemd --network-plugin=cni --pod-infra-container-image=k8s.gcr.io/pause:3.2 --resolv-conf=/run/systemd/resolve/resolv.conf --cloud-provider=external --provider-id=ocid1.instance.oc1.me-jeddah-1.anvgkljrddui2uicktlccydxnjkriqgajzj6nueumm42rtwnta3ks27pmhza

Looks like you are not providing the correct config file to CCM? Are you providing a config file similar to - https://github.com/oracle/oci-cloud-controller-manager/blob/master/manifests/provider-config-example.yaml to CCM as explained in the Authentication and Configuration section here- https://github.com/oracle/oci-cloud-controller-manager ? Please make sure that cloud-config is being picked up as per the logs, an example log is shown in the Deployment section in the same page

Just to be sure we are cleat, you need to make CCM work before doing any tests related to CSI

In the description, you have mentioned the following
4- Create generic secret oci-volume-provisioner
auth:
  region: me-jeddah-1
  tenancy: ocid1.tenancy.oc1..XXXXXX
  useInstancePrincipals: true
compartment: ocid1.compartment.oc1..XXXXXX (Test_Compartment)

As per the https://github.com/oracle/oci-cloud-controller-manager/blob/master/manifests/provider-config-example.yaml you need to provide other fields as well viz. vcn, load balancer. Also, have you created a similar secret for CCM as well? If not, please correct the config as per example and create again.

So, just to be clear, @shyamradhakrishnan @mrunalpagnis - are you saying that Oracle's CSI Driver will not work on a self-managed K8s cluster?
If one needs CCM to function prior to using CSI (which is definitely not what the Readme suggests, i.e "Note: For the setup and installation of flexvolume driver, flexvolume provisioner and container-storage-interface please refer linked resources." in https://github.com/oracle/oci-cloud-controller-manager), then how is it a self-managed K8s cluster?
In any case, the documentation must be updated to reflect this, failing which it is easy to switch to other VM providers simply out of ease of use due to documentation...

CSI driver will work in self managed k8s, you have to install CCM , and CCM can be installed in a self managed kubernetes also. @arindam-bandyopadhyay @rohitChaware Can we please make fix the doc issue to have CCM as a prerequisite?

@shyamradhakrishnan - nope. I have the CCM installed (pods oci-cloud-controller-* running fine on all masters), CSI installed  (pods csi-oci-node-* running on all nodes, csi-oci-controller-* running on one of the masters), and I have the same error:
Events:
  Type     Reason              Age               From                     Message
  ----     ------              ----              ----                     -------
  Normal   Scheduled           14s               default-scheduler        Successfully assigned default/oci-bv-testpod-1 to node-ovm04
  Warning  FailedAttachVolume  6s (x5 over 14s)  attachdetach-controller  AttachVolume.Attach failed for volume "csi-73635f63-763d-488d-aabe-33ff64dd1216" : rpc error: code = InvalidArgument desc = failed to get ProviderID by nodeName. error : missing provider id for node node-ovm04

@astute-engineering that means that the CCM pods is not doing it job, when CCM starts running, it is supposed to add the provider ID to node spec, an example shown below
spec:   providerID: ocid1.instance.oc1.iad.anuwcljsvlph2oycu5jvkym6eomcs3zecogpua6hpgektyr27qupua
You will have to check the CCM logs to see why nodes are not being initialized properly. You can try add a node node and get the logs in CCM related to that node and attach it here.

@shyamradhakrishnan - so just to clarify what you mentioned - are you saying that all nodes have to be added after CCM is active? Don't you think that again breaks the "self-managed clusters" concept? (can discuss more separately)
If not, then here are the errors from the log - though, it is hard to debug since I have no clue which service it is and the RBAC is perfectly fine.
2021-04-13T00:00:32.027Z	ERROR	cloud/node_controller.go:148	NodeAddress: Error fetching by providerID: MapProviderIDToInstanceID: provider ID is empty Error fetching by NodeName: Failed to map providerID to instanceID
2021-04-13T00:00:32.342Z	ERROR	cloud/node_controller.go:148	NodeAddress: Error fetching by providerID: MapProviderIDToInstanceID: provider ID is empty Error fetching by NodeName: Failed to map providerID to instanceID
2021-04-13T03:40:18.807Z	ERROR	runtime/runtime.go:109	k8s.io/client-go/informers/factory.go:133: Failed to watch *v1.Service: Get https://<IP_ADDRESS>:443/api/v1/services?resourceVersion=13102&timeout=5m15s&timeoutSeconds=315&watch=true: dial tcp <IP_ADDRESS>:443: i/o timeout
2021-04-13T03:40:18.807Z	ERROR	runtime/runtime.go:109	github.com/oracle/oci-cloud-controller-manager/pkg/cloudprovider/providers/oci/ccm.go:172: Failed to watch *v1.Service: Get https://<IP_ADDRESS>:443/api/v1/services?resourceVersion=13102&timeout=5m35s&timeoutSeconds=335&watch=true: dial tcp <IP_ADDRESS>:443: i/o timeout

Nodes do not have to be added after CCM is active. From the above error logs it is not clear what the actual error is. But the last 2 lines indicate that the k8s api server IP address provided by you is not correct.  What is the IP address <IP_ADDRESS> and why is that error message coming?

Can you throw more light on the first two lines? CCM seems to want providerID according to those lines, but is also supposed to set providerID? The source for those are not present on github.
The last 2 lines are about 3 hours later, so I'm not sure if its something transient. <IP_ADDRESS> is an ip from within the cluster-only network for the api server. https://<IP_ADDRESS>:443/ is the API Server, example:
curl -k https://<IP_ADDRESS>:443/
{
  "kind": "Status",
  "apiVersion": "v1",
  "metadata": {

  },
  "status": "Failure",
  "message": "forbidden: User \"system:anonymous\" cannot get path \"/\"",
  "reason": "Forbidden",
  "details": {

  },
  "code": 403
}

Provider ID is set before that error comes. Anyways, the code is present in github, the error comes updateNodeAddress method in https://github.com/oracle/oci-cloud-controller-manager/blob/master/vendor/k8s.io/kubernetes/pkg/controller/cloud/node_controller.go#L148
Provider ID is set in https://github.com/oracle/oci-cloud-controller-manager/blob/master/vendor/k8s.io/kubernetes/pkg/controller/cloud/node_controller.go#L259
The code is vendored in from k8s

Who sets the providerID? How does one debug that?

I sent the link for that in last comment https://github.com/oracle/oci-cloud-controller-manager/blob/master/vendor/k8s.io/kubernetes/pkg/controller/cloud/node_controller.go#L259
Did you check the entire CCM logs in all nodes? Do you see any other error? Cn you try to add a new node just to check the logs for that node so that debugging becomes easier?

Ah sorry about that question - its a pain to search via GitHub.
Adding a new node is unfortunately slightly non trivial for us, though I can try that as a later resort.
On restarting CCM pods, I got this on one of the pod:
2021-04-13T05:45:13.945Z	INFO	cloud/node_controller.go:214	This node node-ovm-n01 is registered without the cloud taint. Will not process.
2021-04-13T05:45:13.945Z	INFO	cloud/node_controller.go:214	This node node-ovm-f02 is registered without the cloud taint. Will not process.
2021-04-13T05:45:13.945Z	INFO	cloud/node_controller.go:214	This node node-ovm04 is registered without the cloud taint. Will not process.
2021-04-13T05:45:13.945Z	INFO	cloud/node_controller.go:214	This node node-ovm03 is registered without the cloud taint. Will not process.

I'm guessing that info isn't useful, since it seems to show up for any that do not have the uninitialized taint, which in case of existing nodes, will not be present (and not for those that don't explicitly have external cloud provider instead of oci).

As per README here https://github.com/oracle/oci-cloud-controller-manager
I think you are missing this step
Preparing Your Cluster
To deploy the Cloud Controller Manager (CCM) your cluster must be configured to use an external cloud-provider.
This involves:
Setting the --cloud-provider=external flag on the kubelet on all nodes in your cluster.
Setting the --provider-id= flag on the kubelet on all nodes in your cluster. Where  is the instance ocid of a node (unique for each node).
Setting the --cloud-provider=external flag on the kube-controller-manager in your Kubernetes control plane.
I would say do not set --provider-id and see what happens, but the other 2 steps are important

You might have to test these in a new node, even though you can try on an existing node to see how it behaves

Okay, so then looks like Kubespray's integration for OCI is totally broken (alpha or beta).
Kubespray uses --cloud-provider=oci, and uses external only for vsphere.

I simply assumed that the documentation is super outdated since it doesn't show compatibility with any of the recent Kubernetes versions, and uses quite a few deprecated parameters. This assumption matched with Kubespray's integration trying to do something different.

It does show compatibility with version till 1.18, the doc can be changed to reflect newer versions as and when they are tested. /cc @arindam-bandyopadhyay @sacgoel

@shyamradhakrishnan - that does it, using --cloud-provider=external worked for a dynamically provisioned PVC. With some more clarity in documentation, I believe many will not give up :)
However, something silly is still blocking the use of an existing Block Storage volume, with the following error:
Events:
  Type     Reason              Age                    From                     Message
  ----     ------              ----                   ----                     -------
  Normal   Scheduled           4m18s                  default-scheduler        Successfully assigned default/oci-bv-testpod-1 to prod-ovm-milli03
  Warning  FailedAttachVolume  4m13s (x3 over 4m15s)  attachdetach-controller  AttachVolume.Attach failed for volume "oci-bv-vol-1" : rpc error: code = Unknown desc = Failed to attach instance to node. error : Service error:NotAuthorizedOrNotFound. Authorization failed or requested resource not found.. http status code: 404. Opc request id: 4cbdb43c24245192f75fdfc6929e153f/8FFCE17356BC53B9CB1E78ACC56D57FA/BD6E0379998992A902132F0A2C0C4D9D
  Warning  FailedAttachVolume  4m11s                  attachdetach-controller  AttachVolume.Attach failed for volume "oci-bv-vol-1" : rpc error: code = Unknown desc = Failed to attach instance to node. error : Service error:NotAuthorizedOrNotFound. Authorization failed or requested resource not found.. http status code: 404. Opc request id: dfcaacfe584e9be5749c560878f58167/711B35AADF1FC0DD699A9E1B1646FCA6/E08B25D3A26EDA422C6609705F72EE68
  Warning  FailedAttachVolume  4m7s                   attachdetach-controller  AttachVolume.Attach failed for volume "oci-bv-vol-1" : rpc error: code = Unknown desc = Failed to attach instance to node. error : Service error:NotAuthorizedOrNotFound. Authorization failed or requested resource not found.. http status code: 404. Opc request id: 967453fcc55da01a743e4734ed969758/7F3DBDC1411C130C52D20D7C3E78D8C7/7D4A77F6518F4D0519E1D042200D6F10
  Warning  FailedAttachVolume  3m43s (x2 over 3m59s)  attachdetach-controller  AttachVolume.Attach failed for volume "oci-bv-vol-1" : rpc error: code = Unknown desc = Failed to attach instance to node. error : Service error:NotAuthorizedOrNotFound. Authorization failed or requested resource not found.. http status code: 404. Opc request id: c379659eeb0a5a18236e02db358dc07f/A2839F63FBC9C5FA17EDF5FA5BF536D8/FF63FD8CA4B766FFDFA731159B67279A
  Warning  FailedAttachVolume  3m11s                  attachdetach-controller  AttachVolume.Attach failed for volume "oci-bv-vol-1" : rpc error: code = Unknown desc = Failed to attach instance to node. error : Service error:NotAuthorizedOrNotFound. Authorization failed or requested resource not found.. http status code: 404. Opc request id: 184b8532ef38f5a441b5d3025a2de28e/BE8F98646CAC6E4E6874B1186A2A10BE/2708D67032740EBA58A8199BE156187A
  Warning  FailedMount         2m15s                  kubelet                  Unable to attach or mount volumes: unmounted volumes=[persistent-storage], unattached volumes=[persistent-storage default-token-db55p]: timed out waiting for the condition
  Warning  FailedAttachVolume  2m7s                   attachdetach-controller  AttachVolume.Attach failed for volume "oci-bv-vol-1" : rpc error: code = Unknown desc = Failed to attach instance to node. error : Service error:NotAuthorizedOrNotFound. Authorization failed or requested resource not found.. http status code: 404. Opc request id: bfaa1523df2e8389c5e52bd21aee16bf/339894C174E27480D8A20DBD7294D8EB/72CE4ED13900635D563D9D03592CD921
  Warning  FailedAttachVolume  5s                     attachdetach-controller  AttachVolume.Attach failed for volume "oci-bv-vol-1" : rpc error: code = Unknown desc = Failed to attach instance to node. error : Service error:NotAuthorizedOrNotFound. Authorization failed or requested resource not found.. http status code: 404. Opc request id: 44e49bcbb6cb98ef53e8230b7e732e58/13DD233F00E933071F7BC916D0FA2F29/CC69D18CA1A8666B1D85370887D915FC

Looks like the user you have configured does not have permission to attach volumes. In the CSI controller, do you see the volume as being created? You can get that by doing ko get pvc and ko get pv, maybe also do -o yaml. Are you passing the correct compartment in the config? Can you check the OCI console to see if the volume has been created?

@shyamradhakrishnan - the dynamic volume provision works fine. A new volume gets created when a PVC is created and the same volume gets terminated when the PVC is deleted. However, when creating a volume with the yaml below:
apiVersion: v1
kind: PersistentVolume
metadata:
  name: oci-bv-vol-1
spec:
  capacity:
    storage: 50G
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  storageClassName: oci-bv
  claimRef:
    name: oci-bv-claim-1
    namespace: default
  csi:
    driver: blockvolume.csi.oraclecloud.com
    volumeHandle: prod-obv-db01
    readOnly: false
    fsType: ext4
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: failure-domain.beta.kubernetes.io/zone
          operator: In
          values:
          - AP-<region>-1-AD-1

The volume gets created, the PVC gets Bound as well (using volumeBindingMode: Immediate). However, it doesn't get attached to the node and throws the errors from the previous comment. The user configured is an administrator, any specific role or access to check for?

That is not the correct yam for static provisioning, the following is
`kind: PersistentVolume
apiVersion: v1
metadata:
name: test-pv
annotations:
pv.kubernetes.io/provisioned-by: blockvolume.csi.oraclecloud.com
spec:
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: failure-domain.beta.kubernetes.io/zone
operator: In
values:
- US-ASHBURN-AD-1
storageClassName: oci-bv
by default, the volume will be not deleted if you delete the PVC, change to
"Delete" if you wish the volume to be deleted automatically with the PVC.
persistentVolumeReclaimPolicy: Retain
capacity:
storage: 50Gi
accessModes:
- ReadWriteOnce
csi:
driver: blockvolume.csi.oraclecloud.com
fsType: ext4
volumeHandle: `

Looks the same to me, with only the annotation added.

That annotation is critical. Also you have to give the OCID in the volumeHandle, looks like you have given the volume name.

Yup, missed the OCID one. Works now. Really appreciate the guidance @shyamradhakrishnan
I'm sorry but almost all of the exchange could not have been figured out (not obviously, due to some assumptions that many others may also make) with the existing READMEs. https://docs.oracle.com/en-us/iaas/Content/ContEng/Tasks/contengcreatingpersistentvolumeclaim.htm is well formatted, but is missing in depth and possibilities (since it only focuses on the managed cluster).

@shyamradhakrishnan
I am setting up the CCM from the doc https://github.com/oracle/oci-cloud-controller-manager, In the provider-config-example.yaml, seems I have provide the loadBalancer. , if I comment out the loadBalancer, it did not work ,But I dot have loadBalancer in my case, then how can I modify the config file?
2 when I check the oci-cloud-controller-manager, i saw some annotation error like below,
kubectl -n kube-system logs oci-cloud-controller-manager-gfll5
ERROR	runtime/runtime.go:109	NodeAddress: Error fetching by providerID: compartmentID annotation missing in the node. Would retry Error fetching by NodeName: error getting CompartmentID from Node Name: compartmentID annotation missing in the node. Would retry

Can you pleas tell me where should I add the annotation ? in the config file?

@zhihao-infstones this may be a bug, you can set the disabled flag to true in the yaml under load balancer. See config here - https://github.com/oracle/oci-cloud-controller-manager/blob/master/pkg/cloudprovider/providers/oci/config/config.go#L73
Please note that even if you provide a load balancer section, it will not create a load balancer. It will create a load balancer only if you create a service of type LoadBalancer.
Regarding the other error, looks like you have not followed the section I explained above, namely
As per README here https://github.com/oracle/oci-cloud-controller-manager
I think you are missing this step
Preparing Your Cluster
To deploy the Cloud Controller Manager (CCM) your cluster must be configured to use an external cloud-provider.
This involves:

Setting the --cloud-provider=external flag on the kubelet on all nodes in your cluster.
Setting the --provider-id= flag on the kubelet on all nodes in your cluster. Where is the instance ocid of a node (unique for each node).
Setting the --cloud-provider=external flag on the kube-controller-manager in your Kubernetes control plane.

You can check if step 2 is required after executing steps 1 and 3 and see if you are getting the error.

@shyamradhakrishnan  Thanks for your reply, so it will be like this? Do I sill need to provide the subnet1 and subnet2?
loadBalancer:
disabled: true

If I want the dynamic storage provisioining, What I want is to dynamic provision the storage for each pod, when I launch a pod, it will auto create a volume  in OCI and attach the PVC the pod. Which one should I install?  flexvolume provisioner or container-storage-interface. OR do I need to install both driver?

Thanks

No, just the disabled flag is fine.
You can use CSI for dynamic provisioning.

@shyamradhakrishnan  Thanks for your reply
I set the disabled to true, and then i got this error: Can i ignore this error, but it said "Failed to start service controller"
will this be OK ? not sure if it will cause any issue later when do the dynamnic provisioning
ERROR	app/core.go:80	Failed to start service controller: the cloud provider does not support external load balancers

And also for the auth part here. If I set the useInstancePrincipals: true. Do I need to put the region and compartmentID?

auth:
#region: "us-ashburn-1"
tenancy: ocid1.tenancy.oc1..XXXXXX
useInstancePrincipals: true
#compartment: ocid1.compartment.oc1..XXXXXX
Thanks

@shyamradhakrishnan  I followed the steps to deploy the. CCM and the CSI, and all are running fine
And I followed this doc https://docs.oracle.com/en-us/iaas/Content/ContEng/Tasks/contengcreatingpersistentvolumeclaim.htm "Example 1: Dynamically Creating a Persistent Volume on the Block Volume Service for Use by the CSI Volume Plugin"

Normal   Scheduled               15m                default-scheduler        Successfully assigned default/nginx to inst-ru3bx-dev-kube-instgrp-worker-infpools-com
Normal   SuccessfulAttachVolume  14m                attachdetach-controller  AttachVolume.Attach succeeded for volume "csi-fa03dfb1-5100-4f54-8b53-117b562ea093"
Warning  FailedMount             3m48s              kubelet                  Unable to attach or mount volumes: unmounted volumes=[data], unattached volumes=[kube-api-access-ct8fq data]: timed out waiting for the condition
Warning  FailedMount             93s (x5 over 12m)  kubelet                  Unable to attach or mount volumes: unmounted volumes=[data], unattached volumes=[data kube-api-access-ct8fq]: timed out waiting for the condition
Warning  FailedMount             4s (x15 over 14m)  kubelet                  MountVolume.SetUp failed for volume "csi-fa03dfb1-5100-4f54-8b53-117b562ea093" : rpc error: code = Internal desc = exit status 1
kubectl get pvc
NAME           STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
mynginxclaim   Bound    csi-fa03dfb1-5100-4f54-8b53-117b562ea093   50Gi       RWO            oci-bv         24m
The PV was created, But seems cannot mount it? Not sure what was wrong, I think I have all the policy setup.
Could you please help me for this ? Thanks a lot
Here is my pvc and pod yaml file
cat csi-bvs-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mynginxclaim
spec:
storageClassName: "oci-bv"
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 50Gi
=============
cat nginx.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- name: http
containerPort: 80
volumeMounts:
- name: data
mountPath: /usr/share/nginx/html
volumes:
- name: data
persistentVolumeClaim:
claimName: mynginxclaim

Do you have the csi node driver daemon set running in the node? Can you please check the logs of that pod?

@shyamradhakrishnan thanks for your reply
Yeah, I just check
kubectl -n kube-system get po | grep csi-oci-node
csi-oci-node-7ljf7                                                        2/2     Running   0          48m
csi-oci-node-8tttf                                                        2/2     Running   0          48m
csi-oci-node-hqhhq                                                        2/2     Running   0          48m
csi-oci-node-tdk62                                                        2/2     Running   0          48m
csi-oci-node-xv2dt                                                        2/2     Running   0          48m

kubectl logs csi-oci-node-hqhhq -n kube-system -c oci-csi-node-driver
2021-05-04T05:48:24.014Z	INFO	driver/driver.go:67	Creating a new CSI Node driver.	{"endpoint": "unix:///csi/csi.sock", "kubeconfig": "", "master": "", "nodeID": "inst-apdb6-dev-kube-instgrp-master-infpools-com"}
2021-05-04T05:48:24.015Z	INFO	driver/utils.go:169	Created kubernetes client successfully.
2021-05-04T05:48:24.015Z	INFO	driver/driver.go:135	Removing socket.	{"address": "/csi/csi.sock"}
2021-05-04T05:48:24.016Z	INFO	driver/driver.go:164	CSI ControllerDriver has started.
2021-05-04T05:48:24.989Z	INFO	driver/driver.go:152	gRPC response is sent successfully.	{"method": "/csi.v1.Identity/GetPluginInfo", "response": "{\"name\":\"blockvolume.csi.oraclecloud.com\",\"vendor_version\":\"0.1.0\"}"}
2021-05-04T05:48:25.929Z	INFO	driver/node.go:264	Available domain of node identified.	{"nodeId": "inst-apdb6-dev-kube-instgrp-master-infpools-com", "availableDomain": "US-ASHBURN-AD-3"}
2021-05-04T05:48:25.930Z	INFO	driver/driver.go:152	gRPC response is sent successfully.	{"method": "/csi.v1.Node/NodeGetInfo", "response": "{\"accessible_topology\":{\"segments\":{\"failure-domain.beta.kubernetes.io/zone\":\"US-ASHBURN-AD-3\"}},\"max_volumes_per_node\":32,\"node_id\":\"inst-apdb6-dev-kube-instgrp-master-infpools-com\"}"}

kubectl logs csi-oci-node-hqhhq -n kube-system -c csi-node-registrar
I0504 05:48:24.986869       1 main.go:108] Version: v1.0.2-rc1-0-g2edd7f10
I0504 05:48:24.990033       1 node_register.go:54] Starting Registration Server at: /registration/blockvolume.csi.oraclecloud.com-reg.sock
I0504 05:48:24.990128       1 node_register.go:61] Registration Server started at: /registration/blockvolume.csi.oraclecloud.com-reg.sock
I0504 05:48:25.913451       1 main.go:76] Received GetInfo call: &InfoRequest{}
I0504 05:48:25.975842       1 main.go:86] Received NotifyRegistrationStatus call: &RegistrationStatus{PluginRegistered:true,Error:,}

Seems all good, I do not see any error ,
and in all the node i have the provisionID there as well
spec:
  podCIDR: <IP_ADDRESS>/24
  podCIDRs:
  - <IP_ADDRESS>/24
  providerID: ocid1.instance.oc1.iad.anuwcljrpr4offqc7jubz4a5qojhpiyv333dzqs6d7ec5hmm4ojgot2vi5ca

Hmm, I dont see any mount related logs in the csi node driver, seems like the request is not coming to node driver itself. Can you check kubelet logs? @rohitChaware any clues why this can happen?

I see some error from the kubelet log
journalctl -u kubelet -f
-- Logs begin at Tue 2021-05-04 04:38:18 UTC. --
May 04 06:33:17 inst-ogrgc-dev-kube-instgrp-worker-infpools-com kubelet[31153]: I0504 06:33:17.990374   31153 kubelet_pods.go:895] "Unable to retrieve pull secret, the image pull may not succeed." pod="kube-system/csi-oci-node-7ljf7" secret="" err="secret \"image-pull-secret\" not found"
May 04 06:34:38 inst-ogrgc-dev-kube-instgrp-worker-infpools-com kubelet[31153]: I0504 06:34:38.989444   31153 kubelet_pods.go:895] "Unable to retrieve pull secret, the image pull may not succeed." pod="kube-system/csi-oci-node-7ljf7" secret="" err="secret \"image-pull-secret\" not found"
May 04 06:36:06 inst-ogrgc-dev-kube-instgrp-worker-infpools-com kubelet[31153]: I0504 06:36:06.989358   31153 kubelet_pods.go:895] "Unable to retrieve pull secret, the image pull may not succeed." pod="kube-system/csi-oci-node-7ljf7" secret="" err="secret \"image-pull-secret\" not found"
May 04 06:37:30 inst-ogrgc-dev-kube-instgrp-worker-infpools-com kubelet[31153]: I0504 06:37:30.990191   31153 kubelet_pods.go:895] "Unable to retrieve pull secret, the image pull may not succeed." pod="kube-system/csi-oci-node-7ljf7" secret="" err="secret \"image-pull-secret\" not found"
May 04 06:38:47 inst-ogrgc-dev-kube-instgrp-worker-infpools-com kubelet[31153]: I0504 06:38:47.990510   31153 kubelet_pods.go:895] "Unable to retrieve pull secret, the image pull may not succeed." pod="kube-system/csi-oci-node-7ljf7" secret="" err="secret \"image-pull-secret\" not found"
May 04 06:40:16 inst-ogrgc-dev-kube-instgrp-worker-infpools-com kubelet[31153]: I0504 06:40:16.990258   31153 kubelet_pods.go:895] "Unable to retrieve pull secret, the image pull may not succeed." pod="kube-system/csi-oci-node-7ljf7" secret="" err="secret \"image-pull-secret\" not found"
May 04 06:41:28 inst-ogrgc-dev-kube-instgrp-worker-infpools-com kubelet[31153]: I0504 06:41:28.989797   31153 kubelet_pods.go:895] "Unable to retrieve pull secret, the image pull may not succeed." pod="kube-system/csi-oci-node-7ljf7" secret="" err="secret \"image-pull-secret\" not found"
May 04 06:42:32 inst-ogrgc-dev-kube-instgrp-worker-infpools-com kubelet[31153]: I0504 06:42:32.989245   31153 kubelet_pods.go:895] "Unable to retrieve pull secret, the image pull may not succeed." pod="kube-system/csi-oci-node-7ljf7" secret="" err="secret \"image-pull-secret\" not found"
May 04 06:43:58 inst-ogrgc-dev-kube-instgrp-worker-infpools-com kubelet[31153]: I0504 06:43:58.989451   31153 kubelet_pods.go:895] "Unable to retrieve pull secret, the image pull may not succeed." pod="kube-system/csi-oci-node-7ljf7" secret="" err="secret \"image-pull-secret\" not found"
May 04 06:45:02 inst-ogrgc-dev-kube-instgrp-worker-infpools-com kubelet[31153]: I0504 06:45:02.989380   31153 kubelet_pods.go:895] "Unable to retrieve pull secret, the image pull may not succeed." pod="kube-system/csi-oci-node-7ljf7" secret="" err="secret \"image-pull-secret\" not found"

is the secret issue when i create the secret
kubectl create secret generic oci-volume-provisioner \
    -n kube-system \
    --from-file=config.yaml=config.yaml

You can ignore that message if the pod is running, you did mention above that the pod is running. Ideally there should be some kubelet logs regarding the mount, did you check the kubelet logs in the node in which the pod is scheduled? How many nodes do you have? Did you check the csi node and kubelet logs of all the nodes?

Thanks
I have 3 master and 2 worker
kubectl get nodes
NAME                                              STATUS   ROLES                  AGE    VERSION
inst-apdb6-dev-kube-instgrp-master-infpools-com   Ready    control-plane,master   91m    v1.21.0
inst-ogrgc-dev-kube-instgrp-worker-infpools-com   Ready    <none>                 85m    v1.21.0
inst-rcd2r-dev-kube-instgrp-master-infpools-com   Ready    control-plane,master   118m   v1.21.0
inst-ru3bx-dev-kube-instgrp-worker-infpools-com   Ready    <none>                 82m    v1.21.0
inst-xtz5d-dev-kube-instgrp-master-infpools-com   Ready    control-plane,master   95m    v1.21.0

And I check the log on the worker, and got some error msg. Any idea about this
journalctl -u kubelet -f
-- Logs begin at Tue 2021-05-04 04:38:12 UTC. --
May 04 06:56:52 inst-ru3bx-dev-kube-instgrp-worker-infpools-com kubelet[419]: I0504 06:56:52.967619     419 passthrough.go:48] ccResolverWrapper: sending update to cc: {[{/var/lib/kubelet/plugins/blockvolume.csi.oraclecloud.com/csi.sock  <nil> 0 <nil>}] <nil> <nil>}
May 04 06:56:52 inst-ru3bx-dev-kube-instgrp-worker-infpools-com kubelet[419]: I0504 06:56:52.967627     419 clientconn.go:948] ClientConn switching balancer to "pick_first"
May 04 06:56:52 inst-ru3bx-dev-kube-instgrp-worker-infpools-com kubelet[419]: I0504 06:56:52.967655     419 clientconn.go:897] blockingPicker: the picked transport is not ready, loop back to repick
May 04 06:56:52 inst-ru3bx-dev-kube-instgrp-worker-infpools-com kubelet[419]: I0504 06:56:52.977651     419 clientconn.go:106] parsed scheme: ""
May 04 06:56:52 inst-ru3bx-dev-kube-instgrp-worker-infpools-com kubelet[419]: I0504 06:56:52.977708     419 clientconn.go:106] scheme "" not registered, fallback to default scheme
May 04 06:56:52 inst-ru3bx-dev-kube-instgrp-worker-infpools-com kubelet[419]: I0504 06:56:52.977724     419 passthrough.go:48] ccResolverWrapper: sending update to cc: {[{/var/lib/kubelet/plugins/blockvolume.csi.oraclecloud.com/csi.sock  <nil> 0 <nil>}] <nil> <nil>}
May 04 06:56:52 inst-ru3bx-dev-kube-instgrp-worker-infpools-com kubelet[419]: I0504 06:56:52.977730     419 clientconn.go:948] ClientConn switching balancer to "pick_first"
May 04 06:56:52 inst-ru3bx-dev-kube-instgrp-worker-infpools-com kubelet[419]: I0504 06:56:52.977758     419 clientconn.go:897] blockingPicker: the picked transport is not ready, loop back to repick
May 04 06:56:52 inst-ru3bx-dev-kube-instgrp-worker-infpools-com kubelet[419]: E0504 06:56:52.985430     419 nestedpendingoperations.go:301] Operation for "{volumeName:kubernetes.io/csi/blockvolume.csi.oraclecloud.com^ocid1.volume.oc1.iad.abuwcljs4s7pvxjkkaridwz4tvfhaxh5vkb35j5sxdgfz2xykf3lkh6cl7bq podName: nodeName:}" failed. No retries permitted until 2021-05-04 06:58:54.985387123 +0000 UTC m=+4935.024125695 (durationBeforeRetry 2m2s). Error: "MountVolume.SetUp failed for volume \"csi-fa03dfb1-5100-4f54-8b53-117b562ea093\" (UniqueName: \"kubernetes.io/csi/blockvolume.csi.oraclecloud.com^ocid1.volume.oc1.iad.abuwcljs4s7pvxjkkaridwz4tvfhaxh5vkb35j5sxdgfz2xykf3lkh6cl7bq\") pod \"nginx\" (UID: \"048161ec-5bd5-4a3b-9aed-37a18c309a46\") : rpc error: code = Internal desc = exit status 1"
May 04 06:57:53 inst-ru3bx-dev-kube-instgrp-worker-infpools-com kubelet[419]: I0504 06:57:53.958573     419 kubelet_pods.go:895] "Unable to retrieve pull secret, the image pull may not succeed." pod="kube-system/csi-oci-node-tdk62" secret="" err="secret \"image-pull-secret\" not found"

What is the OS that you are using?

@shyamradhakrishnan  Here is my OS verison
cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.5 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.5 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic

uname -a
Linux inst-ogrgc-dev-kube-instgrp-worker-infpools-com 5.4.0-1035-oracle #38~18.04.1-Ubuntu SMP Wed Jan 6 21:03:06 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

hmm, I am not sure if we have tested in ubuntu. /cc @arindam-bandyopadhyay @rohitChaware @sacgoel

@shyamradhakrishnan  can you tell me which ubuntu verion works on csi
It looks like the csi-node error logs are outputting their detailed message in base64. after I decoded it :

fsck from util-linux 2.23.2

fsck.ext2: Is a directory while trying to open /var/lib/kubelet/plugins/kubernetes.io/csi/pv/csi-fa03dfb1-5100-4f54-8b53-117b562ea093/globalmount

/var/lib/kubelet/plugins/kubernetes.io/csi/pv/csi-fa03dfb1-5100-4f54-8b53-117b562ea093/globalmount:

The superblock could not be read or does not describe a correct ext2

filesystem.  If the device is valid and it really contains an ext2

filesystem (and not swap or ufs or something else), then the superblock

is corrupt, and you might try running e2fsck with an alternate superblock:

   e2fsck -b 8193 <device>

We typically test in Oracle Linux and Centos. From the above error, it does seem like an OS specific error.

@shyamradhakrishnan  thanks
At the beginning of this issue, I think AbdullahKh also use ubuntu, as well  Is that possible for you to find out if this csi work ubuntu or not?
Thanks

@shyamradhakrishnan  do you think that maybe the issue with csi driver?, it looks like the driver did not finish the job?

@shyamradhakrishnan
I just create a github issue, https://github.com/oracle/oci-cloud-controller-manager/issues/350
can you please check all the setup I have done, if anything is wrong, could you please let me know
thanks

@shyamradhakrishnan   can you please help with this issue, I cannot can get it work not sure what the issue is

@zhihao-infstones Continuing the conversation for the issue you are facing at: https://github.com/oracle/oci-cloud-controller-manager/issues/350 .

@shyamradhakrishnan
May I ask you one question:
When I created a pod with oci-bv storage , it created the volume, and the block volume name is like this "csi-622d1613-493e-456e-9077-0836c8f04dd0"
I am just wondering where did this name come from? if it is possible to change the name of the volume when I define the pvc?
If this is possible, then can you please tell me where/how to define the block volume name for pod?
Thanks

Having the same setup with K0s .
Followed all the steps.
Error which i'm getting
failed to provision volume with StorageClass "oci-bv": error generating accessibility requirements: no topology key found on CSINode k0s-engineering-20210831-1436
Can anyone please guide

@AbdullahKh  you might have the same issue can you please guide , i'm trying to provision in me-jeddah-1 also

Hi @Bytelegion, can you please ensure csi-oci-node-* pod is running on the node where this error is observed(node: k0s-engineering-20210831-1436).
If the csi-oci-node-* pod is in Running state, can you share its logs.
[Can you please open a new issue at: https://github.com/oracle/oci-cloud-controller-manager/issues/new with all the details, so that we can help on it separately.]
Thanks.

Thanks @rohitChaware
Issue resolved.
My CSI Node dont have the topology keys so i have added it manually.
Name:               k0s-engineering-20210831-1436
Labels:
Annotations:        storage.alpha.kubernetes.io/migrated-plugins: kubernetes.io/cinder
CreationTimestamp:  Sat, 11 Sep 2021 00:19:49 +0400
Spec:
Drivers:
blockvolume.csi.oraclecloud.com:
Node ID:        k0s-engineering-20210831-1436
Topology Keys:  [failure-domain.beta.kubernetes.io/zone]
Events:

Hi @rohitChaware ,
This issue facing when mouting volume to pod.
The volume is created and attached to instance also i cross check this on oci also.
MountVolume.MountDevice failed for volume "csi-efe68875-f042-43f6-b744-614b1033d408" : kubernetes.io/csi: attacher.MountDevice failed to create newCsiDriverClient: driver name blockvolume.csi.oraclecloud.com not found in the list of registered CSI drivers

Hi @Bytelegion ,
Can you please share the following details in a new issue:

K8s cluster and node version
Output of the following pod running on the node where mount is failing:

kubectl describe pod <csi-oci-node-*> -n kube-system
Logs of sidecar container csi-node-registrar in the pod csi-oci-node-*

kubelet logs from the node where mount is failing

Thanks.


Make PixelSampler the depth-nerfacto default

The default pixel sampler for depth-nerfacto is PairPixelSampler. However, this is very slow due to mask erosion (so slow that it is basically unusable). I managed to speed it up a little here #3452. However, it is still much more efficient to use PixelSampler. Moreover, PairPixelSampler is only needed when using SPARSENERF_RANKING as the depth loss, but the default value is DS_NERF, which doesn't require PairPixelSampler. Hence, with the default depth loss, most people will be much better off with PixelSampler instead of PairPixelSampler.
I tested with both depth and masks using 50 images of resolution 1920x1440. Note, that PairPixelSampler is only slow when training with masks due to the need for mask erosion.
With PairPixelSampler:

With PixelSampler:

Closes #3446

Added a comment. It would be best to throw an exception in DepthNerfactoModel but that doesn't seem to be possible with the current structure.


Initial Native Screens, detox hangs waiting for “React Native (bundle load)”

Description
My app starts with a native iOS Screen.

iOS builds work
tests can open the app and start it running on the first screen
it sits on the following message

detox[4241] INFO:  [APP_STATUS] The system is busy with the following tasks:

Dispatch Queue
⏱ Queue: “Main Queue (<OS_dispatch_queue_main: com.apple.main-thread>)” with 1 work item

Run Loop
⏱ “Main Run Loop”

One-time Events
⏱ “React Native (bundle load)”

It will just timeout and then say this:

detox[4241] WARN:  [PENDING_REQUESTS] The app has not responded to the network requests below:
  (id = -1000) isReady: {}

Unresponded network requests might result in timeout errors in Detox tests.

...

    thrown: "Exceeded timeout of 120000 ms for a hook.
    Use jest.setTimeout(newTimeout) to increase the timeout value, if this is a long-running test."

      49 | describe('Dashboard e2e Screen', () => {
      50 |
    > 51 |   beforeAll(async () => {
         |   ^
      52 |     await device.launchApp();

If I manually click through the app myself until I reach the first react-native screen, then it seems to get past this step.

From my understanding, Detox should work on purely native apps, so is it really stuck waiting for a react-native screen?
I can see the bundler loading to 100% and going away at the top of the simulator so it seems like the app is totally ready to use, but detox doesn't seem to be able to confirm that things are ready.
Environment

Detox: 18.23.1
React Native: 0.65.1
Node: v14.17.4
Device: iOS simulator iPhone 11 - 14.4
OS: macOS Catalina 10.15.7
Test-runner: jest-circus

Not solved yet, but I downgraded detox to 17.14.9 and my tests are running now.

@suark sorry for the delay in getting to review this. Could you better describe that first (native) screen, or try to think about what could be keeping it busy? Screenshots / videos would be welcomed.

Hey @suark could you report that status here? Are you stuck with Detox v17, or have you managed to solve this issue?

i also have the exact same behaviour (might attempted detox v17, but 18 and 19 wont play ball). i do remember a few years ago with some v12.x.y, one of them would work eventually. i have no animation/transition/load/gif/nothing on the first native screen, but it still hangs (i assume it is not getting the 'stable' status, so not sending the right comms over).
i understand awaiting for no changes to then perform the next step is one of the advantages of detox, but could there be a flag where i set a max wait time and move to the next step regardless? i know this could create a potential false-positive crash, but at least it gives the ability to bruteforce testing.


Unable to start service etcd

When trying to run a single node on my own machine I'm getting the following error
TASK [etcd : Enable and start etcd service] ************************************
fatal: [20.***,***,***]: FAILED! => {"changed": false, "msg": "Unable to start service etcd: Job for etcd.service failed because the control process exited with error code.\nSee \"systemctl status etcd.service\" and \"journalctl -xeu etcd.service\" for details.\n"}

While running the command journalctl -u etcd -n 100 --output=short-precise  i'm getting these logs
Dec 19 13:27:46.360123 <IP_ADDRESS> bash[929752]: {"level":"info","ts":"2024-12-19T13:27:46.359824Z","caller":"embed/etcd.go:128","msg":"configuring peer listeners","listen-peer-urls":["http://<IP_ADDRESS>:2380"]}
Dec 19 13:27:46.360123 <IP_ADDRESS> bash[929752]: {"level":"error","ts":"2024-12-19T13:27:46.359912Z","caller":"embed/etcd.go:539","msg":"creating peer listener failed","error":"listen tcp <IP_ADDRESS>:2380: bind: cannot assign requested address","stacktrace":"go.etcd.io/etcd/server/v3/embed.configurePeerListeners\n\tgo.etcd.io/etcd/server/v3/embed/etcd.go:539\ngo.etcd.io/etcd/server/v3/embed.StartEtcd\n\tgo.etcd.io/etcd/server/v3/embed/etcd.go:132\ngo.etcd.io/etcd/server/v3/etcdmain.startEtcd\n\tgo.etcd.io/etcd/server/v3/etcdmain/etcd.go:228\ngo.etcd.io/etcd/server/v3/etcdmain.startEtcdOrProxyV2\n\tgo.etcd.io/etcd/server/v3/etcdmain/etcd.go:135\ngo.etcd.io/etcd/server/v3/etcdmain.Main\n\tgo.etcd.io/etcd/server/v3/etcdmain/main.go:40\nmain.main\n\tgo.etcd.io/etcd/server/v3/main.go:31\nruntime.main\n\truntime/proc.go:271"}

"error":"listen tcp <IP_ADDRESS>:2380: bind: cannot assign requested address"

The problem is that etcd is trying to listen to the address <IP_ADDRESS>:2380, but this address is not available for binding on your server.


Sidebar Compacted view

Hi Team,
When sidebar in "menu-sidebar left compacted" mode and if we click the "menu-item", so sidebar convert in " expanded" mode from "compacted" Mode.
Any config available?

Any update?

Unfortunately, there is no configuration available https://github.com/akveo/nebular/blob/master/src/framework/theme/components/sidebar/sidebar.component.ts#L244. Would be great if anyone could create a PR.

Was fixed in rc5 https://github.com/akveo/nebular/pull/158


Release/uan 2.3

Summary and Scope
Added several files:

XML manifests for both the Admin and Install Guides
JSON publication metadata files for both Guides
A build script that produces HTML5 output for HPESC, copies in the correct JSON, and zips up a bundle for the guides
Added a few empty files for section grouping in the XML manifests to mirror the structure of the current .mds files

This change enables us to publish our Markdown docs content directly to HPESC, allowing us to do away with PDF deliverable (PDFs can be generated from HPESC). More importantly, this replaces the current broken PDF build process and allows us to produce docs for the upcoming HPE Cray EX release.
This is a backwards incompatible fix for generating docs, but the previous docs build process was already broken. This only affects building docs.
Issues and Related PRs

Resolves TPCCMS-230
Change will also be needed in main

Testing
This was tested in my WSL2 Ubuntu environment with DITA-OT 3.7 and the HPE ITG test portal. Here are the links to both guides currently published there:

https://itg-int.support.hpe.com/hpesc/docDisplay?docId=crs8032_1en_us
https://itg-int.support.hpe.com/hpesc/docDisplay?docId=crs8033_1en_us

Test description:
Changes tested by completing the KM Direct Publishing process with the HTML5 zip bundles and inspecting the published content.
Risks and Mitigations
Since the header levels were changed in all the Markdown source files, the scripts for Hugo processing will probably need to be modified. DITA-OT requires that all source Markdown files:

Start with a level one header
Do not transition to a header level lower the immediate next one down. In other words, changing immediately from a level one header to a level three header is not allowed.

Pull Request Checklist

Version number NOT incremented
[x] Target branch correct
[x] CHANGELOG.md updated
[x] Testing is appropriate and complete, if applicable
No HPC Product Announcement

@keopp-hpe ok to merge? Is there anything you wanted to look at from a hugo perspective?

There will be some changes needed to the hugo docs generation code, but I'll sort that in another PR after this one merges.


kubernete: no need to generate sha256 files for licenses

During release we generate sha256 for all the files in the asset folder and upload to s3.  We have been doing this for everything in the asset folder, including the licenses files which feels unnecessary.  This tightens up the find a bit to just the tarballs and the binaries.
/hold
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: jaxesn
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [jaxesn]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: jaxesn, TerryHowe
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [TerryHowe,jaxesn]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

New changes are detected. LGTM label has been removed.

@jaxesn: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

kubernetes-1-19-presubmit
a550c83a2abfe61f976e85faa2f5a09b83148b74
link
/test kubernetes-1-19-presubmit

Full PR test history. Your PR dashboard.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@jaxesn: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

kubernetes-1-19-presubmit
a550c83a2abfe61f976e85faa2f5a09b83148b74
link
/test kubernetes-1-19-presubmit

kubernetes-1-18-presubmit
a550c83a2abfe61f976e85faa2f5a09b83148b74
link
/test kubernetes-1-18-presubmit

Full PR test history. Your PR dashboard.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@jaxesn: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

kubernetes-1-19-presubmit
a550c83a2abfe61f976e85faa2f5a09b83148b74
link
/test kubernetes-1-19-presubmit

kubernetes-1-18-presubmit
a550c83a2abfe61f976e85faa2f5a09b83148b74
link
/test kubernetes-1-18-presubmit

kubernetes-1-20-presubmit
a550c83a2abfe61f976e85faa2f5a09b83148b74
link
/test kubernetes-1-20-presubmit

Full PR test history. Your PR dashboard.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@jaxesn: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

kubernetes-1-19-presubmit
a550c83a2abfe61f976e85faa2f5a09b83148b74
link
/test kubernetes-1-19-presubmit

kubernetes-1-18-presubmit
a550c83a2abfe61f976e85faa2f5a09b83148b74
link
/test kubernetes-1-18-presubmit

kubernetes-1-20-presubmit
a550c83a2abfe61f976e85faa2f5a09b83148b74
link
/test kubernetes-1-20-presubmit

kubernetes-1-21-presubmit
a550c83a2abfe61f976e85faa2f5a09b83148b74
link
/test kubernetes-1-21-presubmit

Full PR test history. Your PR dashboard.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: jaxesn, TerryHowe
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [TerryHowe,jaxesn]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

New changes are detected. LGTM label has been removed.

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: jaxesn, kschumy, TerryHowe
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [TerryHowe,jaxesn,kschumy]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/unhold

/test all

/test all

New changes are detected. LGTM label has been removed.


Azure or AWS as server provider

Can AWS provide windows servers on Demand for testing or should we use Azure in stead. Document what is available and if it can be used for concourse workers and test platform for installation tests.

Packer works natively with both AWS, GCP, DO and Azure, so packer will not limit the cloud.

AWS support windows 2016 server b ase image which shares the same core as client 10. Based of the statement from @MadsNielsen and @MichaelMadsen the server should be sufficient as for testing and installation runs. The 2012 server should correspond to a windows 8 instance.

Azure does have client windows, but to limit the scope and work I think AWS the images they support are sufficient for out purposes. Since git phlow have no operation system dependencies like dll's etc. there operation system version and configuration is not strictly necessary, the AMI under any circumstances will contain a reproducible instance.

Another issue with client windows are updates. Windows server does not automatically update, and we will therefore not run into update issues and we can lock down on a windows version and configuration. That would not be possible with a client version without extensive configuration.

Pros and Cons
Azure
Pros

Windows native service

Server
Client

Windows client version available
CLI for mac and Linux
Cons
Cloud is two places

AWS
Pros

Everything on same cloud
CLI for mac and Linux and Windows
Support for windows server
Cons
No windows client support

Conclusion
AWS has what we need and is a cloud we are already familiar with. Our infrastructure is already running there and there are AMI that has the windows version we need, at least to the extend of my knowledge.   So we will go with AWS for now and use that for Workers and installation tests

Based on another internal discussion, the tool packer, azure came back into scope for the test setup. So we will base everything on windows worker clients


Desync

Product and Version [VS/VSCode]:
OS Version [macOS/Windows/Linux]:
Live Share Extension Version:
Target Platform or Language [e.g. Node.js]:
What were you doing when you encountered the desync?
How often have you encountered desyncs?

Thanks for reporting this, @Sr-Andres. Can you tell me more about what you were doing when you encountered this issue? Also, your logs may provide us with helpful information. You can access them via the Live Share: Export Logs command from the command palette (ctrl + shift + p) and attach them to this issue.

Closing due to inactivity.


fix cache changing

There are two problems, the migration lock able is unused, and only existed in one database,  and the postgraphile.cache file is generated on build so doesn't need to be checked in.

meh, wel that didn't work.