Tencent/phxsql
A high availability MySQL cluster that guarantees data consistency between a master and slaves.
- Repository: https://github.com/Tencent/phxsql
- Commit:
c5d689756b57d2d8b7f7e3ea932e523970fe59b8 - Generated: 2026-11-13T23:41:58+00:00
- Scorer 0.1.0, scoring prov-4+qual-2+sec-2, report schema v2
Scores
| Pillar | Score | Signal | Confidence | Coverage |
|---|---|---|---|---|
| AI provenance (estimated AI-generated share) | 0 | none-detected | 65% | 100% |
| Code quality | 53 | weak | 90% | 100% |
| Security | 78 | adequate | 85% | 100% |
AI provenance
No AI attribution or AI-consistent velocity signals detected.
-
Explicitly attributed share (lower bound): 0.0%
-
Unattributed share in AI-consistent velocity bursts: 0.0%
-
Estimated AI-generated share: 0.0%
-
Stylometry index: 0.07 per 1,000 lines (narrated steps 4, placeholders 0, assistant phrasing 0, emoji 0). Reported as a signal, not scored.
| Month | Lines added | Attributed to AI |
|---|---|---|
| 2016-09 | 341 | 0% |
| 2016-10 | 262 | 0% |
| 2016-11 | 989 | 0% |
| 2016-12 | 1,444 | 0% |
| 2017-01 | 12,830 | 0% |
| 2017-03 | 57 | 0% |
| 2017-05 | 2 | 0% |
| 2017-12 | 53 | 0% |
| 2018-02 | 3 | 0% |
| 2018-05 | 9 | 0% |
| 2018-06 | 9 | 0% |
| 2018-08 | 16 | 0% |
Evidence
- step-by-step narration comment: //step 1 : get last gtid in paxos (phx_percona/)
- step-by-step narration comment: //step 2 : find all binlog files (phx_percona/)
- step-by-step narration comment: //step 3 : truncate binlog files (phx_percona/)
- step-by-step narration comment: //step 4 : generate new index file (phx_percona/)
AI provenance describes how code was produced; it is not a quality judgment. Unless attribution is explicit, these are signals consistent with AI generation, not proof. Squash/rebase workflows, imported code, and rewritten history reduce accuracy.
Code quality
Code quality is weak: test-to-source ratio 0.00, no CI test run detected; 32% of function code in complex or long functions; 7% duplicated lines. Weakest area: testing.
| Area | Score |
|---|---|
| Complexity (lizard) | 38 |
| Duplication | 67 |
| Code smells (Opengrep) | 83 |
| Tests and CI | 36 |
| Documentation | 65 |
| Type safety | 40 |
| Process (Scorecard review/maintenance) | n/a |
- Functions: 1,921; mean complexity 3.8, 90th percentile 8; 68 complex and 44 long functions
- Duplicated lines: 6.7% of 37,201 compared
- Tests: 238 test lines for 57,643 source lines (ratio 0.00); CI test commands: none detected; 1% of recent source commits also change tests
- Docs missing or thin: contributing, changelog
Most complex functions:
- mysqld_get_one_option in phx_percona/percona/sql/mysqld.cc: complexity 106, 337 lines
- THD::decide_logging_format in phx_percona/percona/sql/binlog.cc: complexity 104, 313 lines
- init_server_components in phx_percona/percona/sql/mysqld.cc: complexity 102, 361 lines
- replace_user_table in phx_percona/percona/sql/sql_acl.cc: complexity 96, 415 lines
- mysqld_main in phx_percona/percona/sql/mysqld.cc: complexity 89, 300 lines
Security
Security posture is adequate: 26 high-severity SAST findings. Weakest area: posture.
| Area | Score |
|---|---|
| Secrets (gitleaks, tree + history) | 100 |
| Static analysis (Opengrep) | 88 |
| Vulnerable dependencies (OSV) | n/a |
| CI workflows (zizmor) | n/a |
| Posture (policy, updates, signing, lockfiles) | 0 |
| OpenSSF Scorecard | n/a |
- Posture checks passed: lockfiles; missing: security policy, dependency updates, signed commits
Top findings
| Severity | Finding | Location |
|---|---|---|
| high | opengrep/dockerfile.security.missing-user-entrypoint: By not specifying a USER, a program in the container may run as 'root'. This is a security hazard. If an attacker can control a process running as root, they may have control over the container. Ensure that the last USER in a Dockerfile is a USER other than 'root'. [confidence medium] |
Dockerfile:19 |
| high | opengrep/python.lang.security.audit.dangerous-system-call-audit: Found dynamic content used in a system call. This is dangerous if external data can reach this function call because it allows a malicious actor to execute commands. Use the 'subprocess' module instead, which is easier to use without accidentally exposing a command injection vulnerability. [confidence low] |
phxrpc_package_config/tools/binary_installer.py:42 |
| high | opengrep/python.lang.security.audit.dangerous-system-call-audit: Found dynamic content used in a system call. This is dangerous if external data can reach this function call because it allows a malicious actor to execute commands. Use the 'subprocess' module instead, which is easier to use without accidentally exposing a command injection vulnerability. [confidence low] |
phxrpc_package_config/tools/binary_operator.py:32 |
| high | opengrep/python.lang.security.audit.dangerous-system-call-audit: Found dynamic content used in a system call. This is dangerous if external data can reach this function call because it allows a malicious actor to execute commands. Use the 'subprocess' module instead, which is easier to use without accidentally exposing a command injection vulnerability. [confidence low] |
phxrpc_package_config/tools/binary_operator.py:41 |
| high | opengrep/python.lang.security.audit.dangerous-system-call-audit: Found dynamic content used in a system call. This is dangerous if external data can reach this function call because it allows a malicious actor to execute commands. Use the 'subprocess' module instead, which is easier to use without accidentally exposing a command injection vulnerability. [confidence low] |
phxrpc_package_config/tools/binary_operator.py:76 |
| high | opengrep/python.lang.security.audit.dangerous-system-call-audit: Found dynamic content used in a system call. This is dangerous if external data can reach this function call because it allows a malicious actor to execute commands. Use the 'subprocess' module instead, which is easier to use without accidentally exposing a command injection vulnerability. [confidence low] |
phxrpc_package_config/tools/binary_operator.py:81 |
| high | opengrep/python.lang.security.audit.dangerous-system-call-audit: Found dynamic content used in a system call. This is dangerous if external data can reach this function call because it allows a malicious actor to execute commands. Use the 'subprocess' module instead, which is easier to use without accidentally exposing a command injection vulnerability. [confidence low] |
phxrpc_package_config/tools/binary_operator.py:87 |
| high | opengrep/python.lang.security.audit.dangerous-system-call-audit: Found dynamic content used in a system call. This is dangerous if external data can reach this function call because it allows a malicious actor to execute commands. Use the 'subprocess' module instead, which is easier to use without accidentally exposing a command injection vulnerability. [confidence low] |
phxrpc_package_config/tools/binary_operator.py:94 |
| high | opengrep/python.lang.security.audit.dangerous-system-call-audit: Found dynamic content used in a system call. This is dangerous if external data can reach this function call because it allows a malicious actor to execute commands. Use the 'subprocess' module instead, which is easier to use without accidentally exposing a command injection vulnerability. [confidence low] |
phxrpc_package_config/tools/binary_operator.py:102 |
| high | opengrep/python.lang.security.audit.dangerous-system-call-audit: Found dynamic content used in a system call. This is dangerous if external data can reach this function call because it allows a malicious actor to execute commands. Use the 'subprocess' module instead, which is easier to use without accidentally exposing a command injection vulnerability. [confidence low] |
phxrpc_package_config/tools/binary_operator.py:110 |
| high | opengrep/python.lang.security.audit.dangerous-system-call-audit: Found dynamic content used in a system call. This is dangerous if external data can reach this function call because it allows a malicious actor to execute commands. Use the 'subprocess' module instead, which is easier to use without accidentally exposing a command injection vulnerability. [confidence low] |
phxrpc_package_config/tools/config_generator.py:16 |
| high | opengrep/python.lang.security.audit.dangerous-system-call-audit: Found dynamic content used in a system call. This is dangerous if external data can reach this function call because it allows a malicious actor to execute commands. Use the 'subprocess' module instead, which is easier to use without accidentally exposing a command injection vulnerability. [confidence low] |
phxrpc_package_config/tools/config_generator.py:54 |
| high | opengrep/python.lang.security.audit.dangerous-system-call-audit: Found dynamic content used in a system call. This is dangerous if external data can reach this function call because it allows a malicious actor to execute commands. Use the 'subprocess' module instead, which is easier to use without accidentally exposing a command injection vulnerability. [confidence low] |
phxrpc_package_config/tools/directory_operator.py:10 |
| high | opengrep/python.lang.security.audit.dangerous-system-call-audit: Found dynamic content used in a system call. This is dangerous if external data can reach this function call because it allows a malicious actor to execute commands. Use the 'subprocess' module instead, which is easier to use without accidentally exposing a command injection vulnerability. [confidence low] |
phxrpc_package_config/tools/directory_operator.py:16 |
| high | opengrep/python.lang.security.audit.dangerous-system-call-audit: Found dynamic content used in a system call. This is dangerous if external data can reach this function call because it allows a malicious actor to execute commands. Use the 'subprocess' module instead, which is easier to use without accidentally exposing a command injection vulnerability. [confidence low] |
phxrpc_package_config/tools/directory_operator.py:22 |
| high | opengrep/python.lang.security.audit.dangerous-system-call-audit: Found dynamic content used in a system call. This is dangerous if external data can reach this function call because it allows a malicious actor to execute commands. Use the 'subprocess' module instead, which is easier to use without accidentally exposing a command injection vulnerability. [confidence low] |
phxrpc_package_config/tools/directory_operator.py:23 |
| high | opengrep/python.lang.security.audit.dangerous-system-call-audit: Found dynamic content used in a system call. This is dangerous if external data can reach this function call because it allows a malicious actor to execute commands. Use the 'subprocess' module instead, which is easier to use without accidentally exposing a command injection vulnerability. [confidence low] |
phxrpc_package_config/tools/directory_operator.py:24 |
| high | opengrep/python.lang.security.audit.dangerous-system-call-audit: Found dynamic content used in a system call. This is dangerous if external data can reach this function call because it allows a malicious actor to execute commands. Use the 'subprocess' module instead, which is easier to use without accidentally exposing a command injection vulnerability. [confidence low] |
phxrpc_package_config/tools/directory_operator.py:25 |
| high | opengrep/python.lang.security.audit.dangerous-system-call-audit: Found dynamic content used in a system call. This is dangerous if external data can reach this function call because it allows a malicious actor to execute commands. Use the 'subprocess' module instead, which is easier to use without accidentally exposing a command injection vulnerability. [confidence low] |
phxrpc_package_config/tools/directory_operator.py:26 |
| high | opengrep/python.lang.security.audit.dangerous-system-call-audit: Found dynamic content used in a system call. This is dangerous if external data can reach this function call because it allows a malicious actor to execute commands. Use the 'subprocess' module instead, which is easier to use without accidentally exposing a command injection vulnerability. [confidence low] |
phxrpc_package_config/tools/directory_operator.py:27 |
| high | opengrep/python.lang.security.audit.dangerous-system-call-audit: Found dynamic content used in a system call. This is dangerous if external data can reach this function call because it allows a malicious actor to execute commands. Use the 'subprocess' module instead, which is easier to use without accidentally exposing a command injection vulnerability. [confidence low] |
phxrpc_package_config/tools/directory_operator.py:34 |
| high | opengrep/python.lang.security.audit.dangerous-system-call-audit: Found dynamic content used in a system call. This is dangerous if external data can reach this function call because it allows a malicious actor to execute commands. Use the 'subprocess' module instead, which is easier to use without accidentally exposing a command injection vulnerability. [confidence low] |
phxrpc_package_config/tools/directory_operator.py:40 |
| high | opengrep/python.lang.security.audit.dangerous-system-call-audit: Found dynamic content used in a system call. This is dangerous if external data can reach this function call because it allows a malicious actor to execute commands. Use the 'subprocess' module instead, which is easier to use without accidentally exposing a command injection vulnerability. [confidence low] |
phxrpc_package_config/tools/directory_operator.py:41 |
| high | opengrep/python.lang.security.audit.dangerous-system-call-audit: Found dynamic content used in a system call. This is dangerous if external data can reach this function call because it allows a malicious actor to execute commands. Use the 'subprocess' module instead, which is easier to use without accidentally exposing a command injection vulnerability. [confidence low] |
phxrpc_package_config/tools/directory_operator.py:42 |
| high | opengrep/python.lang.security.audit.dangerous-system-call-audit: Found dynamic content used in a system call. This is dangerous if external data can reach this function call because it allows a malicious actor to execute commands. Use the 'subprocess' module instead, which is easier to use without accidentally exposing a command injection vulnerability. [confidence low] |
phxrpc_package_config/tools/directory_operator.py:43 |
Static signals only: the scorer never runs the project's code. Secret findings are pattern matches that were not verified, and secret values are never stored.
Distribution signals
- binary-release-asset: release v0.8.5 ships phxsql-0.8.5-binary-ubuntu.tar.gz (325 downloads)
- binary-release-asset: release v0.8.5 ships phxsql-0.8.5-with-percona-source.tar.gz (320 downloads)
- binary-release-asset: release v0.8.5 ships phxsql-0.8.5-with-percona-source.zip (113 downloads)
- binary-release-asset: release v0.8.5 ships phxsql-0.8.5-with-thirdparty.tar.gz (129 downloads)
- binary-release-asset: release v0.8.5 ships phxsql-0.8.5-with-thirdparty.zip (130 downloads)
- readme-download-lure: gives an archive password
- readme-download-lure: gives an archive password
Signals consistent with a repository that exists to distribute a download. They are heuristics, not a verdict; release files were not downloaded or inspected.
Repository profile
- Source lines: 57,643; test lines: 238
| Language | Lines |
|---|---|
| C++ | 49,100 |
| C | 7,484 |
| Python | 1,056 |
| Shell | 241 |