GithubHelp home page GithubHelp logo

zapx's Issues

fix unit tests on windows

Many tests rely on hard-coded "/tmp" filenames which fail on Windows. We should fix this, backport to all active branches, and re-enable windows in the CI.

Unaligned 64-bit atomic operation

Hello,

I got the following panic. My setup is running owncloud/ocis on a Raspberry Pi with ARM (32-bit) architecture.

panic: unaligned 64-bit atomic operation
goroutine 6508 [running]:
runtime/internal/atomic.panicUnaligned()
     runtime/internal/atomic/unaligned.go:8 +0x24
runtime/internal/atomic.Xadd64(0x88bc7f4, 0x4)
     runtime/internal/atomic/atomic_arm.s:258 +0x14
github.com/blevesearch/zapx/v15.(*chunkedContentCoder).incrementBytesWritten(...)
     github.com/blevesearch/zapx/[email protected]/contentcoder.go:114
github.com/blevesearch/zapx/v15.(*chunkedContentCoder).flushContents(0x88bc780)
     github.com/blevesearch/zapx/[email protected]/contentcoder.go:143 +0x294
github.com/blevesearch/zapx/v15.(*chunkedContentCoder).Close(...)
     github.com/blevesearch/zapx/[email protected]/contentcoder.go:110
github.com/blevesearch/zapx/v15.(*interim).writeDicts(0x81f81e0)
     github.com/blevesearch/zapx/[email protected]/new.go:803 +0x11d8
github.com/blevesearch/zapx/v15.(*interim).convert(0x81f81e0)
     github.com/blevesearch/zapx/[email protected]/new.go:277 +0x2f8
github.com/blevesearch/zapx/v15.(*ZapPlugin).newWithChunkMode(0x4724798, {0x88c79c0, 0x1, 0x1}, 0x402)
     github.com/blevesearch/zapx/[email protected]/new.go:72 +0x218
github.com/blevesearch/zapx/v15.(*ZapPlugin).New(0x4724798, {0x88c79c0, 0x1, 0x1})
     github.com/blevesearch/zapx/[email protected]/new.go:47 +0x40
github.com/blevesearch/bleve/v2/index/scorch.(*Scorch).Batch(0x68c6800, 0x88d8d20)
     github.com/blevesearch/bleve/[email protected]/index/scorch/scorch.go:412 +0x5cc
github.com/blevesearch/bleve/v2/index/scorch.(*Scorch).Update(0x68c6800, {0x33b11d4, 0x88da9c0})
     github.com/blevesearch/bleve/[email protected]/index/scorch/scorch.go:335 +0x104
github.com/blevesearch/bleve/v2.(*indexImpl).Index(0x774b5e0, {0x88e8a80, 0x6e}, {0x1d79548, 0x88e0500})
     github.com/blevesearch/bleve/[email protected]/index_impl.go:258 +0x218
github.com/owncloud/ocis/v2/services/search/pkg/search/index.(*Index).Add(0x723d8a0, 0x88da8c0, 0x7ec9380)
     github.com/owncloud/ocis/v2/services/search/pkg/search/index/index.go:97 +0x9c
github.com/owncloud/ocis/v2/services/search/pkg/search/provider.(*Provider).doIndexSpace.func1({0x0, 0x0}, 0x7ec9380, {0x0,
     github.com/owncloud/ocis/v2/services/search/pkg/search/provider/searchprovider.go:337 +0x590
github.com/cs3org/reva/v2/pkg/storage/utils/walker.(*revaWalker).walkRecursively(0x988fe3c, {0x33ac284, 0x88c31d0}, {0x0, 0x
     github.com/cs3org/reva/[email protected]/pkg/storage/utils/walker/walker.go:81 +0x90
github.com/cs3org/reva/v2/pkg/storage/utils/walker.(*revaWalker).Walk(0x719fe3c, {0x33ac284, 0x88c31d0}, 0x88cb740, 0x719fe6
     github.com/cs3org/reva/[email protected]/pkg/storage/utils/walker/walker.go:65 +0x84
github.com/owncloud/ocis/v2/services/search/pkg/search/provider.(*Provider).doIndexSpace(0x774bf40, {0x33ac244, 0x6538000},
     github.com/owncloud/ocis/v2/services/search/pkg/search/provider/searchprovider.go:308 +0x6c8
github.com/owncloud/ocis/v2/services/search/pkg/search/provider.New.func1(0x88c26f0, 0x84577d0)
     github.com/owncloud/ocis/v2/services/search/pkg/search/provider/searchprovider.go:93 +0x44
github.com/owncloud/ocis/v2/services/search/pkg/search/provider.(*SpaceDebouncer).Debounce.func1()
     github.com/owncloud/ocis/v2/services/search/pkg/search/provider/events.go:60 +0x1a4
created by time.goFunc
     time/sleep.go:176 +0x2c

Please also see the documentation on the sync/atomic package:

On ARM, 386, and 32-bit MIPS, it is the caller's responsibility to arrange for 64-bit alignment of 64-bit words accessed atomically via the primitive atomic functions (types Int64 and Uint64 are automatically aligned). The first word in an allocated struct, array, or slice; in a global variable; or in a local variable (because the subject of all atomic operations will escape to the heap) can be relied upon to be 64-bit aligned.

Thanks and have a nice day!

Load segments from remote storage

I would like to be able to store the index in an object store. This needs the segment implementation to be able to load segment data from remote storage. Current implementation is tightly coupled to local file system via mmap of an os.File.

My proposal is to replace mm field in Segment struct with the slice interface like:

type Slice interface {
func range(start, end int) []byte
func len() int
}

and allow a custom slice implementation that manages data.

runtime error: integer divide by zero

We received a stack trace for a crash on this library:

runtime.errorString: runtime error: integer divide by zero
  File "github.com/blevesearch/zapx/[email protected]/posting.go", line 747, in (*PostingsIterator).nextDocNumAtOrAfterClean
  File "github.com/blevesearch/zapx/[email protected]/posting.go", line 632, in (*PostingsIterator).nextDocNumAtOrAfter
  File "github.com/blevesearch/zapx/[email protected]/posting.go", line 537, in (*PostingsIterator).nextAtOrAfter
  File "github.com/blevesearch/zapx/[email protected]/posting.go", line 526, in (*PostingsIterator).Next
  File "github.com/blevesearch/bleve/[email protected]/index/scorch/snapshot_index_tfr.go", line 88, in (*IndexSnapshotTermFieldReader).Next
  File "github.com/blevesearch/bleve/[email protected]/search/searcher/search_term.go", line 89, in (*TermSearcher).Next
  File "github.com/blevesearch/bleve/[email protected]/search/searcher/search_conjunction.go", line 218, in (*ConjunctionSearcher).Next
  File "github.com/blevesearch/bleve/[email protected]/search/searcher/search_conjunction.go", line 246, in (*ConjunctionSearcher).Advance
  File "github.com/blevesearch/bleve/[email protected]/search/searcher/search_disjunction_slice.go", line 241, in (*DisjunctionSliceSearcher).Advance
  File "github.com/blevesearch/bleve/[email protected]/search/searcher/search_conjunction.go", line 253, in (*ConjunctionSearcher).advanceChild
  File "github.com/blevesearch/bleve/[email protected]/search/searcher/search_conjunction.go", line 241, in (*ConjunctionSearcher).Advance
  File "github.com/blevesearch/bleve/[email protected]/search/searcher/search_boolean.go", line 356, in (*BooleanSearcher).Advance
  File "github.com/blevesearch/bleve/[email protected]/search/searcher/search_conjunction.go", line 253, in (*ConjunctionSearcher).advanceChild
  File "github.com/blevesearch/bleve/[email protected]/search/searcher/search_conjunction.go", line 200, in (*ConjunctionSearcher).Next
  File "github.com/blevesearch/bleve/[email protected]/search/searcher/search_boolean.go", line 165, in (*BooleanSearcher).advanceNextMust
  File "github.com/blevesearch/bleve/[email protected]/search/searcher/search_boolean.go", line 316, in (*BooleanSearcher).Next
  File "github.com/blevesearch/bleve/[email protected]/search/collector/topn.go", line 226, in (*TopNCollector).Collect
  File "github.com/blevesearch/bleve/[email protected]/index_impl.go", line 551, in (*indexImpl).SearchInContext
  File "github.com/blevesearch/bleve/[email protected]/index_impl.go", line 369, in (*indexImpl).Search

It looks like i.postings.chunkSize may need some checking as it can be zero.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.