ceph - ceph-devel - 2024-06-25

Timestamp (UTC)Message
2024-06-25T02:29:41.675Z
<Vikram Kumar Vaidyam> How can we list them ?
2024-06-25T05:37:50.348Z
<Vikram Kumar Vaidyam> `rgw-orphan-list` gives me this error
```Available pools:
/usr/bin/rgw-orphan-list: line 39: ./lspools-20240625053651.error: Permission denied
Pool is "An error was encountered while running 'rados lspools'. Aborting.
Review file './lspools-20240625053651.error' for details.
***
*** WARNING: The results are incomplete. Do not use! ***
***".
Note: output files produced will be tagged with the current timestamp -- 20240625053651.
running 'rados ls' at Tue Jun 25 05:36:51 UTC 2024
running 'rados ls' on pool An.
/usr/bin/rgw-orphan-list: line 66: ./rados-20240625053651.intermediate: Permission denied
An error was encountered while running 'rados ls'. Aborting.
Review file './rados-20240625053651.error' for details.
***
*** WARNING: The results are incomplete. Do not use! ***
***```
2024-06-25T15:28:14.737Z
<Jason Burris> Trying to build Ceph and it keeps failing here.  Does something need to be set for the localization?
```[196/2268] dashboard frontend is being created
FAILED: src/pybind/mgr/dashboard/frontend/dist /home/jburris/code/ceph/build/src/pybind/mgr/dashboard/frontend/dist
cd /home/jburris/code/ceph/src/pybind/mgr/dashboard/frontend && . /home/jburris/code/ceph/build/src/pybind/mgr/dashboard/frontend/node-env/bin/activate && DASHBOARD_FRONTEND_LANGS="" npm run build:localize -- --output-path /home/jburris/code/ceph/build/src/pybind/mgr/dashboard/frontend/dist --progress=false && deactivate

> ceph-dashboard@0.0.0 build:localize
> node cd --env --pre && ng build --localize --output-path /home/jburris/code/ceph/build/src/pybind/mgr/dashboard/frontend/dist --progress=false

[cd.js] './angular.backup.json' already exists, restoring it into './angular.json'}
[cd.js] Preparing build of EN.
[cd.js] 'src/environments/environment.tpl.ts' was copied to 'src/environments/environment.ts'
[cd.js] 'src/environments/environment.tpl.ts' was copied to 'src/environments/environment.prod.ts'
[cd.js] Writing to ./angular.json
[cd.js] Placeholders were replace in 'src/environments/environment.ts'
[cd.js] Placeholders were replace in 'src/environments/environment.prod.ts'
    TypeScript compiler options "target" and "useDefineForClassFields" are set to "ES2022" and "false" respectively by the Angular CLI. To control ECMA version and features use the Browerslist configuration. For more information, see <https://angular.io/guide/build#configuring-browser-compatibility>
    NOTE: You can set the "target" to "ES2022" in the project's tsconfig to remove this warning.
- Generating localized bundles...
Killed
[203/2268] Performing build step for 'arrow_ext'```
2024-06-25T16:10:20.021Z
<Matthews Jose> Hello, I am currently trying to do a project where I use dataplane programming languages to parse the ceph msgr2 packets and perform various actions (e.g packet redirection, inspection, etc). In other to do this I need the exact packet format, so that I can parse the packets in p4 on the switch. Going through all the docs and trying to decode the packet using Wireshark I still am not able to understand the encoding format. To start with I am trying to decode all the CEPH heartbeat messages between OSD to OSD and OSD to MON, to track which entities are working properly within the network.
1. Does anyone have any experience parse the ceph packets in P4
2. Can someone tell me what I am doing wrong with the Wireshark captures it gives me the following error : [Dissector bug, protocol Ceph: ./epan/dissectors/packet-ceph.c:1521: failed assertion "d->convd" (Frame visited, but no saved state.)]" on wireshark 3.6
3. After the authentication has been performed and the session exchange packet has been sent, now lets say I want to exchange a keelalive2 message is this the frame format:
TCP -> 32 byte preamble -> u8 tag = 0x0E -> utime_t timestamp -> __le32 segment1 crc , looking at wireshark i see a 96bytes long message being exchanged regularly between the OSD and the MON, I am assuming it is the keepalive2 packet.
4. Does anyone have a other resources other than the docs, blogs, videos where they actually lookup the onwire data related to ceph messages?
Thanks a lot got helping with the questions, I am kind lost with this part any help would be greatly appreciated.
2024-06-25T16:13:30.508Z
<Casey Bodley> <https://docs.ceph.com/en/latest/dev/msgr2/#msgr2-protocol> may help there. pretty sure the wireshark dissector is outdated
2024-06-25T16:22:27.311Z
<Matthews Jose> Thank you for your reply.
1. I see so the Wireshark dissector is outdated, do you know when it was last working, which version of CEPH (git commit)
2. I have gone through that document, comparing it to what I capture on wireshark in the tcp payload, then going through the hex dump to see it is corresponds to what is written in the document it didn't match up for me.
for example very second or so the OSD will send the MON a 96 bytes long message, like this:
"0000   9a c1 f8 00 80 39 12 07 f6 1e cb 42 a7 82 6c de
0010   03 d4 ae 5c 45 95 4b 7a 78 68 ca b1 6c 7a f1 52
0020   79 61 ae 20 4d 61 41 34 51 6b e6 2c 7f 1a fd 5d
0030   c1 72 81 c3 39 7d 5d a4 3b 60 b4 06 d8 cd 48 a3
0040   4a f0 08 77 a4 04 c3 9c f0 25 fa d4 dc 33 1a 88
0050   8e c7 ef 27 25 f3 55 09 81 1b 14 db 78 91 72 ee"
2024-06-25T16:23:00.245Z
<Matthews Jose> I am guessing this is the keepalive2 but when I decode it manually it does not exactly align with the document
2024-06-25T16:27:02.117Z
<Casey Bodley> it looks like messenger v2 merged for the nautilus release in <https://github.com/ceph/ceph/pull/24546>. so the mimic release (git tag v13.2.10) is probably the last that worked with wireshark. unless i'm mistaken about the last time wireshark was updated

Any issue? please create an issue here and use the infra label.