Azurite: Table operation errors

I’ve been playing with Azurite some, and there appears there may be a problem with it’s tables implementation. Regardless of platform, I get errors when trying to add entities, delete entities, and delete tables. Some details:

  • We use azure-storage-node for sending requests.
  • We expect a certain result object when adding entities succeeds. However, we are getting an empty result object. This result object is supposed to provide information about the new entity, such as an etag.
  • When attempting to delete entities or tables, we get errors like the following (may be related to #17, #19):
POST /devstoreaccount1/test01 204 2.216 ms - -
GET /devstoreaccount1/test01?%24top=1000 200 1.560 ms - 575
GET /devstoreaccount1/test01?%24top=1000 200 0.747 ms - 575
POST /devstoreaccount1/$batch 500 1.124 ms - 45
**PANIC** Something unexpected happened! Table Storage Emulator may be in an inconsistent state!
TypeError: Cannot read property 'tableName' of undefined
    at BbPromise.try (C:\Users\cralvord\AppData\Roaming\npm\node_modules\azurite\lib\middleware\table\validation.js:24:48)
    at tryCatcher (C:\Users\cralvord\AppData\Roaming\npm\node_modules\azurite\node_modules\bluebird\js\release\util.js:16:23)
    at Function.Promise.attempt.Promise.try (C:\Users\cralvord\AppData\Roaming\npm\node_modules\azurite\node_modules\bluebird\js\release\method.js:39:29)
    at module.exports (C:\Users\cralvord\AppData\Roaming\npm\node_modules\azurite\lib\middleware\table\validation.js:18:18)
    at Layer.handle [as handle_request] (C:\Users\cralvord\AppData\Roaming\npm\node_modules\azurite\node_modules\express\lib\router\layer.js:95:5)
    at trim_prefix (C:\Users\cralvord\AppData\Roaming\npm\node_modules\azurite\node_modules\express\lib\router\index.js:317:13)
    at C:\Users\cralvord\AppData\Roaming\npm\node_modules\azurite\node_modules\express\lib\router\index.js:284:7
    at Function.process_params (C:\Users\cralvord\AppData\Roaming\npm\node_modules\azurite\node_modules\express\lib\router\index.js:335:12)
    at next (C:\Users\cralvord\AppData\Roaming\npm\node_modules\azurite\node_modules\express\lib\router\index.js:275:10)
    at C:\Users\cralvord\AppData\Roaming\npm\node_modules\azurite\node_modules\body-parser\lib\read.js:130:5
    at invokeCallback (C:\Users\cralvord\AppData\Roaming\npm\node_modules\azurite\node_modules\raw-body\index.js:224:16)
    at done (C:\Users\cralvord\AppData\Roaming\npm\node_modules\azurite\node_modules\raw-body\index.js:213:7)
    at IncomingMessage.onEnd (C:\Users\cralvord\AppData\Roaming\npm\node_modules\azurite\node_modules\raw-body\index.js:273:7)
    at emitNone (events.js:106:13)
   at IncomingMessage.emit (events.js:208:7)
    at endReadableNT (_stream_readable.js:1055:12)
GET /devstoreaccount1/test01?%24top=1000 200 0.869 ms - 575

About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Reactions: 4
  • Comments: 21

Most upvoted comments

I’m working through the backlog, but we are moving support of table storage to the Cosmos Emulator, currently only on Windows and Windows Docker Container, but should eventually be made cross platform.
We have a release pending in which addresses most of the issues in this thread.

Hi,
I think there might be some crossed wires here.
Don’t panic… we have your back! 😇
Azurite is the emulator going forward for Blob and Queue storage, and has been rearchitected to make it easier to support long term; for both the community and us.

Tables are however engineered by a different team.
There is currently no cross platform emulator for tables, other than legacy / v2 Azurite, but it should be coming soon.
We are giving it our best effort to support tables storage in the legacy branch until there is a new cross platform emulator for tables and cosmos.

because cosmos table costs x7 more $$ that azure tables

@edwin-huber FIY: Development of Storage Emulator is being discontinued, Azurite is the way foward https://github.com/Azure/azure-sdk-for-net/issues/7208#issuecomment-520122952

So no official emulator is ever going to happen

@atrauzzi We are doing our best to maintain the Azurite Table API until there is an official cross platform emulator for Table and Cosmos.
If you want / need full fidelity in an emulator, the Docker container would be the right choice.
The release process has started for 2.7.1, so hopefully you won’t need to wait much longer to have your issues addressed.
I still need to check on our support for the batch operations.

Hopefully Microsoft updates all their guidance pointing people to this tool for a cross platform emulator. Otherwise it’s going to create frustration to be told “go here” and this project is telling them to go back to a Windows only emulator…