Re: [ovs-discuss] ovsdb-server fails to start and report one unreferenced file path doesn't exist

2024-04-25 Thread Wang, Fei2 via discuss
If that is the case,  the size of /usr/sbin/ovsdb-server and 
/usr/local/sbin/ovsdb-server should be exactly the same, isn't it? 

-Original Message-
From: Adrian Moreno  
Sent: Thursday, April 25, 2024 3:10 PM
To: Wang, Fei2 ; Ilya Maximets ; 
b...@openvswitch.org
Subject: Re: [ovs-discuss] ovsdb-server fails to start and report one 
unreferenced file path doesn't exist



On 4/25/24 04:29, Wang, Fei2 via discuss wrote:
> The ovs was configured by my colleague, I am trying to help with the mess-up. 
> Took a deep dive, found two obsdb-server binary as you can see below:
> 
> # ls -al /usr/sbin/ovsdb-server
> -rwxr-xr-x 1 root root 16172416 Apr 18 18:59 /usr/sbin/ovsdb-server 
> gnr-sp-03:~ # ls -al /usr/local/sbin/ovsdb-server -rwxr-xr-x 1 root 
> root 20026112 Apr 24 11:06 /usr/local/sbin/ovsdb-server
> 
> Mysterious to me where does /usr/sbin/ovsdb-server come from? None of them 
> can be sourced to a rpm package, and both reports the same version number. I 
> searched openvswitch keyword in /var/log/zypper.log and 
> /var/log/zypp/history. Any insight what could be the reason? Appreciate it.
> 

Someone must have built it with "--prefix=/usr/".

--
Adrián

___
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss


Re: [ovs-discuss] Clustered ovsdb-server 3.1 to 3.2+ upgrade question

2024-04-25 Thread Vladislav Odintsov via discuss
Thank you for your answers!

> On 25 Apr 2024, at 13:01, Ilya Maximets  wrote:
> 
> On 4/25/24 11:51, Vladislav Odintsov wrote:
>> 
>> 
>>> On 25 Apr 2024, at 12:20, Ilya Maximets  wrote:
>>> 
>>> On 4/25/24 10:53, Vladislav Odintsov wrote:
 Hi Ilya,
 
 I’ve got question regarding upgrade of clustered ovsdb-servers from 3.1 to 
 3.2+ version.
 ovsdb(7) states that the recommended path for upgrade is to upgrade 
 ovsdb-servers one-by-one
 and that after upgrade ovsdb-server should be started with option 
 --disable-file-no-data-conversion
 and after whole cluster is upgradede, it is needed to enable no-data 
 conversion via appctl.
 
 I’ve ran through code and did some upgrade tests, so my question is:
 Do I understand correctly, that if there is no necessity to call schema 
 conversion after start
 and before end of cluster upgrade, so it is allowed just to restart 
 ovsdb-servers without
 --disable-file-no-data-conversion option and this will not have any 
 downsides?
>>> 
>>> Simply re-starting removing the option is enough.  There is no need
>>> to enable specifically via appctl in this case.
>> 
>> I’m talking about a bit another thing:
>> I want not to start each upgraded ovsdb-server with 
>> --disable-file-no-data-conversion at all,
>> because it guaranteed in my case that there will be no schema conversions 
>> before full cluster
>> upgrade is finished.
>> So, in this case there will be no need to enable it back via appctl or 
>> removing ''disable"
>> option and restart.
>> 
>> Am I right, or I’m missing something?
> 
> Ah, sorry.  If you're sure that there will be no conversion
> before all the servers are upgraded, then it should be fine
> to just upgrade as usual.
> 
>> 
>>> 
>>> Also, we did actually backport parts of the format change to 3.1.
>>> It should be in v3.1.2 release and newer.  So, technically, if you're
>>> performing upgrade from v3.1.2+, it should be safe to just upgrade as
>>> usual.  ovsdb-servr v3.1.2 understands new database format, though it
>>> can't produce it on its own.  See the following commit on branch-3.1:
>>> 
>>>  9529e9aa967c ("ovsdb: Allow conversion records with no data in a clustered 
>>> storage.")
>> 
>> Hmm, nice. But mine source version is 3.0 and this is not applicable :)
> 
> The same change should be available in v3.0.5.
> 
>> 
>>> 
>>> It would be painful to document all the combinations of minor versions,
>>> so it's not an officially supported upgrade path, but it is there if
>>> you know what are you doing.
>> 
>> Sure.
>> 
>>> 
>>> Best regards, Ilya Maximets.
>> 
>> 
>> Regards,
>> Vladislav Odintsov


Regards,
Vladislav Odintsov

___
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss


Re: [ovs-discuss] Clustered ovsdb-server 3.1 to 3.2+ upgrade question

2024-04-25 Thread Ilya Maximets via discuss
On 4/25/24 11:51, Vladislav Odintsov wrote:
> 
> 
>> On 25 Apr 2024, at 12:20, Ilya Maximets  wrote:
>>
>> On 4/25/24 10:53, Vladislav Odintsov wrote:
>>> Hi Ilya,
>>>
>>> I’ve got question regarding upgrade of clustered ovsdb-servers from 3.1 to 
>>> 3.2+ version.
>>> ovsdb(7) states that the recommended path for upgrade is to upgrade 
>>> ovsdb-servers one-by-one
>>> and that after upgrade ovsdb-server should be started with option 
>>> --disable-file-no-data-conversion
>>> and after whole cluster is upgradede, it is needed to enable no-data 
>>> conversion via appctl.
>>>
>>> I’ve ran through code and did some upgrade tests, so my question is:
>>> Do I understand correctly, that if there is no necessity to call schema 
>>> conversion after start
>>> and before end of cluster upgrade, so it is allowed just to restart 
>>> ovsdb-servers without
>>> --disable-file-no-data-conversion option and this will not have any 
>>> downsides?
>>
>> Simply re-starting removing the option is enough.  There is no need
>> to enable specifically via appctl in this case.
> 
> I’m talking about a bit another thing:
> I want not to start each upgraded ovsdb-server with 
> --disable-file-no-data-conversion at all,
> because it guaranteed in my case that there will be no schema conversions 
> before full cluster
> upgrade is finished.
> So, in this case there will be no need to enable it back via appctl or 
> removing ''disable"
> option and restart.
> 
> Am I right, or I’m missing something?

Ah, sorry.  If you're sure that there will be no conversion
before all the servers are upgraded, then it should be fine
to just upgrade as usual.

> 
>>
>> Also, we did actually backport parts of the format change to 3.1.
>> It should be in v3.1.2 release and newer.  So, technically, if you're
>> performing upgrade from v3.1.2+, it should be safe to just upgrade as
>> usual.  ovsdb-servr v3.1.2 understands new database format, though it
>> can't produce it on its own.  See the following commit on branch-3.1:
>>
>>  9529e9aa967c ("ovsdb: Allow conversion records with no data in a clustered 
>> storage.")
> 
> Hmm, nice. But mine source version is 3.0 and this is not applicable :)

The same change should be available in v3.0.5.

> 
>>
>> It would be painful to document all the combinations of minor versions,
>> so it's not an officially supported upgrade path, but it is there if
>> you know what are you doing.
> 
> Sure.
> 
>>
>> Best regards, Ilya Maximets.
> 
> 
> Regards,
> Vladislav Odintsov
> 

___
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss


Re: [ovs-discuss] Clustered ovsdb-server 3.1 to 3.2+ upgrade question

2024-04-25 Thread Vladislav Odintsov via discuss


> On 25 Apr 2024, at 12:20, Ilya Maximets  wrote:
> 
> On 4/25/24 10:53, Vladislav Odintsov wrote:
>> Hi Ilya,
>> 
>> I’ve got question regarding upgrade of clustered ovsdb-servers from 3.1 to 
>> 3.2+ version.
>> ovsdb(7) states that the recommended path for upgrade is to upgrade 
>> ovsdb-servers one-by-one
>> and that after upgrade ovsdb-server should be started with option 
>> --disable-file-no-data-conversion
>> and after whole cluster is upgradede, it is needed to enable no-data 
>> conversion via appctl.
>> 
>> I’ve ran through code and did some upgrade tests, so my question is:
>> Do I understand correctly, that if there is no necessity to call schema 
>> conversion after start
>> and before end of cluster upgrade, so it is allowed just to restart 
>> ovsdb-servers without
>> --disable-file-no-data-conversion option and this will not have any 
>> downsides?
> 
> Simply re-starting removing the option is enough.  There is no need
> to enable specifically via appctl in this case.

I’m talking about a bit another thing:
I want not to start each upgraded ovsdb-server with 
--disable-file-no-data-conversion at all, because it guaranteed in my case that 
there will be no schema conversions before full cluster upgrade is finished.
So, in this case there will be no need to enable it back via appctl or removing 
''disable" option and restart.

Am I right, or I’m missing something?

> 
> Also, we did actually backport parts of the format change to 3.1.
> It should be in v3.1.2 release and newer.  So, technically, if you're
> performing upgrade from v3.1.2+, it should be safe to just upgrade as
> usual.  ovsdb-servr v3.1.2 understands new database format, though it
> can't produce it on its own.  See the following commit on branch-3.1:
> 
>  9529e9aa967c ("ovsdb: Allow conversion records with no data in a clustered 
> storage.")

Hmm, nice. But mine source version is 3.0 and this is not applicable :)

> 
> It would be painful to document all the combinations of minor versions,
> so it's not an officially supported upgrade path, but it is there if
> you know what are you doing.

Sure.

> 
> Best regards, Ilya Maximets.


Regards,
Vladislav Odintsov

___
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss


Re: [ovs-discuss] Clustered ovsdb-server 3.1 to 3.2+ upgrade question

2024-04-25 Thread Ilya Maximets via discuss
On 4/25/24 10:53, Vladislav Odintsov wrote:
> Hi Ilya,
> 
> I’ve got question regarding upgrade of clustered ovsdb-servers from 3.1 to 
> 3.2+ version.
> ovsdb(7) states that the recommended path for upgrade is to upgrade 
> ovsdb-servers one-by-one
> and that after upgrade ovsdb-server should be started with option 
> --disable-file-no-data-conversion
> and after whole cluster is upgradede, it is needed to enable no-data 
> conversion via appctl.
> 
> I’ve ran through code and did some upgrade tests, so my question is:
> Do I understand correctly, that if there is no necessity to call schema 
> conversion after start
> and before end of cluster upgrade, so it is allowed just to restart 
> ovsdb-servers without
> --disable-file-no-data-conversion option and this will not have any downsides?

Simply re-starting removing the option is enough.  There is no need
to enable specifically via appctl in this case.

Also, we did actually backport parts of the format change to 3.1.
It should be in v3.1.2 release and newer.  So, technically, if you're
performing upgrade from v3.1.2+, it should be safe to just upgrade as
usual.  ovsdb-servr v3.1.2 understands new database format, though it
can't produce it on its own.  See the following commit on branch-3.1:

  9529e9aa967c ("ovsdb: Allow conversion records with no data in a clustered 
storage.")

It would be painful to document all the combinations of minor versions,
so it's not an officially supported upgrade path, but it is there if
you know what are you doing.

Best regards, Ilya Maximets.
___
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss


Re: [ovs-discuss] Urgent Help needed: OVS 3.2.2 Strange TC DROPs

2024-04-25 Thread Adrian Moreno via discuss



On 4/23/24 17:39, Gavin McKee wrote:

If you look at both traces (non working and working) the thing that
stands out to me is this

At line 10 in the working file the following entry exists
 ct_state NEW tcp (SYN_SENT) orig [172.27.16.11.38793 >
172.27.31.189.9100] reply [172.27.31.189.9100 > 172.27.16.11.38793]
zone 195



That's quite interesting, indeed. It means that in the working scenario, there 
is already a conntrack entry for the connection even though it's the TCP SYN and 
there is no flow in the kernel cache (the packet get's upcalled).


Is the client reusing source ports by any chance?

The fact that the conntrack info is already available makes the working case 
skip an upcall.


Also, I'm curious about the drop in the TC_INGRESS. Are you using tc-offload? 
Can you dump the tc filter rules for your port?




his doesn't happen in the non working file - I just see the following

3904992932904126 [swapper/125] 0 [kr] queue_userspace_packet
#ddf92049d47aeff1d0b662562 (skb 18382861792850905088) n 4
 if 38 (enp148s0f0_1) rxif 38 172.27.16.11.42303 >
172.27.31.189.9100 ttl 64 tos 0x0 id 36932 off 0 [DF] len 52 proto TCP
(6) flags [S] seq 2266263186 win 42340
 upcall_enqueue (miss) (125/3904992932890052) q 3682874017 ret 0
   + 3904992932907247 [swapper/125] 0 [kr] ovs_dp_upcall
#ddf92049d47aeff1d0b662562 (skb 18382861792850905088) n 5
 if 38 (enp148s0f0_1) rxif 38 172.27.16.11.42303 >
172.27.31.189.9100 ttl 64 tos 0x0 id 36932 off 0 [DF] len 52 proto TCP
(6) flags [S] seq 2266263186 win 42340
 upcall_ret (125/3904992932890052) ret 0

I am wondering if a failure to track the ct_state SYN is causing the
returning ACK to drop ?

   + 3904992936344421 [swapper/125] 0 [tp] skb:kfree_skb
#ddf9204d21c48ff1d0b676c330c00 (skb 18382861792850913792) n 3 drop
(TC_INGRESS)
 if 33 (genev_sys_6081) rxif 33 172.27.31.189.9100 >
172.27.16.11.42303 ttl 64 tos 0x0 id 0 off 0 [DF] len 52 proto TCP (6)
flags [S.] seq 605271182 ack 2266263187 win 42340

On Mon, 22 Apr 2024 at 18:54, Gavin McKee  wrote:


Ok @Adrian Moreno @Flavio Leitner

Two more detailed Retis traces attached.  One is not working - the
same session that I can't establish a TCP session to on port 9010
172.27.16.11.42303 > 172.27.31.189.9100

Then I restart Open vSwtich and try again
172.27.16.11.38793 > 172.27.31.189.9100 (this works post restart)

It looks to me in the non working example that we -
SEND SYN -> exits the tunnel interface genev_sys_6081 via
enp148s0f0np0 - exactly as expected
RECV ACK -> tcp_gro_receive then -> net:netif_receive_skb where we hit
drop (TC_INGRESS)

After a restart things seem to be very different

Any ideas where to look next ? >>
On Mon, 22 Apr 2024 at 12:49, Gavin McKee  wrote:


Hi Guys,


We have had another occurrence of the issue today.

In short - we try to open a connection from 172.27.22.90 ->
172.27.31.189 on port 9100.  We see the SYN being received and the ACK
being sent from the server back to the client 172.27.22.90.  The
server retransmits the ACK as it's never received by the server.

When we run retis on the server side the ACK is being dropped - see
(drop (TC_INGRESS) below)

retis -p generic collect -c ovs,ct --ovs-track -f 'port 9100'

(filtered on the ephemeral TCP port 40735)

3879878550398423 [swapper/125] 0 [tp] net:napi_gro_receive_entry
#dc8ba9ec4a5d7ff4167e4dd466000 (skb 18393096588613658112) n 0
   if 37 (enp148s0f0_1)
   + 3879878550401407 [swapper/125] 0 [k] tcp_gro_receive
#dc8ba9ec4a5d7ff4167e4dd466000 (skb 18393096588613658112) n 1
 if 37 (enp148s0f0_1) 172.27.22.90.40735 > 172.27.31.189.9100 ttl
64 tos 0x0 id 31996 off 0 [DF] len 52 proto TCP (6) flags [S] seq
1864480616 win 42340
   + 3879878550402477 [swapper/125] 0 [tp] net:netif_receive_skb
#dc8ba9ec4a5d7ff4167e4dd466000 (skb 18393096588613658112) n 2
 if 37 (enp148s0f0_1) 172.27.22.90.40735 > 172.27.31.189.9100 ttl
64 tos 0x0 id 31996 off 0 [DF] len 52 proto TCP (6) flags [S] seq
1864480616 win 42340
   + 3879878550409874 [swapper/125] 0 [tp] net:net_dev_queue
#dc8ba9ec4a5d7ff4167e4dd466000 (skb 18393096588613658112) n 3
 if 43 (genev_sys_6081) rxif 37 172.27.22.90.40735 >
172.27.31.189.9100 ttl 64 tos 0x0 id 31996 off 0 [DF] len 52 proto TCP
(6) flags [S] seq 1864480616 win 42340
   + 3879878550411535 [swapper/125] 0 [tp] net:net_dev_start_xmit
#dc8ba9ec4a5d7ff4167e4dd466000 (skb 18393096588613658112) n 4
 if 43 (genev_sys_6081) rxif 37 172.27.22.90.40735 >
172.27.31.189.9100 ttl 64 tos 0x0 id 31996 off 0 [DF] len 52 proto TCP
(6) flags [S] seq 1864480616 win 42340
   + 3879878550419012 [swapper/125] 0 [k] skb_scrub_packet
#dc8ba9ec4a5d7ff4167e4dd466000 (skb 18393096588613658112) n 5
 if 43 (genev_sys_6081) rxif 37 172.27.22.90.40735 >
172.27.31.189.9100 ttl 64 tos 0x0 id 31996 off 0 [DF] len 52 proto TCP
(6) flags [S] seq 1864480616 win 42340
   + 3879878550421222 [swapper/125] 0 [k] skb_scrub_packet
#dc8ba9ec4a5d7ff4167e4dd466000 (skb 18393096588613658112) n 6
 if 43 (gen

[ovs-discuss] Clustered ovsdb-server 3.1 to 3.2+ upgrade question

2024-04-25 Thread Vladislav Odintsov via discuss
Hi Ilya,

I’ve got question regarding upgrade of clustered ovsdb-servers from 3.1 to 3.2+ 
version.
ovsdb(7) states that the recommended path for upgrade is to upgrade 
ovsdb-servers one-by-one and that after upgrade ovsdb-server should be started 
with option --disable-file-no-data-conversion and after whole cluster is 
upgradede, it is needed to enable no-data conversion via appctl.

I’ve ran through code and did some upgrade tests, so my question is:
Do I understand correctly, that if there is no necessity to call schema 
conversion after start and before end of cluster upgrade, so it is allowed just 
to restart ovsdb-servers without --disable-file-no-data-conversion option and 
this will not have any downsides?

Regards,
Vladislav Odintsov

___
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss


Re: [ovs-discuss] ovsdb-server fails to start and report one unreferenced file path doesn't exist

2024-04-25 Thread Adrian Moreno via discuss



On 4/25/24 04:29, Wang, Fei2 via discuss wrote:

The ovs was configured by my colleague, I am trying to help with the mess-up. 
Took a deep dive, found two obsdb-server binary as you can see below:

# ls -al /usr/sbin/ovsdb-server
-rwxr-xr-x 1 root root 16172416 Apr 18 18:59 /usr/sbin/ovsdb-server
gnr-sp-03:~ # ls -al /usr/local/sbin/ovsdb-server
-rwxr-xr-x 1 root root 20026112 Apr 24 11:06 /usr/local/sbin/ovsdb-server

Mysterious to me where does /usr/sbin/ovsdb-server come from? None of them can 
be sourced to a rpm package, and both reports the same version number. I 
searched openvswitch keyword in /var/log/zypper.log and /var/log/zypp/history. 
Any insight what could be the reason? Appreciate it.



Someone must have built it with "--prefix=/usr/".

--
Adrián

___
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss