Giter Club home page Giter Club logo

Comments (8)

jadonclegg avatar jadonclegg commented on September 26, 2024 1

Here's the tshark output of a pcap ran for a few minutes on the container using tcpdump -i lo -w lo.pcap while the migration was running. Can't share the full pcap because of the amount of unencrypted sql / data going through, I'd rather not have to go through the list and check every packet for sensitive data and edit it out.

You can see around 2.7s in (near the end of the file) all tcp traffic stops until around 121s in. The migration never finishes, and I stop things manually, although I haven't let it go for more than about 15 min. But usually the hundreds of migrations (when using slirp4netns) take less than 2 min total, whereas this one migration gets stuck for over 10 min using pasta with seemingly nothing actually happening.

tshark.txt

from podman.

jadonclegg avatar jadonclegg commented on September 26, 2024 1

@sbrivio-rh your patch appears to have fixed the issue. After compiling and installing it, I ran the migration three times in a row and it worked every time. I then reverted to the commit before yours, installed again, and the migration got stuck at the same place it was happening before installing your patched version.

from podman.

sbrivio-rh avatar sbrivio-rh commented on September 26, 2024

A packet capture would be nice to have, you can ask pasta to save one with e.g. --network=pasta:--pcap,/tmp/postgres.pcap.

You can drop packets you don't want to share using pcapedit or even Wireshark, or have a look and share what seems to be relevant with a tshark output.

from podman.

jadonclegg avatar jadonclegg commented on September 26, 2024

Running a packet capture seems to only pick up a few multicast listener report message v2 and router solicitation packets, without picking up any of the postgres traffic. Are there options I'm missing? After letting the container run for several minutes and running the java app that runs the db migrations, I can see the app contacting the db and doing various things, but I only get about 12 total packets in the pcap.

podman run --rm -it --name postgres --network pasta:--pcap,/tmp/postgres.pcap -v pg:/var/lib/postgresql/data -p 5432:5432 -e POSTGRES_PASSWORD=postgres docker.io/postgres:14

pcap.zip

from podman.

sbrivio-rh avatar sbrivio-rh commented on September 26, 2024

Running a packet capture seems to only pick up a few multicast listener report message v2 and router solicitation packets, without picking up any of the postgres traffic. Are there options I'm missing?

Ah, no, my bad: pasta implements a tap bypass path for local connections that splices TCP sockets between container and host directly, to improve throughput by avoiding Layer-2 / Layer-4 translations where not needed, see the appendage in this diagram. Packets on that path are not captured (because they're not really packets -- we just move the Layer-4 payload around).

See also #22575 (comment) (that issue might be related, but we're not sure there's an issue in pasta yet) and the following comment.

To capture traffic in this case, tcpdump -i lo -w lo.pcap in the container should do the trick.

from podman.

sbrivio-rh avatar sbrivio-rh commented on September 26, 2024

You can see around 2.7s in (near the end of the file) all tcp traffic stops until around 121s in.

Thanks a lot for the capture, this seems to be compatible with the current findings from #22575 -- I'm trying to reproduce that at the moment.

from podman.

sbrivio-rh avatar sbrivio-rh commented on September 26, 2024

@jadonclegg, assuming that #22575 is in fact the same issue, I just posted a patch to fix this at https://archives.passt.top/passt-dev/[email protected]/ (see also #22575 (comment)).

It would be great if you could test it by building from source (something on the lines of git clone git://passt.top/passt; cd passt; curl https://archives.passt.top/passt-dev/[email protected]/raw | git am; prefix=/usr sudo make install).

from podman.

sbrivio-rh avatar sbrivio-rh commented on September 26, 2024

This is now fixed in passt version 2024_05_10.7288448 and the corresponding Fedora 40 update.

from podman.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.