Comments (6)
@sougou This appears to be a bug in the yacc-generated code. Is there anything we can do? Try a newer version of yacc?
from vitess.
I've been meaning to look at it once I'm done with my benchmark work. Looking at the test, it most likely is a stack overflow due high level of nesting. I'll either have to change to grammar to reduce more aggressively rather than shifting, or limit the nesting count and return a meaningful error.
I don't think yacc has changed in 20 years :).
from vitess.
Well, the "go tool yacc" version has been improving: https://github.com/golang/go/commits/master/src/cmd/yacc :)
from vitess.
Here are two more reproducers with slightly different stacks (one of them is probably the same as original):
"SELECT(F(F(F(F(F(F(F" +
"(F(F(F(F(F(F(F(F(F(F" +
"(F(F(F(F(F(F(F(F(F(F" +
"(F(F(F(F(F(F(F(F(F(F" +
"(F(F(F(F(F(F(F(F(F(F" +
"(F(F(F(F(F(F(F(F(F(F" +
"(F(F(F(F(F(F(F(F(F(F" +
"(F(F(F(F(F(F(F(F(F(F" +
"(F(F(F(F(F(F(F(F(F(F" +
"(F(F(F(F(F(F(F(F(F(F" +
"B,:B,:A\t(F("
"SELECT(F(F(F(F(F(F(F" +
"(F(F(F(F(F(F(F(F(F(F" +
"(F(F(F(F(F(F(F(F(F(F" +
"(F(F(F(F(F(F(F(F(F(F" +
"(F(F(F(F(F(F(F(F(F(F" +
"(F(F(F(F(F(F(F(F(F(F" +
"(F(F(F(F(F(F(F(F(F(F" +
"(F(F(F(F(F(F(F(F(F(F" +
"(F(F(F(F(F(F(F(F(F(F" +
"(F(F(F(F(F(F(F(F(F(F" +
"(0"
from vitess.
I don't know what changed, but I wasn't able to reproduce this from the latest pull. In any case, I have a CL that limits nesting of anything parenthesized to a fixed number. I'll hard code that to 200.
It's possible that there are other nestable constructs in the grammar that don't use parenthesis. We can cross those bridges as they come up.
from vitess.
from vitess.
Related Issues (20)
- Release of `v19.0.3`
- Change Default for `replica_net_timeout`
- Tracking: Online DDL partitioning changes improved support HOT 2
- Feature Request: Drop auto_increment from sharded column definitions on MoveTables Create
- Feature Request: Add `no_scatter` flag to vttestserver
- Bug Report: DemotePrimary stuck due to a race
- Tracking: deprecation of `gh-ost` and `pt-osc` Online DDL strategies
- Bug Report: `LAST_INSERT_ID` behaviour differs between MySQL and Vitess HOT 2
- [VTAdmin API] Debug schema-cache-* flags
- Bug Report: VTGate persistent query errors after MoveTables SwitchTraffic HOT 2
- Bug Report: User Defined Functions Fails to execute
- Bug Report: Cannot pass in `schema-cache-*` flags without passing `schema-cache-backfill-queue-size`
- Bug Report: gRPC custom name resolvers don't work with underscores
- Bug Report: vtorc Client received GoAway with error code ENHANCE_YOUR_CALM and debug data equal to ASCII "too_many_pings" HOT 3
- Bug Report: Panic in tpch query run
- Bug Report: vttablet DBA pool can be poisoned with broken connection during startup
- Feature Request: configurable number of digits in generated shard ranges
- Bug Report: Connection Pool Full error locks up vttablet HOT 1
- Question: How can I replace the localhost address HOT 1
- Feature Request: Only create workflow streams on relevant shards while creating a MoveTables workflow for multi-tenant migrations HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vitess.