Comments (3)
I've had this problem too.
panic: runtime error: index out of range
goroutine 12 [running]:
panic(0x826680, 0xc82000a0d0)
C:/Go/src/runtime/panic.go:481 +0x3e6
github.com/diegobernardes/ttlcache.priorityQueue.Swap(0x0, 0x0, 0x0, 0x0, 0x0, 0xffffffffffffffff)
d:/workspace/src/github.com/diegobernardes/ttlcache/priority_queue.go:54 +0x1f9
github.com/diegobernardes/ttlcache.(_priorityQueue).Swap(0xc82000e2e0, 0x0, 0xffffffffffffffff)
:3 +0xaa
container/heap.Remove(0x7f74086d5118, 0xc82000e2e0, 0x0, 0x0, 0x0)
C:/Go/src/container/heap/heap.go:74 +0x6c
github.com/diegobernardes/ttlcache.(_priorityQueue).remove(0xc82000e2e0, 0xc8203bfcc0)
d:/workspace/src/github.com/diegobernardes/ttlcache/priority_queue.go:35 +0x56
github.com/diegobernardes/ttlcache.(_Cache).Remove(0xc8201241e0, 0xc820495330, 0x9, 0x0)
d:/workspace/src/github.com/diegobernardes/ttlcache/cache.go:167 +0xed
main.(_Factory).Put(0xc820014380, 0x0, 0x0)
d:/workspace/src/m-services/m-fence/factory.go:120 +0x460
main.(*Factory).DeliveLoop(0xc820014380)
d:/workspace/src/m-services/m-fence/factory.go:100 +0x30
created by main.main
d:/workspace/src/m-services/m-fence/main.go:34 +0x5e9
from ttlcache.
Encountered the same problem, steps to reproduce
- Add cache key, value
- Remove key from cache
- Get removed key from cache
The cache panics
panic: runtime error: index out of range [recovered] panic: runtime error: index out of range goroutine 44 [running]: panic(0x6ec440, 0xc820016050) /usr/local/go/src/runtime/panic.go:443 +0x4e9 github.com/diegobernardes/ttlcache.priorityQueue.Swap(0x0, 0x0, 0x0, 0x0, 0x0, 0xffffffffffffffff) /Users/ganeraje/Documents/git/goworkspace/src/github.com/diegobernardes/ttlcache/priority_queue.go:54 +0x1f9 github.com/diegobernardes/ttlcache.(*priorityQueue).Swap(0xc8201b11c0, 0x0, 0xffffffffffffffff) <autogenerated>:3 +0xaa container/heap.Remove(0xfc4688, 0xc8201b11c0, 0x0, 0x0, 0x0)
from ttlcache.
Sorry guys, this package is with some serious trouble and i didn't got time yet to fix, does anyone want to send a PR?
Also, this package don't fit my requirement speed anymore, i'm working with a new project, not released yet that has almost zero gc overhead.
If you guys really need something ready to use, there is others caches here
from ttlcache.
Related Issues (20)
- Way to get expired elements. HOT 2
- v3.0.1 doesn't have cache.GetOrSet method while it's documented in README.md of master branch HOT 5
- v3.0.1 doesn't have cache.Has method while it's documented in README.md of master branch HOT 2
- Question: about memory exceeding the limit HOT 1
- Is it thread safe? HOT 1
- Optimize getOpts allocation in Get() method using sync.Pool HOT 1
- Set without expanding the Expire time HOT 3
- `Range` panics when cache is empty HOT 1
- Feature request: Dedup same-key loader HOT 8
- Protect Range from empty cache HOT 1
- Add `GetContext()` method and `LoaderContext` interface HOT 1
- Lock-per-key functionality when using custom loader functions HOT 2
- Strange issue with OnEviction/OnInsertion hooks
- Proposal: Present cache items in order of oldest to newest
- SetUnsafe like IsExpiredUnsafe HOT 2
- Make the cache size configurable HOT 5
- Set doesn't reset TTL if the key already exists HOT 1
- Ensure that GetOrSet and GetAndDelete are properly locked HOT 2
- How to get cache value without "Automatic expiration time extension"? HOT 1
- Add a method to check if a key exists 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 ttlcache.