GitShow/facebook/squangle
facebook

squangle

SQuangLe is a C++ API for accessing MySQL servers

by facebook
Star on GitHubFork

C++

126 stars55 forks151 contributorsActive · 5d agoSince 2015

Meet the team

See all 151 on GitHub →
jkedgar
jkedgar78 contributions
abal147
abal14749 contributions
aditya-jalan
aditya-jalan30 contributions
drilibo
drilibo29 contributions
jrahman-zz
jrahman-zz24 contributions
yfeldblum
yfeldblum20 contributions
sarangbh
sarangbh15 contributions
maxgeorg
maxgeorg13 contributions

Languages

View on GitHub →
C++99.9%
C0.1%

Commit activity

Last 12 weeks · 32 commits

Full graph →

Community health

4 of 6 standards met

Community profile →
75
✓README✓License✓Contributing✓Code of Conduct○Issue Template○PR Template

Recent PRs & issues

Active · 2 discussions · Last activity 5d ago
See all on GitHub →
y3llowcake
AsyncConnectionPool::CleanUpTimer segfaultsOpenIssue

We (slack) have been seeing a very slow trickle of segfaults from code paths in the cleanup timer in our production environment. This issue is not new, it's been occurring for a while. I do not yet have a repro for these segfaults. Relevant version of squangle we are running: There are two unique stack traces we see. The first is more frequent and appears to occur on a call to std::unordered_map::erase(): 0:string"raise at ../sysdeps/unix/sysv/linux/raise.c:51" 1:string"HPHP::bt_handler at /build/hhvm/hphp/runtime/base/crash-reporter.cpp:270" 2:string"facebook::common::mysql_client::AsyncMysqlClient::activeConnectionRemoved at /build/hhvm/third-party/squangle/src/squangle/mysql_client/AsyncMysqlClient.h:357" 3:string"facebook::common::mysql_client::MysqlConnectionHolder::~MysqlConnectionHolder at /build/hhvm/third-party/squangle/squangle/mysql_client/Connection.cpp:63" 4:string"facebook::common::mysql_client::MysqlConnectionHolder::~MysqlConnectionHolder at /build/hhvm/third-party/squangle/squangle/mysql_client/Connection.cpp:64" 5:string"std::default_delete::operator() at /usr/include/c++/7/bits/unique_ptr.h:78" 6:string"std::unique_ptr::operator() at /build/hhvm/third-party/squangle/squangle/mysql_client/AsyncMysqlClient.cpp:80" 17:string"std::__invoke_impl at /usr/include/c++/7/bits/invoke.h:95" 19:string"std::thread::_Invoker at /usr/include/c++/7/thread:234" 20:string"std::thread::_Invoker at /usr/include/c++/7/thread:243" 21:string"std::thread::_State_impl at /usr/include/c++/7/thread:186" 22:string"start_thread at pthread_create.c:463" 23:string"clone at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95" new AsyncMysqlConnectionPool(darray[ 'per_key_connection_limit' => 20, 'idle_timeout_micros' => 4000000, 'expiration_policy' => "IdleTime", ]); ```

y3llowcake · 3y ago

Recent fixes

View closed PRs →
mszabo-wikia
Add pool-source flag for DB connectionsMergedPR

It would be useful for userland Hack code in Slack to determine whether a connection obtained via an HHVM async_mysql connection pool was recycled from the pool or freshly opened, to allow more granular instrumentation than what pool-level stats currently provide. See https://github.com/facebook/hhvm/issues/8013 for the full rationale. Add two new connection fields that expose this information. A followup diff will expose these to HHVM/Hack.

mszabo-wikia · 4mo ago
mszabo-wikia
Fix OSS buildMergedPR

Squangle as included in HHVM OSS currently doesn't compile. Apply fixes as needed to make the OSS build functional again. Use a new SQUANGLE_OSS compile definition for OSS-specific code and to conditionally include Meta-internal headers. Introduce OSS-specific shims for OdsCounterHelper and checked_memcpy(), which are internal. Use fmt::underlying() to format enums that do not have a corresponding formatter to avoid errors on debug builds with newer fmtlib versions. Move Query constructors from the header to the implementation to avoid pointer arithmetic with an incomplete definition of QueryArgument when populating .

mszabo-wikia · 1y ago
mszabo-wikia
Fix -Winconsistent-override in MysqlConnectPoolOperationImplMergedPR

clang 19 reports -Winconsistent-override for this header:

mszabo-wikia · 1y ago
Structured data for AI agents

Repository: facebook/squangle. Description: SQuangLe is a C++ API for accessing MySQL servers Stars: 126, Forks: 55. Primary language: C++. Languages: C++ (99.9%), C (0.1%). Open PRs: 0, open issues: 2. Last activity: 5d ago. Community health: 75%. Top contributors: jkedgar, abal147, aditya-jalan, drilibo, jrahman-zz, yfeldblum, sarangbh, maxgeorg, r-barnes, jtwarren and others.

·@ofershap

Replace github.com with gitshow.dev