Attach backend connection ID in the log
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
- #349 de @xhebox — fechado sem integrar
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 35/100
Direção de pesquisa
Comece pelo registro de conexões do backend em client/client_conn.go, incluindo a localização do log mostrada na linha 72, e rastreie o caminho do handshake que poderia obter ou associar o ID da conexão TiDB. O trabalho estará concluído quando os logs das conexões do backend contiverem um ID que possa ser correspondido de forma confiável ao log TiDB correspondente; a issue também identifica o registro do endereço local como uma alternativa a ser avaliada.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Development Task
Sometimes it's hard to troubleshoot without the backend connection ID.
E.g. when TiProxy prints
[2023/06/12 22:43:19.576 +00:00] [INFO] [main.proxy.conn] [client/client_conn.go:72] [fails to relay the connection] [connID=77] [client_addr=172.30.5.201:44527] [proxy-protocol=false] [backend_addr=db-tidb-1.db-tidb-peer.tidb1379661944646167024.svc:4000] ["quit source"="backend quit"] [error="this is an error from client: failed to read the connection: read tcp 172.30.5.9:6000->172.30.5.201:44527: i/o timeout"] [errorVerbose="this is an error from client: failed to read the connection: read tcp 172.30.5.9:6000->172.30.5.201:44527: i/o timeout\ngithub.com/pingcap/TiProxy/pkg/proxy/net.(*PacketIO).wrapErr\n\t/proxy/pkg/proxy/net/packetio.go:115\ngithub.com/pingcap/TiProxy/pkg/proxy/net.(*PacketIO).ReadPacket\n\t/proxy/pkg/proxy/net/packetio.go:199\ngithub.com/pingcap/TiProxy/pkg/proxy/client.(*ClientConnection).processMsg\n\t/proxy/pkg/proxy/client/client_conn.go:79\ngithub.com/pingcap/TiProxy/pkg/proxy/client.(*ClientConnection).Run\n\t/proxy/pkg/proxy/client/client_conn.go:62\ngithub.com/pingcap/TiProxy/pkg/proxy.(*SQLServer).onConn\n\t/proxy/pkg/proxy/proxy.go:190\ngithub.com/pingcap/TiProxy/pkg/proxy.(*SQLServer).Run.func2.1\n\t/proxy/pkg/proxy/proxy.go:132\ngithub.com/pingcap/TiProxy/lib/util/waitgroup.(*WaitGroup).Run.func1\n\t/proxy/lib/util/waitgroup/waitgroup.go:33\nruntime.goexit\n\t/usr/lib/go/src/runtime/asm_arm64.s:1172"]
It's hard to find why TiDB closes the connection, until I find this log in TiDB:
[2023/06/12 22:42:23.064 +00:00] [INFO] [conn.go:1124] ["read packet timeout, close this connection"] [conn=8770920803001697179] [idle=8h0m0.000026656s] [waitTimeout=28800] [error="read tcp 172.30.4.121:4000->172.30.5.9:60016: i/o timeout"]
If we have the backend connection ID in the log, we can quickly find the TiDB log through the backend connection ID.
Since TiDB connection is 8 bytes but it returns 4 bytes to TiProxy in the handshake, it's not easy to figure out the real backend connection ID. I think it's fine to query TiDB with select connection_id() once the handshake succeeds.
An alternative is to log the local address(especially the port) to the backend connection, because TiDB also prints the TiProxy address.
- Linguagem predominante
- Go
- Estrelas
- 74
- Forks
- 40
- Merge médio
- 13h 16min
- PRs com merge (30d)
- 15
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de pingcap/tiproxy
-
migration:bb7133-tiproxy
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 1 dia
-
migration:bb7133-tiproxy
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 1 dia
-
[Rust-dataplane] Migration backend handshake must preserve CONNECT_WITH_DB when current-db emptyAbertamigration:bb7133-tiproxy
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 64/100
Mantenedores costumam responder em até 1 dia
-
[Rust-dataplane] Migration must not force CONNECT_ATTRS on backend lacking it with empty attrsAbertamigration:bb7133-tiproxy
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 77/100
Mantenedores costumam responder em até 1 dia
-
migration:bb7133-tiproxy
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 82/100
Mantenedores costumam responder em até 1 dia
Todas as issues de pingcap/tiproxy
Issues semelhantes
-
bug converter
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
grafana/sigma-rule-deployment#435 ·
Mantenedores costumam responder em até 1 dia
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
google/go-containerregistry#2491 ·
Mantenedores costumam responder em até 1 dia
-
stranded-follow-up sweep trusts any issue whose body carries the marker as the tracking issueAbertatype:bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
nightgauge/nightgauge#2688 ·
Mantenedores costumam responder em até 1 dia
-
aiac enhancement
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 1 dia