MyRocks_zh_doc

报告bug错误并需求帮助

Mark Callagehan 于 2016年10月22日编辑本页(7次修订)

报告bug错误

首先,感谢您抽出宝贵的时间并报告您所遇到产品的任何问题!错误报告有助于我们改进产品并为所有用户提供更好的服务。 为了确保我们能够快速调查和修复任何问题,将以下信息添加到错误报告中将非常有用:

有关MyRocks的详细信息

* MyRocks版本: 如果您直接从Facebook MySQL分支使用MyRocks,那么告诉我们通过使用了什么git hash 
  通过使用 mysql -e 'show global status' | grep -i hash 并告诉我们git_hash和rocksdb_git_hash 的值,
  这些也写入数据库的错误日志
* 你有链接jemalloc,tcmalloc或glibc malloc吗? 使用tcmalloc或jemalloc,MyRocks会表现更好。
  如果您不确定,请尝试 nm /path/to/mysqld | grep -i jemalloc 和 nm /path/to/mysqld | grep -i tcmalloc
  如果这是一个性能问题,那么我们经常希望在mysqld运行一段时间后看到mysql -e 'SHOW ENGINE ROCKSDB STATUS'的输出。
  我们通常会查看 mysql information_schema -e "select * from global_variables where variable_name like 'rocksdb%'" 和 
  mysql information_schema -e "select * from rocksdb_cf_options"
* 在最坏的情况下,我们可能会要求在$datadir/.rocksdb/LOG中 写入 RocksDB LOG文件的信息

使用的操作系统

* Linux: uname -a 或根据特定的发行版,您可以选择包含lsb_release -a 或 cat /etc/redhat-release 的输出
* OS X: uname -a
* Windows: ver 或 systeminfo | findstr /c:"OS" ### 使用的构建类型
鉴于支持不同类型的构建,那么指定它是否(例如在MySQL的情况下)Debug,RelWithDebInfo或Release构建将是有帮助的。
还请提一下产品构建时源树的状态,例如,您的仓库中的最后一个Git提交。如果您更改了本地代码,那么也可以对它们进行描述,例如,“在foo()中添加对printf(的调用之后,我注意到bar()开始与SIGSEGV崩溃。 ### 重现bug错误的步骤
请说明是否可以一致地重现问题或偶尔发生问题。拥有一组精确的步骤是bug错误报告中最重要的部分,
因此请记录您在执行的具体参数的命令,什么是输出;是否存在特定的SQL语句序列或其他任何命令导致问题发生,您可以做任何其他的观察。 ### 加倍努力
如果你有机会调试问题(使用gdb,lldb,Visual Studio,WinDBG等),
那么任何类型的调试信息,如堆栈跟踪,相关堆栈框架中的局部变量值,进程内存使用,
互斥争用等将帮助我们更快的找到问题的根本原因。

拥有所有这些信息,唯一剩下要做的就是创建一个新问题!

需求帮助

如果您对设计决策有任何疑问,或者您发现产品有些奇怪,或者有新的API调用建议可以帮助您,那么首选的沟通方式是使用Facebook群组或与之相关的电子邮件列表与特定的产品列表。

MySQL: MySQL on RocksDB (公共)上的MySQL(https://www.facebook.com/groups/mysqlonrocksdb/) 和 MyRocks电子邮件列表(https://groups.google.com/forum/#!forum/myrocks-dev)。
RocksDB:RocksDB开发者在Facebook(https://www.facebook.com/groups/rocksdb.dev/) 和 RocksDB电子邮件列表上公开(https://groups.google.com/forum/#!forum/rocksdb)。

我们的工程团队成员是与他们的专业领域相关的团队的一部分,并且非常愿意帮助您调试和解决各种问题。