FastAPI-MySql-SqlAlchemy Intermittent Broken Pipe Error

yavuzakyaziciHOBBY

a year ago

Hi everyone

I keep getting BrokenPipeError: [Errno 32] Broken pipe error from MySQL using SqlAlchemy. It usually happens right when logging in or refreshing tokens. Meaning.. right at the first use after not using for a while. I am the only user plus a few test users so the API service is not continuously used. Did anybody see this? What could be the reason. Could it be a time out issue with MySql?

0 Replies

a year ago

are you getting this error from the mysql service or your fastapi service?


yavuzakyaziciHOBBY

a year ago

Sorry.. Project Id: dba6cd6e-5ea1-494c-b77f-81377e24fbde


yavuzakyaziciHOBBY

a year ago

I think from SqlAlchemy


yavuzakyaziciHOBBY

a year ago

Copying one by one takes long so I took a screenshot

1250695933990273000


yavuzakyaziciHOBBY

a year ago

Sql Alchemy says:…


yavuzakyaziciHOBBY

a year ago

OperationalError
Exception raised for errors that are related to the database’s operation and not necessarily under the control of the programmer, e.g. an unexpected disconnect occurs, the data source name is not found, a transaction could not be processed, a memory allocation error occurred during processing, etc.

This error is a DBAPI Error and originates from the database driver (DBAPI), not SQLAlchemy itself.


yavuzakyaziciHOBBY

a year ago

1250696412421951500


yavuzakyaziciHOBBY

a year ago

The link at the end of the screenshot


yavuzakyaziciHOBBY

a year ago


yavuzakyaziciHOBBY

a year ago

It usually happens, after first login if I have not used for a while. Or… again after not using right at the time of refreshing JWT tokens


a year ago

are you connecting to the database via the private network?


yavuzakyaziciHOBBY

a year ago

No.


yavuzakyaziciHOBBY

a year ago

Should I?


yavuzakyaziciHOBBY

a year ago

I guess I should


a year ago

yes absolutely


yavuzakyaziciHOBBY

a year ago

ok. Will try that. I would have to change the connection string for that.


a year ago

yep!


yavuzakyaziciHOBBY

a year ago

I am sure there is an example but If I cannot find it, I'll check out the docs


a year ago

what is the variable you use for the database url?


yavuzakyaziciHOBBY

a year ago

SQLALCHEMYDATABASEURL


a year ago

what is the name of your mysql service


a year ago

and is the mysql service in the same project as the fastapi service?


yavuzakyaziciHOBBY

a year ago

MySQL-9_Bm


yavuzakyaziciHOBBY

a year ago

Yes, they are in the same project


a year ago

SQLALCHEMY_DATABASE_URL=${{MySQL-9_Bm.MYSQL_PRIVATE_URL}}


a year ago

as easy as that


yavuzakyaziciHOBBY

a year ago

Great.. Will do.. Thanks a lot for this


yavuzakyaziciHOBBY

a year ago

OK. I kept everything the same on the SqlAlchemy connection string, except the URL. For the URL I just used the MySQL service name MySQL-9_Bm and not even the port number since it was suggested in the network settins of MySQL… Everything worked.


a year ago

so what is SQLALCHEMY_DATABASE_URL set to now


a year ago

sans the password


yavuzakyaziciHOBBY

a year ago

So, If I don't get the broken pipe error again, this means it was because I was using the Newtork URL


yavuzakyaziciHOBBY

a year ago

mysql+pymysql://username:mypassword@mysql-9bm/database_Name


yavuzakyaziciHOBBY

a year ago

That is an example SqlAlchemy URL for pymysql driver


a year ago

that works too


yavuzakyaziciHOBBY

a year ago

Yeah, I don't know why I did not setup the link internally. Network URL does not make sense when I have the chance to use internal. Thanks again Brody


a year ago

no problem!


yavuzakyaziciHOBBY

a year ago

Yes, it did not happen. No broken pipe errors all day. I would have already gotten a few. So this fixed it 🙂 Thanks


a year ago

happy to hear that!